Skip to content

Commit d5f38de

Browse files
committed
remove unused functions, properly handle the unreadcount
1 parent d00750c commit d5f38de

File tree

2 files changed

+25
-64
lines changed

2 files changed

+25
-64
lines changed

Signal-Windows/Storage/DB.cs

Lines changed: 18 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -765,6 +765,15 @@ public static void SaveMessageLocked(SignalMessage message)
765765
contact.LastActiveTimestamp = timestamp;
766766
contact.LastMessage = message;
767767
contact.MessagesCount += 1;
768+
if (message.Author == null)
769+
{
770+
contact.UnreadCount = 0;
771+
contact.LastSeenMessageIndex = contact.MessagesCount;
772+
}
773+
else
774+
{
775+
contact.UnreadCount += 1;
776+
}
768777
}
769778
else
770779
{
@@ -775,6 +784,15 @@ public static void SaveMessageLocked(SignalMessage message)
775784
group.LastActiveTimestamp = timestamp;
776785
group.LastMessage = message;
777786
group.MessagesCount += 1;
787+
if (message.Author == null)
788+
{
789+
group.UnreadCount = 0;
790+
group.LastSeenMessageIndex = group.MessagesCount;
791+
}
792+
else
793+
{
794+
group.UnreadCount += 1;
795+
}
778796
}
779797
ctx.Messages.Add(message);
780798
ctx.SaveChanges();
@@ -934,68 +952,6 @@ public static void UpdateExpiresInLocked(SignalConversation thread, uint exp)
934952
}
935953
}
936954

937-
public static void UpdateConversationLocked(string threadId, uint unread, long? lastSeenMessageIndex)
938-
{
939-
lock (DBLock)
940-
{
941-
using (var ctx = new SignalDBContext())
942-
{
943-
var contact = ctx.Contacts
944-
.Where(c => c.ThreadId == threadId)
945-
.SingleOrDefault();
946-
if (contact == null)
947-
{
948-
var group = ctx.Groups
949-
.Where(g => g.ThreadId == threadId)
950-
.Single();
951-
group.UnreadCount = unread;
952-
if (lastSeenMessageIndex != null)
953-
{
954-
group.LastSeenMessageIndex = lastSeenMessageIndex.Value;
955-
}
956-
}
957-
else
958-
{
959-
contact.UnreadCount = unread;
960-
if (lastSeenMessageIndex != null)
961-
{
962-
contact.LastSeenMessageIndex = lastSeenMessageIndex.Value;
963-
}
964-
}
965-
ctx.SaveChanges();
966-
}
967-
}
968-
}
969-
970-
public static SignalConversation ClearUnreadLocked(string threadId, long lastReadIndex)
971-
{
972-
lock (DBLock)
973-
{
974-
SignalConversation conversation;
975-
using (var ctx = new SignalDBContext())
976-
{
977-
conversation = ctx.Contacts
978-
.Where(c => c.ThreadId == threadId)
979-
.SingleOrDefault();
980-
if (conversation == null)
981-
{
982-
conversation = ctx.Groups
983-
.Where(g => g.ThreadId == threadId)
984-
.Single();
985-
conversation.UnreadCount = 0;
986-
conversation.LastSeenMessageIndex = lastReadIndex;
987-
}
988-
else
989-
{
990-
conversation.UnreadCount = 0;
991-
conversation.LastSeenMessageIndex = lastReadIndex;
992-
}
993-
ctx.SaveChanges();
994-
}
995-
return conversation;
996-
}
997-
}
998-
999955
#endregion Threads
1000956

1001957
#region Groups
@@ -1128,7 +1084,6 @@ public static List<SignalGroup> GetAllGroupsLocked()
11281084
.ThenInclude(gm => gm.Contact)
11291085
.Include(g => g.LastMessage)
11301086
.ThenInclude(m => m.Content)
1131-
.Include(g => g.LastSeenMessage)
11321087
.AsNoTracking()
11331088
.ToList();
11341089
}
@@ -1149,7 +1104,6 @@ public static List<SignalContact> GetAllContactsLocked()
11491104
.OrderByDescending(c => c.LastActiveTimestamp)
11501105
.Include(g => g.LastMessage)
11511106
.ThenInclude(m => m.Content)
1152-
.Include(g => g.LastSeenMessage)
11531107
.AsNoTracking()
11541108
.ToList();
11551109
}

Signal-Windows/ViewModels/MainPageViewModel.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,13 @@ await Task.Run(() =>
374374
if (message.Direction == SignalMessageDirection.Synced)
375375
{
376376
View.Thread.AddToOutgoingMessagesCache(container);
377+
unreadCount = 0;
378+
thread.LastSeenMessageIndex = thread.MessagesCount;
379+
}
380+
else
381+
{
382+
//TODO don't increase unread if we did scroll automatically, and mark the message as seen
383+
unreadCount++;
377384
}
378385
}
379386
else

0 commit comments

Comments
 (0)