public void BePopulatedCorrectly() { var message = new ChatEntry.Model() { messageType = ChatMessage.Type.PUBLIC, senderName = "user-test", recipientName = "", bodyText = "test message", }; entry.Populate(message); Assert.AreEqual(entry.worldMessageColor, entry.body.color); Assert.AreEqual("<b>user-test:</b>", entry.username.text); Assert.AreEqual("<b>user-test:</b> test message", entry.body.text); message.messageType = ChatMessage.Type.PRIVATE; message.subType = ChatEntry.Model.SubType.PRIVATE_TO; entry.Populate(message); Assert.AreEqual(entry.privateToMessageColor, entry.username.color); message.subType = ChatEntry.Model.SubType.PRIVATE_FROM; entry.Populate(message); Assert.AreEqual(entry.privateFromMessageColor, entry.username.color); message.messageType = ChatMessage.Type.SYSTEM; entry.Populate(message); Assert.AreEqual(entry.systemColor, entry.body.color); }
public virtual void AddEntry(ChatEntry.Model chatEntryModel, bool setScrollPositionToBottom = false) { var chatEntryGO = Instantiate(Resources.Load(ENTRY_PATH) as GameObject, chatEntriesContainer); ChatEntry chatEntry = chatEntryGO.GetComponent <ChatEntry>(); if (enableFadeoutMode && EntryIsVisible(chatEntry)) { chatEntry.SetFadeout(true); } else { chatEntry.SetFadeout(false); } chatEntry.Populate(chatEntryModel); if (chatEntryModel.messageType == ChatMessage.Type.PRIVATE) { chatEntry.OnPress += OnPressPrivateMessage; } chatEntry.OnTriggerHover += OnMessageTriggerHover; chatEntry.OnCancelHover += OnMessageCancelHover; entries.Add(chatEntry); SortEntries(); Utils.ForceUpdateLayout(transform as RectTransform, delayed: false); if (setScrollPositionToBottom) { scrollRect.verticalNormalizedPosition = 0; } }
public void AddChatMessage(ChatEntry.Model chatEntryModel, bool setScrollPositionToBottom = false) { view.AddEntry(chatEntryModel, setScrollPositionToBottom); if (view.entries.Count > MAX_CHAT_ENTRIES) { UnityEngine.Object.Destroy(view.entries[0].gameObject); view.entries.Remove(view.entries[0]); } }
public void TrimWhenTooMuchMessagesAreInView() { for (int i = 0; i < ChatHUDController.MAX_CHAT_ENTRIES + 5; i++) { var msg = new ChatEntry.Model() { messageType = ChatMessage.Type.PUBLIC, senderName = "test" + i, bodyText = "test" + i, }; controller.AddChatMessage(msg); } Assert.AreEqual(ChatHUDController.MAX_CHAT_ENTRIES, controller.view.entries.Count); Assert.AreEqual("test5", controller.view.entries[0].model.bodyText); }
public void AddAndClearChatEntriesProperly() { var msg = new ChatEntry.Model() { messageType = ChatMessage.Type.PUBLIC, senderName = "test", bodyText = "test", }; controller.AddChatMessage(msg); Assert.AreEqual(1, controller.view.entries.Count); Assert.AreEqual(msg, controller.view.entries[0].model); controller.view.CleanAllEntries(); Assert.AreEqual(0, controller.view.entries.Count); }
public static ChatEntry.Model ChatMessageToChatEntry(ChatMessage message) { ChatEntry.Model model = new ChatEntry.Model(); var ownProfile = UserProfile.GetOwnUserProfile(); model.messageType = message.messageType; model.bodyText = message.body; model.timestamp = message.timestamp; if (message.recipient != null) { var recipientProfile = UserProfileController.userProfilesCatalog.Get(message.recipient); model.recipientName = recipientProfile != null ? recipientProfile.userName : message.recipient; } if (message.sender != null) { var senderProfile = UserProfileController.userProfilesCatalog.Get(message.sender); model.senderName = senderProfile != null ? senderProfile.userName : message.sender; model.senderId = message.sender; } if (model.messageType == ChatMessage.Type.PRIVATE) { if (message.recipient == ownProfile.userId) { model.subType = ChatEntry.Model.SubType.PRIVATE_FROM; model.otherUserId = message.sender; } else if (message.sender == ownProfile.userId) { model.subType = ChatEntry.Model.SubType.PRIVATE_TO; model.otherUserId = message.recipient; } else { model.subType = ChatEntry.Model.SubType.NONE; } } return(model); }
private void AddSeparatorEntryIfNeeded(ChatEntry.Model chatEntryModel) { DateTime entryDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); entryDateTime = GetDateTimeFromUnixTimestampMilliseconds(chatEntryModel.timestamp); if (!dateSeparators.Exists(separator => separator.model.date.Year == entryDateTime.Year && separator.model.date.Month == entryDateTime.Month && separator.model.date.Day == entryDateTime.Day)) { var chatEntrySeparatorGO = Instantiate(Resources.Load(ENTRY_PATH_SEPARATOR) as GameObject, chatEntriesContainer); DateSeparatorEntry dateSeparatorEntry = chatEntrySeparatorGO.GetComponent <DateSeparatorEntry>(); dateSeparatorEntry.Populate(new DateSeparatorEntry.Model { date = entryDateTime }); dateSeparators.Add(dateSeparatorEntry); } }
public override void AddEntry(ChatEntry.Model chatEntryModel, bool setScrollPositionToBottom = false) { AddSeparatorEntryIfNeeded(chatEntryModel); var chatEntryGO = Instantiate(Resources.Load(chatEntryModel.subType == ChatEntry.Model.SubType.PRIVATE_TO ? ENTRY_PATH_SENT : ENTRY_PATH_RECEIVED) as GameObject, chatEntriesContainer); ChatEntry chatEntry = chatEntryGO.GetComponent <ChatEntry>(); chatEntry.SetFadeout(false); chatEntry.Populate(chatEntryModel); chatEntry.OnTriggerHover += OnMessageTriggerHover; chatEntry.OnCancelHover += OnMessageCancelHover; entries.Add(chatEntry); Utils.ForceUpdateLayout(transform as RectTransform, delayed: false); if (setScrollPositionToBottom) { scrollRect.verticalNormalizedPosition = 0; } }