Esempio n. 1
0
        public static (string, string) GetMessageText(DecryptedRecordData<MessageRecord> message)
        {
            /*
            var accountId = message.Transaction.AccountId;

            string name = null;

            if (accountId == _chat.AccountId)
            {
                name = _chat.Node.ProfileInfo?.RealName;
            }
            else
            {
                var friend = _chat.Node.GetFriend(_chat.FriendAccountId);
                name = friend?.Profile?.RealName;
            }

            if (name == null)
                name = $"Account {accountId}";
            */

            var text = message.Record?.Text ?? "*";
            var state = message.DecryptetState;

            if (state == DecryptedDataRecordState.SecretKeyMissing)
                text = Tr.Get("Common.MessageSecretKeyMissing");
            else if (state == DecryptedDataRecordState.DecryptionError)
                text = Tr.Get("Common.MessageDecryptionError");

            var timestamp = message.Transaction.Timestamp;
            var detail = $"{(Time.PassedDays(timestamp) > 1 ? Time.DateTimeString(timestamp) : Time.TimeString(timestamp))}";

            return (text, detail);
        }
Esempio n. 2
0
        public MessagePage(Chat chat, DecryptedRecordData <MessageRecord> message) : base("MessagePage")
        {
            Subscribe <NewSecretKeyEvent>(NewSecretKey);

            _chat    = chat;
            _message = message;

            var transaction = message.Transaction;

            AddTitleRow("Title");

            AddHeaderRow("Message");

            var(text, detail) = ChatListView.GetMessageText(message);
            _text             = AddTextRow(null);
            _text.SetMultilineText(text, detail);

            AddFooterRow();

            AddHeaderRow("SecretKeyInfo");
            _keyView = new SecretKeyView(message.EncryptedRecord?.KeyInfo, true);
            AddViewRow(_keyView);
            AddButtonRow("Import", Import);
            AddFooterRow();

            AddHeaderRow("TransactionInfo");
            AddViewRow(new DataTransactionView(transaction));
            AddFooterRow();

            IsBusy = true;
            UIApp.Run(Update);
        }
Esempio n. 3
0
        public DecryptedRecordData <MessageRecord> GetMessage(TransactionDownloadData <Transaction> transaction)
        {
            if (!_messages.TryGetValue(transaction.TransactionId, out var record))
            {
                record = new DecryptedRecordData <MessageRecord>(transaction, _serviceNode, Index, "message", DecryptedRecordDataSource.DataFeature);
                _messages[transaction.TransactionId] = record;
            }

            return(record);
        }