Browse Source

Add method to fetch folders by updated timestamp

Vishnu Mohandas 5 năm trước cách đây
mục cha
commit
2a312c5015
1 tập tin đã thay đổi với 20 bổ sung2 xóa
  1. 20 2
      lib/db/photo_db.dart

+ 20 - 2
lib/db/photo_db.dart

@@ -258,6 +258,22 @@ class PhotoDB {
     }
     }
   }
   }
 
 
+  Future<Photo> getLastSyncedPhotoInRemoteFolder(int folderId) async {
+    final db = await instance.database;
+    var rows = await db.query(
+      table,
+      where: '$columnRemoteFolderId =?',
+      whereArgs: [folderId],
+      orderBy: '$columnUpdateTimestamp DESC',
+      limit: 1,
+    );
+    if (rows.isNotEmpty) {
+      return _getPhotoFromRow(rows[0]);
+    } else {
+      throw ("No photo found in remote folder " + folderId.toString());
+    }
+  }
+
   Future<Photo> getLatestPhotoAmongGeneratedIds(
   Future<Photo> getLatestPhotoAmongGeneratedIds(
       List<String> generatedIds) async {
       List<String> generatedIds) async {
     final db = await instance.database;
     final db = await instance.database;
@@ -289,8 +305,10 @@ class PhotoDB {
         photo.uploadedFileId == null ? -1 : photo.uploadedFileId;
         photo.uploadedFileId == null ? -1 : photo.uploadedFileId;
     row[columnTitle] = photo.title;
     row[columnTitle] = photo.title;
     row[columnDeviceFolder] = photo.deviceFolder;
     row[columnDeviceFolder] = photo.deviceFolder;
-    row[columnLatitude] = photo.location.latitude;
-    row[columnLongitude] = photo.location.longitude;
+    if (photo.location != null) {
+      row[columnLatitude] = photo.location.latitude;
+      row[columnLongitude] = photo.location.longitude;
+    }
     row[columnRemoteFolderId] = photo.remoteFolderId;
     row[columnRemoteFolderId] = photo.remoteFolderId;
     row[columnRemotePath] = photo.remotePath;
     row[columnRemotePath] = photo.remotePath;
     row[columnThumbnailPath] = photo.thumbnailPath;
     row[columnThumbnailPath] = photo.thumbnailPath;