Selaa lähdekoodia

Check if local file exists before deleting in db

Neeraj Gupta 3 vuotta sitten
vanhempi
commit
8a88bbfb2e
2 muutettua tiedostoa jossa 10 lisäystä ja 3 poistoa
  1. 6 3
      lib/ui/thumbnail_widget.dart
  2. 4 0
      lib/utils/file_util.dart

+ 6 - 3
lib/ui/thumbnail_widget.dart

@@ -9,6 +9,7 @@ import 'package:photos/events/local_photos_updated_event.dart';
 import 'package:photos/models/file.dart';
 import 'package:photos/models/file_type.dart';
 import 'package:photos/ui/common_elements.dart';
+import 'package:photos/utils/file_util.dart';
 import 'package:photos/utils/thumbnail_util.dart';
 
 class ThumbnailWidget extends StatefulWidget {
@@ -179,9 +180,11 @@ class _ThumbnailWidgetState extends State<ThumbnailWidget> {
           FilesDB.instance.update(widget.file);
           _loadNetworkImage();
         } else {
-          _logger.info("Deleting file " + widget.file.tag());
-          FilesDB.instance.deleteLocalFile(widget.file);
-          Bus.instance.fire(LocalPhotosUpdatedEvent([widget.file]));
+          if (await doesLocalFileExist(widget.file) == false) {
+            _logger.info("Deleting file " + widget.file.tag());
+            FilesDB.instance.deleteLocalFile(widget.file);
+            Bus.instance.fire(LocalPhotosUpdatedEvent([widget.file]));
+          }
         }
         return;
       }

+ 4 - 0
lib/utils/file_util.dart

@@ -44,6 +44,10 @@ Future<io.File> getFile(ente.File file) async {
   }
 }
 
+Future<bool> doesLocalFileExist(ente.File file) async {
+  return await _getLocalDiskFile(file) != null;
+}
+
 Future<io.File> _getLocalDiskFile(ente.File file) async {
   if (file.isSharedMediaToAppSandbox()) {
     var localFile = io.File(getSharedMediaFilePath(file));