diff --git a/lib/app.dart b/lib/app.dart index 07d46cb..9bff71b 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -14,6 +14,7 @@ import 'api/mhsl/server/userIndex/update/updateUserindex.dart'; import 'model/breakers/Breaker.dart'; import 'model/breakers/BreakerProps.dart'; import 'model/chatList/chatListProps.dart'; +import 'model/dataCleaner.dart'; import 'model/timetable/timetableProps.dart'; import 'notification/notificationController.dart'; import 'notification/notificationTasks.dart'; @@ -87,6 +88,8 @@ class _AppState extends State with WidgetsBindingObserver { FirebaseMessaging.onMessageOpenedApp.listen((message) => NotificationController.onAppOpenedByNotification(message, context)); FirebaseMessaging.instance.getInitialMessage().then((message) => message == null ? null : NotificationController.onAppOpenedByNotification(message, context)); + DataCleaner.cleanOldCache(); + super.initState(); } diff --git a/lib/model/dataCleaner.dart b/lib/model/dataCleaner.dart new file mode 100644 index 0000000..5e6a3ce --- /dev/null +++ b/lib/model/dataCleaner.dart @@ -0,0 +1,15 @@ +import 'package:localstore/localstore.dart'; + +import '../widget/debug/cacheView.dart'; + +class DataCleaner { + static void cleanOldCache() async { + var cacheData = await Localstore.instance.collection(CacheView.collection).get(); + cacheData?.forEach((key, value) async { + DateTime lastUpdate = DateTime.fromMillisecondsSinceEpoch(value['lastupdate']); + if(DateTime.now().subtract(const Duration(days: 200)).isAfter(lastUpdate)) { + await Localstore.instance.collection(CacheView.collection).doc(key.split('/').last).delete(); + } + }); + } +} \ No newline at end of file diff --git a/lib/widget/debug/cacheView.dart b/lib/widget/debug/cacheView.dart index c639645..caa34aa 100644 --- a/lib/widget/debug/cacheView.dart +++ b/lib/widget/debug/cacheView.dart @@ -11,7 +11,7 @@ import '../../../widget/placeholderView.dart'; import 'jsonViewer.dart'; class CacheView extends StatefulWidget { - final collection = 'MarianumMobile'; + static String collection = 'MarianumMobile'; const CacheView({super.key}); @override @@ -34,7 +34,7 @@ class _CacheViewState extends State { @override void initState() { - files = Localstore.instance.collection(widget.collection).get(); + files = Localstore.instance.collection(CacheView.collection).get(); super.initState(); }