Added refetch query on app lifecycle state change

This commit is contained in:
Elias Müller 2024-02-06 09:47:53 +01:00
parent 538ebd27bf
commit 7dee9f4f8a

@ -1,8 +1,10 @@
import 'dart:async';
import 'dart:developer';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart';
import 'package:marianum_mobile/notification/notificationTasks.dart';
import 'package:persistent_bottom_nav_bar/persistent_tab_view.dart';
import 'package:provider/provider.dart';
import 'package:badges/badges.dart' as badges;
@ -29,12 +31,23 @@ class App extends StatefulWidget {
State<App> createState() => _AppState();
}
class _AppState extends State<App> {
class _AppState extends State<App> with WidgetsBindingObserver {
late Timer refetchChats;
late Timer updateTimings;
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
log("AppLifecycle: ${state.toString()}");
if(state == AppLifecycleState.resumed) {
NotificationTasks.updateProviders(context);
}
}
@override
void initState() {
WidgetsBinding.instance.addObserver(this);
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
Provider.of<BreakerProps>(context, listen: false).run();
Provider.of<ChatListProps>(context, listen: false).run();
@ -137,6 +150,7 @@ class _AppState extends State<App> {
void dispose() {
refetchChats.cancel();
updateTimings.cancel();
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}
}