public void RenderSingleMessage24HourTimeTest() { IConversation conversation = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.UnknownEagle); IConversationMessage message = conversation.GetMessage(0); MockDisplayOptions displayOptions = new MockDisplayOptions(); displayOptions.TimeDisplayFormat = TimeDisplayFormat.HourMinSec24h; ConversationRendererRichText_Accessor renderer = new ConversationRendererRichText_Accessor(displayOptions, conversation); List <Inline> inlineListExpected = new List <Inline>(); Span messagePrefix = new Span(); messagePrefix.Inlines.Add(new Bold(new Run("Unknown Sender"))); messagePrefix.Inlines.Add(new Run(" (\u200E20:38:17\u202C)")); messagePrefix.Inlines.Add(new Run(": ")); inlineListExpected.Add(messagePrefix); inlineListExpected.Add(new ConversationContentRun(message.MessageContents)); List <Inline> inlineListActual = new List <Inline>(); inlineListActual.AddRange(renderer.ConversationMessageToInlines(message)); VerifyInlineListsMatch(inlineListExpected, inlineListActual); }
private IEnumerable <Inline> ConversationMessageToInlines(IConversationMessage message) { string senderNameString; string timestampString; string messageContents = message.MessageContents; List <Inline> messageInlines = new List <Inline>(); SolidColorBrush senderBrush; Span messagePrefixSpan = new Span(); senderNameString = GetSenderDisplayName(message); senderBrush = GetSenderBrush(message); Bold senderName = new Bold(new Run(senderNameString)); messagePrefixSpan.Foreground = senderBrush; messagePrefixSpan.Inlines.Add(senderName); timestampString = FormatTimeForConversation(message.Timestamp); if (timestampString != null) { string formattedTimestamp = string.Format(" (" + '\u200E' + "{0}" + '\u202C' + ")", timestampString); Run timestampRun = new Run(formattedTimestamp); messagePrefixSpan.Inlines.Add(timestampRun); } messagePrefixSpan.Inlines.Add(new Run(": ")); messageInlines.Add(messagePrefixSpan); messageInlines.Add(new ConversationContentRun(messageContents)); return(messageInlines); }
public void AddMessage(IConversationMessage message) { if ((message.MessageContents == null) && !message.HasAttachments()) { return; } _messagesSorted = false; _messages.Add(message); }
public void AddMessage(IConversationMessage message) { if ((message.MessageContents == null) && !message.HasAttachments()) { return; } _messagesSorted = false; _messages.Add(message); }
protected override void AddMessageLine(IConversationMessage message) { string messageLineFormat = "{0} (" + '\u200E' + "{1}" + '\u202C' + "): {2}"; string contactName = GetSenderDisplayName(message); string timestamp = FormatTimeForConversation(message.Timestamp); string messageContents = message.MessageContents; _renderBuffer.AppendFormat(messageLineFormat, contactName, timestamp, messageContents); }
private void VerifyMessagesMatch(IConversation conversation, TextMessage[] messagesExpected) { Assert.AreEqual(messagesExpected.Length, conversation.MessageCount); for (int messageIndex = 0; messageIndex < conversation.MessageCount; messageIndex++) { IConversationMessage conversationMessageCurrent = conversation.GetMessage(messageIndex); TextMessage textMessageExpected = messagesExpected[messageIndex]; VerifyTextMessageMatchesConversationMessage(textMessageExpected, conversationMessageCurrent); } }
protected override void AddMessageLine(IConversationMessage message) { string messageLineFormat = "{0} (" + '\u200E' + "{1}" + '\u202C' + "): {2}"; string contactName = GetSenderDisplayName(message); string timestamp = FormatTimeForConversation(message.Timestamp); string messageContents = message.MessageContents; _renderBuffer.AppendFormat(messageLineFormat, contactName, timestamp, messageContents); }
protected static string GetSenderDisplayName(IConversationMessage message) { if (message.IsOutgoing) { return(_localName); } else { return(message.Contact.DisplayName); } }
public void GetSenderColorUnknownContactTest() { IConversation conversation = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.UnknownEagle); IConversationMessage incomingMessage = conversation.GetMessage(0); MockDisplayOptions displayOptions = new MockDisplayOptions(); ConversationRendererRichText_Accessor renderer = new ConversationRendererRichText_Accessor(displayOptions, conversation); System.Windows.Media.Color incomingMessageColor = renderer.GetSenderDisplayColor(incomingMessage); Assert.IsNotNull(incomingMessageColor); }
public void GetSenderColorMergedConversationTest() { IConversation conversation = DummyConversationDataGenerator.GetMergedConversation(DummyContactId.Davola); IConversationMessage cellIncomingMessage = conversation.GetMessage(0); IConversationMessage iPhoneIncomingMessage = conversation.GetMessage(11); MockDisplayOptions displayOptions = new MockDisplayOptions(); ConversationRendererRichText_Accessor renderer = new ConversationRendererRichText_Accessor(displayOptions, conversation); System.Windows.Media.Color cellColor = renderer.GetSenderDisplayColor(cellIncomingMessage); System.Windows.Media.Color iPhoneColor = renderer.GetSenderDisplayColor(iPhoneIncomingMessage); Assert.AreEqual(cellColor, iPhoneColor); }
protected override void AddMessageLine(IConversationMessage message) { const string MessageLineFormat = "<span style=\"color:{0};\"><span class=\"senderName\">{1}</span> <span class=\"timestamp\">(<span dir=\"ltr\" lang=\"en\">{2}</span>)</span>: </span>{3}"; string prefixColor; string contactName; prefixColor = GetMessagePrefixColor(message); contactName = EscapeHtml(GetSenderDisplayName(message)); string timestamp = FormatTimeForConversation(message.Timestamp); string messageContents = EscapeHtml(message.MessageContents); _htmlBuffer.AppendFormat(MessageLineFormat, prefixColor, contactName, timestamp, messageContents); }
protected override void AddMessageLine(IConversationMessage message) { const string MessageLineFormat = "<span style=\"color:{0};\"><span class=\"senderName\">{1}</span> <span class=\"timestamp\">(<span dir=\"ltr\" lang=\"en\">{2}</span>)</span>: </span>{3}"; string prefixColor; string contactName; prefixColor = GetMessagePrefixColor(message); contactName = EscapeHtml(GetSenderDisplayName(message)); string timestamp = FormatTimeForConversation(message.Timestamp); string messageContents = EscapeHtml(message.MessageContents); _htmlBuffer.AppendFormat(MessageLineFormat, prefixColor, contactName, timestamp, messageContents); }
public async Task <T> Request <T>(IConversationMessage <T> message) { LastRequestType = message.Type; using (var p = new Packet(SendPacketOperations.ScriptMessage)) { message.Encode(p); await Socket.SendPacket(p); } var response = (T)await _responses.DequeueAsync(TokenSource.Token); if (!message.Validate(response)) { throw new InvalidDataException("Invalid response value"); } return(response); }
protected Color GetSenderDisplayColor(IConversationMessage message) { if (message.IsOutgoing) { return(_localSenderColor); } int brushIndex; int phoneNumberIndex = _remoteContacts.IndexOf(message.Contact); if (phoneNumberIndex < 0) { _remoteContacts.Add(message.Contact); brushIndex = (_remoteContacts.Count - 1) % _remoteSenderColors.Length; } else { brushIndex = phoneNumberIndex % _remoteSenderColors.Length; } return(_remoteSenderColors[brushIndex]); }
public void SingleMessageConversationTest() { IConversation conversation = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.UnknownEagle); IDisplayOptions displayOptions = new MockDisplayOptions(); ConversationRendererRichText_Accessor renderer = new ConversationRendererRichText_Accessor(displayOptions, conversation); List <Paragraph> paragraphsActual = renderer.RenderMessagesAsParagraphs(ConversationRendererRichText.RenderAllMessages); Assert.AreEqual(1, paragraphsActual.Count); IConversationMessage message = conversation.GetMessage(0); Paragraph paragraphExpected = new Paragraph(); paragraphExpected.Inlines.Add(ConversationRendererRichText_Accessor.DateAsInline(message.Timestamp)); paragraphExpected.Inlines.Add(new LineBreak()); paragraphExpected.Inlines.AddRange(renderer.ConversationMessageToInlines(message)); VerifyParagraphsEqual(paragraphExpected, paragraphsActual[0]); paragraphsActual = renderer.RenderMessagesAsParagraphs(ConversationRendererRichText.RenderAllMessages); Assert.AreEqual(0, paragraphsActual.Count); }
private void ProcessMessage(int messageIndex) { IConversationMessage message = _conversation.GetMessage(messageIndex); if (message.Timestamp.Date != _lastMessageDate) { StartNewParagraph(); AddDateLine(message.Timestamp); _lastMessageDate = message.Timestamp.Date; } AddLineBreak(); AddMessageLine(message); if (_displayOptions.LoadMmsAttachments && message.HasAttachments()) { foreach (IMessageAttachment attachment in message.Attachments) { AddLineBreak(); try { AddAttachment(attachment); } catch { // Ignore attachment errors } } } _lastMessageReadIndex = messageIndex; }
private SolidColorBrush GetSenderBrush(IConversationMessage message) { return new SolidColorBrush(GetSenderDisplayColor(message)); }
private IEnumerable<Inline> ConversationMessageToInlines(IConversationMessage message) { string senderNameString; string timestampString; string messageContents = message.MessageContents; List<Inline> messageInlines = new List<Inline>(); SolidColorBrush senderBrush; Span messagePrefixSpan = new Span(); senderNameString = GetSenderDisplayName(message); senderBrush = GetSenderBrush(message); Bold senderName = new Bold(new Run(senderNameString)); messagePrefixSpan.Foreground = senderBrush; messagePrefixSpan.Inlines.Add(senderName); timestampString = FormatTimeForConversation(message.Timestamp); if (timestampString != null) { string formattedTimestamp = string.Format(" (" + '\u200E' + "{0}" + '\u202C' + ")", timestampString); Run timestampRun = new Run(formattedTimestamp); messagePrefixSpan.Inlines.Add(timestampRun); } messagePrefixSpan.Inlines.Add(new Run(": ")); messageInlines.Add(messagePrefixSpan); messageInlines.Add(new ConversationContentRun(messageContents)); return messageInlines; }
private string GetMessagePrefixColor(IConversationMessage message) { Color displayColor = GetSenderDisplayColor(message); return ColorToCssAttribute(displayColor); }
public void AddMessage(IConversationMessage message) { throw new NotImplementedException(); }
public void AddMessage(IConversationMessage message) { _messages.Add(message); }
private SolidColorBrush GetSenderBrush(IConversationMessage message) { return(new SolidColorBrush(GetSenderDisplayColor(message))); }
protected Color GetSenderDisplayColor(IConversationMessage message) { if (message.IsOutgoing) { return _localSenderColor; } int brushIndex; int phoneNumberIndex = _remoteContacts.IndexOf(message.Contact); if (phoneNumberIndex < 0) { _remoteContacts.Add(message.Contact); brushIndex = (_remoteContacts.Count - 1) % _remoteSenderColors.Length; } else { brushIndex = phoneNumberIndex % _remoteSenderColors.Length; } return _remoteSenderColors[brushIndex]; }
protected abstract void AddMessageLine(IConversationMessage message);
private void VerifyTextMessageMatchesConversationMessage(TextMessage textMessage, IConversationMessage conversationMessage) { Assert.AreEqual(textMessage.Timestamp, conversationMessage.Timestamp); Assert.AreEqual(textMessage.MessageContents, conversationMessage.MessageContents); Assert.AreEqual(textMessage.IsOutgoing, conversationMessage.IsOutgoing); }
protected abstract void AddMessageLine(IConversationMessage message);
protected override void AddMessageLine(IConversationMessage message) { IEnumerable<Inline> messageInlines = ConversationMessageToInlines(message); _currentParagraph.Inlines.AddRange(messageInlines); }
public void AddMessage(IConversationMessage message) { throw new NotImplementedException(); }
private void VerifyMessageDisplayName(IConversationMessage message, string senderDisplayNameExpected) { string senderDisplayNameActual = ConversationRendererBase_Accessor.GetSenderDisplayName(message); Assert.AreEqual(senderDisplayNameExpected, senderDisplayNameActual); }
protected override void AddMessageLine(IConversationMessage message) { IEnumerable <Inline> messageInlines = ConversationMessageToInlines(message); _currentParagraph.Inlines.AddRange(messageInlines); }
public void AddMessage(IConversationMessage message) { _messages.Add(message); }
private string GetMessagePrefixColor(IConversationMessage message) { Color displayColor = GetSenderDisplayColor(message); return(ColorToCssAttribute(displayColor)); }
private void VerifyTextMessageMatchesConversationMessage(TextMessage textMessage, IConversationMessage conversationMessage) { Assert.AreEqual(textMessage.Timestamp, conversationMessage.Timestamp); Assert.AreEqual(textMessage.MessageContents, conversationMessage.MessageContents); Assert.AreEqual(textMessage.IsOutgoing, conversationMessage.IsOutgoing); }
protected static string GetSenderDisplayName(IConversationMessage message) { if (message.IsOutgoing) { return _localName; } else { return message.Contact.DisplayName; } }
private void VerifyMessageDisplayName(IConversationMessage message, string senderDisplayNameExpected) { string senderDisplayNameActual = ConversationRendererBase_Accessor.GetSenderDisplayName(message); Assert.AreEqual(senderDisplayNameExpected, senderDisplayNameActual); }