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