diff --git a/mobile/lib/domain/services/remote_album.service.dart b/mobile/lib/domain/services/remote_album.service.dart index 35a8f899a8..3c8999decd 100644 --- a/mobile/lib/domain/services/remote_album.service.dart +++ b/mobile/lib/domain/services/remote_album.service.dart @@ -8,6 +8,7 @@ import 'package:immich_mobile/domain/models/user.model.dart'; import 'package:immich_mobile/infrastructure/repositories/remote_album.repository.dart'; import 'package:immich_mobile/models/albums/album_search.model.dart'; import 'package:immich_mobile/providers/album/album_sort_by_options.provider.dart'; +import 'package:openapi/api.dart' show Optional; import 'package:immich_mobile/repositories/drift_album_api_repository.dart'; import 'package:immich_mobile/services/foreground_upload.service.dart'; import 'package:logging/logging.dart'; @@ -137,7 +138,7 @@ class RemoteAlbumService { Future updateAlbum( String albumId, { String? name, - String? description, + Optional description = const Optional.absent(), String? thumbnailAssetId, bool? isActivityEnabled, AlbumAssetOrder? order, diff --git a/mobile/lib/presentation/pages/drift_remote_album.page.dart b/mobile/lib/presentation/pages/drift_remote_album.page.dart index ccbddb99f3..5a5b49a2df 100644 --- a/mobile/lib/presentation/pages/drift_remote_album.page.dart +++ b/mobile/lib/presentation/pages/drift_remote_album.page.dart @@ -20,6 +20,7 @@ import 'package:immich_mobile/providers/user.provider.dart'; import 'package:immich_mobile/routing/router.dart'; import 'package:immich_mobile/widgets/common/immich_toast.dart'; import 'package:immich_mobile/widgets/common/remote_album_sliver_app_bar.dart'; +import 'package:openapi/api.dart' show Optional; @RoutePage() class RemoteAlbumPage extends ConsumerStatefulWidget { @@ -247,10 +248,13 @@ class _EditAlbumDialogState extends ConsumerState<_EditAlbumDialog> { try { final newTitle = titleController.text.trim(); final newDescription = descriptionController.text.trim(); + final description = newDescription.isEmpty + ? const Optional.present(null) + : Optional.present(newDescription); await ref .read(remoteAlbumProvider.notifier) - .updateAlbum(widget.album.id, name: newTitle, description: newDescription); + .updateAlbum(widget.album.id, name: newTitle, description: description); if (mounted) { Navigator.of( diff --git a/mobile/lib/providers/infrastructure/remote_album.provider.dart b/mobile/lib/providers/infrastructure/remote_album.provider.dart index a4bbbae818..b7d9b7cfd9 100644 --- a/mobile/lib/providers/infrastructure/remote_album.provider.dart +++ b/mobile/lib/providers/infrastructure/remote_album.provider.dart @@ -8,6 +8,7 @@ import 'package:immich_mobile/domain/models/user.model.dart'; import 'package:immich_mobile/domain/services/remote_album.service.dart'; import 'package:immich_mobile/models/albums/album_search.model.dart'; import 'package:immich_mobile/providers/album/album_sort_by_options.provider.dart'; +import 'package:openapi/api.dart' show Optional; import 'package:immich_mobile/providers/album/pending_album_uploads.provider.dart'; import 'package:immich_mobile/providers/backup/asset_upload_progress.provider.dart'; import 'package:immich_mobile/providers/infrastructure/album.provider.dart'; @@ -153,7 +154,7 @@ class RemoteAlbumNotifier extends Notifier { Future updateAlbum( String albumId, { String? name, - String? description, + Optional description = const Optional.absent(), String? thumbnailAssetId, bool? isActivityEnabled, AlbumAssetOrder? order, diff --git a/mobile/lib/repositories/drift_album_api_repository.dart b/mobile/lib/repositories/drift_album_api_repository.dart index ee57352fb1..c43e1fd4a0 100644 --- a/mobile/lib/repositories/drift_album_api_repository.dart +++ b/mobile/lib/repositories/drift_album_api_repository.dart @@ -71,7 +71,7 @@ class DriftAlbumApiRepository extends ApiRepository { String albumId, UserDto owner, { String? name, - String? description, + Optional description = const Optional.absent(), String? thumbnailAssetId, bool? isActivityEnabled, AlbumAssetOrder? order, @@ -86,7 +86,7 @@ class DriftAlbumApiRepository extends ApiRepository { albumId, UpdateAlbumDto( albumName: name == null ? const Optional.absent() : Optional.present(name), - description: description == null ? const Optional.absent() : Optional.present(description), + description: description, albumThumbnailAssetId: thumbnailAssetId == null ? const Optional.absent() : Optional.present(thumbnailAssetId),