diff --git a/example/lib/main.dart b/example/lib/main.dart index 75e2388d..d61d25f9 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -51,7 +51,7 @@ class MyApp extends StatelessWidget { return MaterialApp( theme: ThemeData.light(), darkTheme: ThemeData.dark(), - themeMode: ThemeMode.dark, + themeMode: ThemeMode.system, home: Container( child: StreamChat( client: client, @@ -99,6 +99,7 @@ class ChannelPage extends StatelessWidget { child: Stack( children: [ MessageListView( + showVideoFullScreen: false, threadBuilder: (_, parentMessage) { return ThreadPage( parent: parentMessage, diff --git a/lib/src/channel_list_view.dart b/lib/src/channel_list_view.dart index 9bcccdd5..ce338fe4 100644 --- a/lib/src/channel_list_view.dart +++ b/lib/src/channel_list_view.dart @@ -326,7 +326,8 @@ class _ChannelListViewState extends State void _listenChannelPagination(ChannelsBlocState channelsProvider) { if (_scrollController.position.maxScrollExtent == - _scrollController.offset) { + _scrollController.offset && + _scrollController.offset != 0) { channelsProvider.queryChannels( filter: widget.filter, sortOptions: widget.sort, @@ -342,11 +343,11 @@ class _ChannelListViewState extends State void initState() { super.initState(); - final channelsProvider = ChannelsBloc.of(context); + final channelsBloc = ChannelsBloc.of(context); WidgetsBinding.instance.addObserver(this); - channelsProvider.queryChannels( + channelsBloc.queryChannels( filter: widget.filter, sortOptions: widget.sort, paginationParams: widget.pagination, @@ -354,7 +355,11 @@ class _ChannelListViewState extends State ); _scrollController.addListener(() { - _listenChannelPagination(channelsProvider); + channelsBloc.queryChannelsLoading.first.then((loading) { + if (!loading) { + _listenChannelPagination(channelsBloc); + } + }); }); } diff --git a/lib/src/stream_chat.dart b/lib/src/stream_chat.dart index 876f76ee..d18df0f5 100644 --- a/lib/src/stream_chat.dart +++ b/lib/src/stream_chat.dart @@ -194,14 +194,16 @@ class StreamChatState extends State with WidgetsBindingObserver { void didChangeAppLifecycleState(AppLifecycleState state) { if (state == AppLifecycleState.paused) { if (Platform.isAndroid) { - _newMessageSubscription = - client.on(EventType.messageNew).listen((event) { - client.androidNotificationHandler({ - 'data': { - 'message_id': event.message.id, - }, + if (client.pushNotificationsEnabled) { + _newMessageSubscription = + client.on(EventType.messageNew).listen((event) { + client.androidNotificationHandler({ + 'data': { + 'message_id': event.message.id, + }, + }); }); - }); + } _disconnectTimer = Timer(Duration(minutes: 1), () { client.disconnect(); }); @@ -214,7 +216,9 @@ class StreamChatState extends State with WidgetsBindingObserver { _disconnectTimer.cancel(); } else { if (client.wsConnectionStatus.value == ConnectionStatus.disconnected) { - NotificationService.handleIosMessageQueue(client); + if (client.pushNotificationsEnabled) { + NotificationService.handleIosMessageQueue(client); + } client.connect(); } }