fix android background push

This commit is contained in:
Salvatore Giordano
2020-04-06 11:21:46 +02:00
parent 27c3a7f390
commit fe7219a3c1
3 changed files with 30 additions and 3 deletions
@@ -7,6 +7,7 @@ import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback
import io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin import io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin
import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService
import io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin import io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin
import io.flutter.plugins.pathprovider.PathProviderPlugin
class Application : FlutterApplication(), PluginRegistrantCallback { class Application : FlutterApplication(), PluginRegistrantCallback {
override fun onCreate() { override fun onCreate() {
@@ -15,10 +16,12 @@ class Application : FlutterApplication(), PluginRegistrantCallback {
} }
override fun registerWith(registry: PluginRegistry?) { override fun registerWith(registry: PluginRegistry?) {
FlutterLocalNotificationsPlugin.registerWith(registry?.registrarFor( PathProviderPlugin.registerWith(registry?.registrarFor(
"com.dexterous.flutterlocalnotifications.FlutterLocalNotificationsPlugin")) "io.flutter.plugins.pathprovider.PathProviderPlugin"))
SharedPreferencesPlugin.registerWith(registry?.registrarFor( SharedPreferencesPlugin.registerWith(registry?.registrarFor(
"io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin")) "io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin"))
FlutterLocalNotificationsPlugin.registerWith(registry?.registrarFor(
"com.dexterous.flutterlocalnotifications.FlutterLocalNotificationsPlugin"))
FirebaseMessagingPlugin.registerWith(registry?.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin")) FirebaseMessagingPlugin.registerWith(registry?.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin"))
} }
} }
+23 -1
View File
@@ -98,7 +98,8 @@ class ChannelListView extends StatefulWidget {
_ChannelListViewState createState() => _ChannelListViewState(); _ChannelListViewState createState() => _ChannelListViewState();
} }
class _ChannelListViewState extends State<ChannelListView> { class _ChannelListViewState extends State<ChannelListView>
with WidgetsBindingObserver {
final ScrollController _scrollController = ScrollController(); final ScrollController _scrollController = ScrollController();
@override @override
@@ -334,6 +335,8 @@ class _ChannelListViewState extends State<ChannelListView> {
void initState() { void initState() {
super.initState(); super.initState();
WidgetsBinding.instance.addObserver(this);
final streamChat = StreamChat.of(context); final streamChat = StreamChat.of(context);
streamChat.queryChannels( streamChat.queryChannels(
filter: widget.filter, filter: widget.filter,
@@ -346,4 +349,23 @@ class _ChannelListViewState extends State<ChannelListView> {
_listenChannelPagination(streamChat); _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();
}
} }
+2
View File
@@ -198,6 +198,7 @@ class StreamChatState extends State<StreamChat>
List<SortOption> sortOptions, List<SortOption> sortOptions,
PaginationParams paginationParams, PaginationParams paginationParams,
Map<String, dynamic> options, Map<String, dynamic> options,
bool onlyOffline = false,
}) async { }) async {
if (_queryChannelsLoadingController.value == true) { if (_queryChannelsLoadingController.value == true) {
return; return;
@@ -210,6 +211,7 @@ class StreamChatState extends State<StreamChat>
sort: sortOptions, sort: sortOptions,
options: options, options: options,
paginationParams: paginationParams, paginationParams: paginationParams,
onlyOffline: onlyOffline,
); );
_queryChannelsLoadingController.sink.add(false); _queryChannelsLoadingController.sink.add(false);
} catch (err, stackTrace) { } catch (err, stackTrace) {