@@ -17,6 +17,7 @@ import 'autocomplete.dart';
17
17
import 'database.dart' ;
18
18
import 'message_list.dart' ;
19
19
import 'recent_dm_conversations.dart' ;
20
+ import 'unreads.dart' ;
20
21
21
22
export 'package:drift/drift.dart' show Value;
22
23
export 'database.dart' show Account, AccountsCompanion;
@@ -154,6 +155,7 @@ class PerAccountStore extends ChangeNotifier {
154
155
realmDefaultExternalAccounts = initialSnapshot.realmDefaultExternalAccounts,
155
156
customProfileFields = _sortCustomProfileFields (initialSnapshot.customProfileFields),
156
157
userSettings = initialSnapshot.userSettings,
158
+ unreads = Unreads (initial: initialSnapshot.unreadMsgs, selfUserId: account.userId),
157
159
users = Map .fromEntries (
158
160
initialSnapshot.realmUsers
159
161
.followedBy (initialSnapshot.realmNonActiveUsers)
@@ -179,6 +181,7 @@ class PerAccountStore extends ChangeNotifier {
179
181
180
182
// Data attached to the self-account on the realm.
181
183
final UserSettings ? userSettings; // TODO(server-5)
184
+ final Unreads unreads;
182
185
183
186
// Users and data about them.
184
187
final Map <int , User > users;
@@ -301,19 +304,23 @@ class PerAccountStore extends ChangeNotifier {
301
304
for (final view in _messageListViews) {
302
305
view.maybeAddMessage (event.message);
303
306
}
307
+ unreads.handleMessageEvent (event);
304
308
} else if (event is UpdateMessageEvent ) {
305
309
assert (debugLog ("server event: update_message ${event .messageId }" ));
306
310
for (final view in _messageListViews) {
307
311
view.maybeUpdateMessage (event);
308
312
}
313
+ unreads.handleUpdateMessageEvent (event);
309
314
} else if (event is DeleteMessageEvent ) {
310
315
assert (debugLog ("server event: delete_message ${event .messageIds }" ));
311
- // TODO handle
316
+ // TODO handle in message lists
317
+ unreads.handleDeleteMessageEvent (event);
312
318
} else if (event is UpdateMessageFlagsEvent ) {
313
319
assert (debugLog ("server event: update_message_flags/${event .op } ${event .flag .toJson ()}" ));
314
320
for (final view in _messageListViews) {
315
321
view.maybeUpdateMessageFlags (event);
316
322
}
323
+ unreads.handleUpdateMessageFlagsEvent (event);
317
324
} else if (event is ReactionEvent ) {
318
325
assert (debugLog ("server event: reaction/${event .op }" ));
319
326
for (final view in _messageListViews) {
0 commit comments