feat: add unread modes

This commit is contained in:
Anna
2022-02-03 16:15:27 -05:00
parent 7b2622d947
commit 077053f4e1
6 changed files with 88 additions and 18 deletions
+7 -3
View File
@@ -62,7 +62,7 @@ internal class Store : IDisposable {
return new MessagesLock(this.Messages, this.MessagesMutex);
}
internal void AddMessage(Message message) {
internal void AddMessage(Message message, Tab? currentTab) {
using var messages = this.GetMessages();
messages.Messages.Add(message);
@@ -70,9 +70,13 @@ internal class Store : IDisposable {
messages.Messages.RemoveAt(0);
}
var currentMatches = currentTab?.Matches(message) ?? false;
foreach (var tab in this.Plugin.Config.Tabs) {
var unread = !(tab.UnreadMode == UnreadMode.Unseen && currentTab != tab && currentMatches);
if (tab.Matches(message)) {
tab.AddMessage(message);
tab.AddMessage(message, unread);
}
}
}
@@ -114,7 +118,7 @@ internal class Store : IDisposable {
var messageChunks = ChunkUtil.ToChunks(message, chatCode.Type).ToList();
var msg = new Message(chatCode, senderChunks, messageChunks);
this.AddMessage(msg);
this.AddMessage(msg, this.Plugin.Ui.CurrentTab);
var idx = this.Plugin.Functions.GetCurrentChatLogEntryIndex();
if (idx != null) {