Ver código fonte

Handle error during edit file

Neeraj Gupta 2 anos atrás
pai
commit
0bc94e1eea
1 arquivos alterados com 26 adições e 14 exclusões
  1. 26 14
      lib/ui/viewer/file/detail_page.dart

+ 26 - 14
lib/ui/viewer/file/detail_page.dart

@@ -14,6 +14,7 @@ import 'package:photos/ui/viewer/gallery/gallery.dart';
 import 'package:photos/utils/dialog_util.dart';
 import 'package:photos/utils/file_util.dart';
 import 'package:photos/utils/navigation_util.dart';
+import 'package:photos/utils/toast_util.dart';
 
 enum DetailPageMode {
   minimalistic,
@@ -294,20 +295,31 @@ class _DetailPageState extends State<DetailPage> {
     }
     final dialog = createProgressDialog(context, "Please wait...");
     await dialog.show();
-    final imageProvider =
-        ExtendedFileImageProvider((await getFile(file))!, cacheRawData: true);
-    await precacheImage(imageProvider, context);
-    await dialog.hide();
-    replacePage(
-      context,
-      ImageEditorPage(
-        imageProvider,
-        file,
-        widget.config.copyWith(
-          files: _files,
-          selectedIndex: _selectedIndex,
+    try {
+      final ioFile = await getFile(file);
+      if (ioFile == null) {
+        showShortToast(context, "Failed to fetch original for edit");
+        await dialog.hide();
+        return;
+      }
+      final imageProvider =
+          ExtendedFileImageProvider(ioFile!, cacheRawData: true);
+      await precacheImage(imageProvider, context);
+      await dialog.hide();
+      replacePage(
+        context,
+        ImageEditorPage(
+          imageProvider,
+          file,
+          widget.config.copyWith(
+            files: _files,
+            selectedIndex: _selectedIndex,
+          ),
         ),
-      ),
-    );
+      );
+    } catch (e) {
+      await dialog.hide();
+      _logger.warning("Failed to initiate edit", e);
+    }
   }
 }