Bläddra i källkod

Fix: Clear entries from memory cache on file deletion

Neeraj Gupta 2 år sedan
förälder
incheckning
7ba1f11dae
1 ändrade filer med 13 tillägg och 0 borttagningar
  1. 13 0
      lib/services/memories_service.dart

+ 13 - 0
lib/services/memories_service.dart

@@ -1,8 +1,10 @@
 import 'package:flutter/foundation.dart';
 import 'package:logging/logging.dart';
 import 'package:photos/core/constants.dart';
+import "package:photos/core/event_bus.dart";
 import 'package:photos/db/files_db.dart';
 import 'package:photos/db/memories_db.dart';
+import "package:photos/events/files_updated_event.dart";
 import 'package:photos/models/filters/important_items_filter.dart';
 import 'package:photos/models/memory.dart';
 import 'package:photos/services/collections_service.dart';
@@ -34,6 +36,17 @@ class MemoriesService extends ChangeNotifier {
         DateTime.now().microsecondsSinceEpoch - (7 * microSecondsInDay),
       );
     });
+    Bus.instance.on<FilesUpdatedEvent>().where((event) {
+      return event.type == EventType.deletedFromEverywhere;
+    }).listen((event) {
+      final generatedIDs = event.updatedFiles
+          .where((element) => element.generatedID != null)
+          .map((e) => e.generatedID!)
+          .toSet();
+      _cachedMemories?.removeWhere((element) {
+        return generatedIDs.contains(element.file.generatedID);
+      });
+    });
   }
 
   void clearCache() {