From fe7219a3c174caff89797ae270f2ee5eb5c6b078 Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Mon, 6 Apr 2020 11:21:46 +0200 Subject: [PATCH] fix android background push --- .../kotlin/com/example/example/Application.kt | 7 ++++-- lib/src/channel_list_view.dart | 24 ++++++++++++++++++- lib/src/stream_chat.dart | 2 ++ 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/example/android/app/src/main/kotlin/com/example/example/Application.kt b/example/android/app/src/main/kotlin/com/example/example/Application.kt index 50127016..dd47a03c 100644 --- a/example/android/app/src/main/kotlin/com/example/example/Application.kt +++ b/example/android/app/src/main/kotlin/com/example/example/Application.kt @@ -7,6 +7,7 @@ import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback import io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService import io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin +import io.flutter.plugins.pathprovider.PathProviderPlugin class Application : FlutterApplication(), PluginRegistrantCallback { override fun onCreate() { @@ -15,10 +16,12 @@ class Application : FlutterApplication(), PluginRegistrantCallback { } override fun registerWith(registry: PluginRegistry?) { - FlutterLocalNotificationsPlugin.registerWith(registry?.registrarFor( - "com.dexterous.flutterlocalnotifications.FlutterLocalNotificationsPlugin")) + PathProviderPlugin.registerWith(registry?.registrarFor( + "io.flutter.plugins.pathprovider.PathProviderPlugin")) SharedPreferencesPlugin.registerWith(registry?.registrarFor( "io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin")) + FlutterLocalNotificationsPlugin.registerWith(registry?.registrarFor( + "com.dexterous.flutterlocalnotifications.FlutterLocalNotificationsPlugin")) FirebaseMessagingPlugin.registerWith(registry?.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin")) } } \ No newline at end of file diff --git a/lib/src/channel_list_view.dart b/lib/src/channel_list_view.dart index 14b68bf4..8bcaaa96 100644 --- a/lib/src/channel_list_view.dart +++ b/lib/src/channel_list_view.dart @@ -98,7 +98,8 @@ class ChannelListView extends StatefulWidget { _ChannelListViewState createState() => _ChannelListViewState(); } -class _ChannelListViewState extends State { +class _ChannelListViewState extends State + with WidgetsBindingObserver { final ScrollController _scrollController = ScrollController(); @override @@ -334,6 +335,8 @@ class _ChannelListViewState extends State { void initState() { super.initState(); + WidgetsBinding.instance.addObserver(this); + final streamChat = StreamChat.of(context); streamChat.queryChannels( filter: widget.filter, @@ -346,4 +349,23 @@ class _ChannelListViewState extends State { _listenChannelPagination(streamChat); }); } + + @override + void didChangeAppLifecycleState(AppLifecycleState state) { + if (state == AppLifecycleState.resumed) { + StreamChat.of(context).queryChannels( + filter: widget.filter, + sortOptions: widget.sort, + paginationParams: widget.pagination, + options: widget.options, + onlyOffline: true, + ); + } + } + + @override + void dispose() { + WidgetsBinding.instance.removeObserver(this); + super.dispose(); + } } diff --git a/lib/src/stream_chat.dart b/lib/src/stream_chat.dart index b1c467ba..76576273 100644 --- a/lib/src/stream_chat.dart +++ b/lib/src/stream_chat.dart @@ -198,6 +198,7 @@ class StreamChatState extends State List sortOptions, PaginationParams paginationParams, Map options, + bool onlyOffline = false, }) async { if (_queryChannelsLoadingController.value == true) { return; @@ -210,6 +211,7 @@ class StreamChatState extends State sort: sortOptions, options: options, paginationParams: paginationParams, + onlyOffline: onlyOffline, ); _queryChannelsLoadingController.sink.add(false); } catch (err, stackTrace) {