mirror of
https://github.com/immich-app/immich.git
synced 2025-05-31 04:05:39 -04:00
fix(mobile): update album date range on add/remove (#8324)
This commit is contained in:
parent
fd83280b70
commit
861b72ef04
@ -243,12 +243,7 @@ class AlbumService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await _db.writeTxn(() async {
|
await _updateAssets(album.id, add: successAssets);
|
||||||
await album.assets.update(link: successAssets);
|
|
||||||
final a = await _db.albums.get(album.id);
|
|
||||||
// trigger watcher
|
|
||||||
await _db.albums.put(a!);
|
|
||||||
});
|
|
||||||
|
|
||||||
return AddAssetsResponse(
|
return AddAssetsResponse(
|
||||||
alreadyInAlbum: duplicatedAssets,
|
alreadyInAlbum: duplicatedAssets,
|
||||||
@ -257,11 +252,28 @@ class AlbumService {
|
|||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
debugPrint("Error addAdditionalAssetToAlbum ${e.toString()}");
|
debugPrint("Error addAdditionalAssetToAlbum ${e.toString()}");
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<void> _updateAssets(
|
||||||
|
int albumId, {
|
||||||
|
Iterable<Asset> add = const [],
|
||||||
|
Iterable<Asset> remove = const [],
|
||||||
|
}) {
|
||||||
|
return _db.writeTxn(() async {
|
||||||
|
final album = await _db.albums.get(albumId);
|
||||||
|
if (album == null) return;
|
||||||
|
await album.assets.update(link: add, unlink: remove);
|
||||||
|
album.startDate =
|
||||||
|
await album.assets.filter().fileCreatedAtProperty().min();
|
||||||
|
album.endDate = await album.assets.filter().fileCreatedAtProperty().max();
|
||||||
|
album.lastModifiedAssetTimestamp =
|
||||||
|
await album.assets.filter().updatedAtProperty().max();
|
||||||
|
await _db.albums.put(album);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
Future<bool> addAdditionalUserToAlbum(
|
Future<bool> addAdditionalUserToAlbum(
|
||||||
List<String> sharedUserIds,
|
List<String> sharedUserIds,
|
||||||
Album album,
|
Album album,
|
||||||
@ -342,7 +354,7 @@ class AlbumService {
|
|||||||
await _apiService.albumApi.removeUserFromAlbum(album.remoteId!, "me");
|
await _apiService.albumApi.removeUserFromAlbum(album.remoteId!, "me");
|
||||||
return true;
|
return true;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
debugPrint("Error deleteAlbum ${e.toString()}");
|
debugPrint("Error leaveAlbum ${e.toString()}");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -352,24 +364,25 @@ class AlbumService {
|
|||||||
Iterable<Asset> assets,
|
Iterable<Asset> assets,
|
||||||
) async {
|
) async {
|
||||||
try {
|
try {
|
||||||
await _apiService.albumApi.removeAssetFromAlbum(
|
final response = await _apiService.albumApi.removeAssetFromAlbum(
|
||||||
album.remoteId!,
|
album.remoteId!,
|
||||||
BulkIdsDto(
|
BulkIdsDto(
|
||||||
ids: assets.map((asset) => asset.remoteId!).toList(),
|
ids: assets.map((asset) => asset.remoteId!).toList(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
await _db.writeTxn(() async {
|
if (response != null) {
|
||||||
await album.assets.update(unlink: assets);
|
final toRemove = response.every((e) => e.success)
|
||||||
final a = await _db.albums.get(album.id);
|
? assets
|
||||||
// trigger watcher
|
: response
|
||||||
await _db.albums.put(a!);
|
.where((e) => e.success)
|
||||||
});
|
.map((e) => assets.firstWhere((a) => a.remoteId == e.id));
|
||||||
|
await _updateAssets(album.id, remove: toRemove);
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
debugPrint("Error deleteAlbum ${e.toString()}");
|
debugPrint("Error removeAssetFromAlbum ${e.toString()}");
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<bool> removeUserFromAlbum(
|
Future<bool> removeUserFromAlbum(
|
||||||
@ -413,7 +426,7 @@ class AlbumService {
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
debugPrint("Error deleteAlbum ${e.toString()}");
|
debugPrint("Error changeTitleAlbum ${e.toString()}");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user