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); }
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); }
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); }