Procházet zdrojové kódy

Reduce number of DB reads/writes during a diff fetch

Vishnu Mohandas před 4 roky
rodič
revize
338217eac5
1 změnil soubory, kde provedl 8 přidání a 6 odebrání
  1. 8 6
      lib/utils/diff_fetcher.dart

+ 8 - 6
lib/utils/diff_fetcher.dart

@@ -15,7 +15,7 @@ import 'package:photos/utils/crypto_util.dart';
 import 'package:photos/utils/file_util.dart';
 
 class DiffFetcher {
-  final _logger = Logger("FileDownloader");
+  final _logger = Logger("DiffFetcher");
   final _dio = Network.instance.getDio();
 
   Future<Diff> getEncryptedFilesDiff(
@@ -45,11 +45,13 @@ class DiffFetcher {
               file.uploadedFileID = item["id"];
               file.collectionID = item["collectionID"];
               if (item["isDeleted"]) {
-                await FilesDB.instance.deleteFromCollection(
-                    file.uploadedFileID, file.collectionID);
-                Bus.instance.fire(
-                    CollectionUpdatedEvent(collectionID: file.collectionID));
-                FileRepository.instance.reloadFiles();
+                if (existingFiles.contains(file.uploadedFileID)) {
+                  await FilesDB.instance.deleteFromCollection(
+                      file.uploadedFileID, file.collectionID);
+                  Bus.instance.fire(
+                      CollectionUpdatedEvent(collectionID: file.collectionID));
+                  FileRepository.instance.reloadFiles();
+                }
                 continue;
               }
               file.updationTime = item["updationTime"];