@@ -765,6 +765,15 @@ public static void SaveMessageLocked(SignalMessage message)
765
765
contact . LastActiveTimestamp = timestamp ;
766
766
contact . LastMessage = message ;
767
767
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
+ }
768
777
}
769
778
else
770
779
{
@@ -775,6 +784,15 @@ public static void SaveMessageLocked(SignalMessage message)
775
784
group . LastActiveTimestamp = timestamp ;
776
785
group . LastMessage = message ;
777
786
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
+ }
778
796
}
779
797
ctx . Messages . Add ( message ) ;
780
798
ctx . SaveChanges ( ) ;
@@ -934,68 +952,6 @@ public static void UpdateExpiresInLocked(SignalConversation thread, uint exp)
934
952
}
935
953
}
936
954
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
-
999
955
#endregion Threads
1000
956
1001
957
#region Groups
@@ -1128,7 +1084,6 @@ public static List<SignalGroup> GetAllGroupsLocked()
1128
1084
. ThenInclude ( gm => gm . Contact )
1129
1085
. Include ( g => g . LastMessage )
1130
1086
. ThenInclude ( m => m . Content )
1131
- . Include ( g => g . LastSeenMessage )
1132
1087
. AsNoTracking ( )
1133
1088
. ToList ( ) ;
1134
1089
}
@@ -1149,7 +1104,6 @@ public static List<SignalContact> GetAllContactsLocked()
1149
1104
. OrderByDescending ( c => c . LastActiveTimestamp )
1150
1105
. Include ( g => g . LastMessage )
1151
1106
. ThenInclude ( m => m . Content )
1152
- . Include ( g => g . LastSeenMessage )
1153
1107
. AsNoTracking ( )
1154
1108
. ToList ( ) ;
1155
1109
}
0 commit comments