|
@@ -218,7 +218,18 @@ class BackupService {
|
|
|
bool anyErrors = false;
|
|
|
final List<String> duplicatedAssetIds = [];
|
|
|
|
|
|
- for (var entity in assetList) {
|
|
|
+ // Upload images before video assets
|
|
|
+ // these are further sorted by using their creation date so the upload goes as follows
|
|
|
+ // older images -> latest images -> older videos -> latest videos
|
|
|
+ List<AssetEntity> sortedAssets = assetList.sorted(
|
|
|
+ (a, b) {
|
|
|
+ final cmp = a.typeInt - b.typeInt;
|
|
|
+ if (cmp != 0) return cmp;
|
|
|
+ return a.createDateTime.compareTo(b.createDateTime);
|
|
|
+ },
|
|
|
+ );
|
|
|
+
|
|
|
+ for (var entity in sortedAssets) {
|
|
|
try {
|
|
|
if (entity.type == AssetType.video) {
|
|
|
file = await entity.originFile;
|
|
@@ -248,7 +259,8 @@ class BackupService {
|
|
|
|
|
|
req.fields['deviceAssetId'] = entity.id;
|
|
|
req.fields['deviceId'] = deviceId;
|
|
|
- req.fields['fileCreatedAt'] = entity.createDateTime.toUtc().toIso8601String();
|
|
|
+ req.fields['fileCreatedAt'] =
|
|
|
+ entity.createDateTime.toUtc().toIso8601String();
|
|
|
req.fields['fileModifiedAt'] =
|
|
|
entity.modifiedDateTime.toUtc().toIso8601String();
|
|
|
req.fields['isFavorite'] = entity.isFavorite.toString();
|