diff --git a/lib/models/photo.dart b/lib/models/photo.dart index 865c769674..804f402dd6 100644 --- a/lib/models/photo.dart +++ b/lib/models/photo.dart @@ -34,14 +34,18 @@ class Photo { var file = (await asset.originFile); photo.localPath = file.path; photo.hash = getHash(file); + await setThumbnail(photo); + return photo; + } + + static Future setThumbnail(Photo photo) async { var externalPath = (await getApplicationDocumentsDirectory()).path; var thumbnailPath = externalPath + "/photos/thumbnails/" + photo.hash + ".thumbnail"; var args = Map(); - args["assetPath"] = file.path; + args["assetPath"] = photo.localPath; args["thumbnailPath"] = thumbnailPath; - photo.thumbnailPath = thumbnailPath; await compute(getThumbnailPath, args); - return photo; + photo.thumbnailPath = thumbnailPath; } static String getHash(File file) { diff --git a/lib/photo_sync_manager.dart b/lib/photo_sync_manager.dart index cf8c8aac55..8f5a78b6fb 100644 --- a/lib/photo_sync_manager.dart +++ b/lib/photo_sync_manager.dart @@ -55,7 +55,8 @@ class PhotoSyncManager { photos.clear(); PhotoLoader.instance.reloadPhotos(); _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 }).catchError(_onError); _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(); + } } Future _uploadFile(String path, String hash) async { @@ -145,9 +150,8 @@ class PhotoSyncManager { .catchError(_onError); _logger.i(response.toString()); 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.setThumbnail(photo); return photo; }