diff --git a/packages/stream_chat_flutter_core/lib/src/channels_bloc.dart b/packages/stream_chat_flutter_core/lib/src/channels_bloc.dart index 2b4968eb..68691e7d 100644 --- a/packages/stream_chat_flutter_core/lib/src/channels_bloc.dart +++ b/packages/stream_chat_flutter_core/lib/src/channels_bloc.dart @@ -95,7 +95,12 @@ class ChannelsBlocState extends State }) async { final client = StreamChatCore.of(context).client; - if (_paginationEnded || _queryChannelsLoadingController.value == true) { + final clear = paginationParams == null || + paginationParams.offset == null || + paginationParams.offset == 0; + + if ((!clear && _paginationEnded) || + _queryChannelsLoadingController.value == true) { return; } @@ -104,9 +109,6 @@ class ChannelsBlocState extends State } try { - final clear = paginationParams == null || - paginationParams.offset == null || - paginationParams.offset == 0; final oldChannels = List.from(channels ?? []); var newChannels = []; await for (final channels in client.queryChannels( @@ -148,7 +150,13 @@ class ChannelsBlocState extends State final client = StreamChatCore.of(context).client; if (!widget.lockChannelsOrder) { - _subscriptions.add(client.on(EventType.messageNew).listen((e) { + _subscriptions.add(client + .on( + EventType.messageNew, + EventType.notificationAddedToChannel, + EventType.notificationMessageNew, + ) + .listen((e) { final newChannels = List.from(channels ?? []); final index = newChannels.indexWhere((c) => c.cid == e.cid); if (index != -1) {