From 7dee9f4f8a0153ce55f7e2ede51368b79a85d20d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= <elias@elias-mueller.com> Date: Tue, 6 Feb 2024 09:47:53 +0100 Subject: [PATCH] Added refetch query on app lifecycle state change --- lib/app.dart | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/app.dart b/lib/app.dart index 7b506f2..fabc1e6 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -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(); } } \ No newline at end of file