Browse Source

Refactor some code

Vishnu Mohandas 5 years ago
parent
commit
0bbf7d1604
2 changed files with 17 additions and 9 deletions
  1. 7 3
      lib/models/photo.dart
  2. 10 6
      lib/photo_sync_manager.dart

+ 7 - 3
lib/models/photo.dart

@@ -34,14 +34,18 @@ class Photo {
     var file = (await asset.originFile);
     var file = (await asset.originFile);
     photo.localPath = file.path;
     photo.localPath = file.path;
     photo.hash = getHash(file);
     photo.hash = getHash(file);
+    await setThumbnail(photo);
+    return photo;
+  }
+
+  static Future<void> setThumbnail(Photo photo) async {
     var externalPath = (await getApplicationDocumentsDirectory()).path;
     var externalPath = (await getApplicationDocumentsDirectory()).path;
     var thumbnailPath = externalPath + "/photos/thumbnails/" + photo.hash + ".thumbnail";
     var thumbnailPath = externalPath + "/photos/thumbnails/" + photo.hash + ".thumbnail";
     var args = Map<String, String>();
     var args = Map<String, String>();
-    args["assetPath"] = file.path;
+    args["assetPath"] = photo.localPath;
     args["thumbnailPath"] = thumbnailPath;
     args["thumbnailPath"] = thumbnailPath;
-    photo.thumbnailPath = thumbnailPath;
     await compute(getThumbnailPath, args);
     await compute(getThumbnailPath, args);
-    return photo;
+    photo.thumbnailPath = thumbnailPath;
   }
   }
 
 
   static String getHash(File file) {
   static String getHash(File file) {

+ 10 - 6
lib/photo_sync_manager.dart

@@ -55,7 +55,8 @@ class PhotoSyncManager {
           photos.clear();
           photos.clear();
           PhotoLoader.instance.reloadPhotos();
           PhotoLoader.instance.reloadPhotos();
           _logger.i("Inserted " + photos.length.toString() + " photos.");
           _logger.i("Inserted " + photos.length.toString() + " photos.");
-          await prefs.setInt(_lastDBUpdateTimestampKey, asset.createDateTime.millisecondsSinceEpoch);
+          await prefs.setInt(_lastDBUpdateTimestampKey,
+              asset.createDateTime.millisecondsSinceEpoch);
         }
         }
       }
       }
     }
     }
@@ -130,9 +131,13 @@ class PhotoSyncManager {
       "lastSyncTimestamp": lastSyncTimestamp
       "lastSyncTimestamp": lastSyncTimestamp
     }).catchError(_onError);
     }).catchError(_onError);
     _logger.i(response.toString());
     _logger.i(response.toString());
-    return (response.data["diff"] as List)
-        .map((photo) => new Photo.fromJson(photo))
-        .toList();
+    if (response != null) {
+      return (response.data["diff"] as List)
+          .map((photo) => new Photo.fromJson(photo))
+          .toList();
+    } else {
+      return List<Photo>();
+    }
   }
   }
 
 
   Future<Photo> _uploadFile(String path, String hash) async {
   Future<Photo> _uploadFile(String path, String hash) async {
@@ -145,9 +150,8 @@ class PhotoSyncManager {
         .catchError(_onError);
         .catchError(_onError);
     _logger.i(response.toString());
     _logger.i(response.toString());
     var photo = Photo.fromJson(response.data);
     var photo = Photo.fromJson(response.data);
-    _logger.i("Locally computed hash for " + path + ": " + hash);
-    _logger.i("Server computed hash for " + path + ": " + photo.hash);
     photo.localPath = path;
     photo.localPath = path;
+    Photo.setThumbnail(photo);
     return photo;
     return photo;
   }
   }