Neeraj Gupta пре 3 година
родитељ
комит
25d6291877
2 измењених фајлова са 17 додато и 6 уклоњено
  1. 11 5
      lib/utils/exif_util.dart
  2. 6 1
      lib/utils/file_util.dart

+ 11 - 5
lib/utils/exif_util.dart

@@ -3,12 +3,18 @@ import 'dart:io' as io;
 import 'package:exif/exif.dart';
 import 'package:exif/exif.dart';
 import 'package:photos/models/file.dart';
 import 'package:photos/models/file.dart';
 import 'package:photos/utils/file_util.dart';
 import 'package:photos/utils/file_util.dart';
+import 'package:logging/logging.dart';
 
 
 Future<Map<String, IfdTag>> getExif(File file) async {
 Future<Map<String, IfdTag>> getExif(File file) async {
-  final originFile = await getFile(file, isOrigin: true);
-  final exif = await readExifFromFile(originFile);
-  if (!file.isRemoteFile() && io.Platform.isIOS) {
-    originFile.delete();
+  try {
+    final originFile = await getFile(file, isOrigin: true);
+    final exif = await readExifFromFile(originFile);
+    if (!file.isRemoteFile() && io.Platform.isIOS) {
+      await originFile.delete();
+    }
+    return exif;
+  } catch (e) {
+    Logger("getExif").severe("failed to getExif", e);
+    rethrow;
   }
   }
-  return exif;
 }
 }

+ 6 - 1
lib/utils/file_util.dart

@@ -1,5 +1,6 @@
 import 'dart:async';
 import 'dart:async';
 import 'dart:io' as io;
 import 'dart:io' as io;
+import 'dart:io';
 import 'dart:typed_data';
 import 'dart:typed_data';
 
 
 import 'package:archive/archive.dart';
 import 'package:archive/archive.dart';
@@ -46,7 +47,11 @@ Future<io.File> getFile(
         liveVideo: liveVideo,
         liveVideo: liveVideo,
         isOrigin: isOrigin,
         isOrigin: isOrigin,
       );
       );
-      FileLruCache.put(key, diskFile);
+      // do not cache origin file for IOS as they are immediately deleted
+      // after usage
+      if (!(isOrigin && Platform.isIOS)) {
+        FileLruCache.put(key, diskFile);
+      }
       return diskFile;
       return diskFile;
     }
     }
     return cachedFile;
     return cachedFile;