@@ -24,6 +24,7 @@ import 'message.dart';
24
24
import 'message_list.dart' ;
25
25
import 'recent_dm_conversations.dart' ;
26
26
import 'stream.dart' ;
27
+ import 'typing_status.dart' ;
27
28
import 'unreads.dart' ;
28
29
29
30
export 'package:drift/drift.dart' show Value;
@@ -251,6 +252,12 @@ class PerAccountStore extends ChangeNotifier with StreamStore, MessageStore {
251
252
),
252
253
recentDmConversationsView: RecentDmConversationsView (
253
254
initial: initialSnapshot.recentPrivateConversations, selfUserId: account.userId),
255
+ typingStatus: TypingStatus (
256
+ selfUserId: account.userId,
257
+ typingStartedExpiryPeriod: Duration (milliseconds: initialSnapshot.serverTypingStartedExpiryPeriodMilliseconds),
258
+ typingStoppedWaitPeriod: Duration (milliseconds: initialSnapshot.serverTypingStoppedWaitPeriodMilliseconds),
259
+ typingStartedWaitPeriod: Duration (milliseconds: initialSnapshot.serverTypingStartedWaitPeriodMilliseconds),
260
+ )
254
261
);
255
262
}
256
263
@@ -270,6 +277,7 @@ class PerAccountStore extends ChangeNotifier with StreamStore, MessageStore {
270
277
required MessageStoreImpl messages,
271
278
required this .unreads,
272
279
required this .recentDmConversationsView,
280
+ required this .typingStatus,
273
281
}) : assert (selfUserId == globalStore.getAccount (accountId)! .userId),
274
282
assert (realmUrl == globalStore.getAccount (accountId)! .realmUrl),
275
283
assert (realmUrl == connection.realmUrl),
@@ -361,6 +369,8 @@ class PerAccountStore extends ChangeNotifier with StreamStore, MessageStore {
361
369
362
370
final RecentDmConversationsView recentDmConversationsView;
363
371
372
+ final TypingStatus typingStatus;
373
+
364
374
////////////////////////////////
365
375
// Other digests of data.
366
376
@@ -380,6 +390,7 @@ class PerAccountStore extends ChangeNotifier with StreamStore, MessageStore {
380
390
381
391
@override
382
392
void dispose () {
393
+ typingStatus.dispose ();
383
394
recentDmConversationsView.dispose ();
384
395
unreads.dispose ();
385
396
_messages.dispose ();
@@ -485,6 +496,9 @@ class PerAccountStore extends ChangeNotifier with StreamStore, MessageStore {
485
496
assert (debugLog ("server event: update_message_flags/${event .op } ${event .flag .toJson ()}" ));
486
497
_messages.handleUpdateMessageFlagsEvent (event);
487
498
unreads.handleUpdateMessageFlagsEvent (event);
499
+ } else if (event is TypingEvent ) {
500
+ assert (debugLog ("server event: typing/${event .op } ${event .messageType }" ));
501
+ typingStatus.handleTypingEvent (event);
488
502
} else if (event is ReactionEvent ) {
489
503
assert (debugLog ("server event: reaction/${event .op }" ));
490
504
_messages.handleReactionEvent (event);
0 commit comments