From 6c2c305f1c9981c6dee8a402b70c9ccf621295b2 Mon Sep 17 00:00:00 2001 From: Pupsi28 Date: Mon, 1 Apr 2024 14:18:23 +0200 Subject: [PATCH] old cache gets deleted --- lib/app.dart | 3 +++ lib/model/dataCleaner.dart | 15 +++++++++++++++ lib/widget/debug/cacheView.dart | 4 ++-- 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 lib/model/dataCleaner.dart 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(); } -- 2.30.2