From e61d7f261654543cb7735117ca2c3a326e681452 Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 20 Jun 2025 09:23:43 -0500 Subject: [PATCH] refactor(mobile): album_media.interface.dart (#19355) * refactor(mobile): album_media.interface.dart * refactor: album_media repo * make dcm happy --------- Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com> --- .../lib/interfaces/album_media.interface.dart | 21 ------------------- .../lib/providers/backup/backup.provider.dart | 3 +-- .../repositories/album_media.repository.dart | 14 ++----------- mobile/lib/services/album.service.dart | 3 +-- mobile/lib/services/backup.service.dart | 3 +-- mobile/lib/services/sync.service.dart | 3 +-- mobile/test/repository.mocks.dart | 4 ++-- 7 files changed, 8 insertions(+), 43 deletions(-) delete mode 100644 mobile/lib/interfaces/album_media.interface.dart diff --git a/mobile/lib/interfaces/album_media.interface.dart b/mobile/lib/interfaces/album_media.interface.dart deleted file mode 100644 index fd5f3c8af1..0000000000 --- a/mobile/lib/interfaces/album_media.interface.dart +++ /dev/null @@ -1,21 +0,0 @@ -import 'package:immich_mobile/entities/album.entity.dart'; -import 'package:immich_mobile/entities/asset.entity.dart'; - -abstract interface class IAlbumMediaRepository { - Future> getAll(); - - Future> getAssetIds(String albumId); - - Future getAssetCount(String albumId); - - Future> getAssets( - String albumId, { - int start = 0, - int end = 0x7fffffffffffffff, - DateTime? modifiedFrom, - DateTime? modifiedUntil, - bool orderByModificationDate = false, - }); - - Future get(String id); -} diff --git a/mobile/lib/providers/backup/backup.provider.dart b/mobile/lib/providers/backup/backup.provider.dart index a4f4fea45c..479a3e0bb5 100644 --- a/mobile/lib/providers/backup/backup.provider.dart +++ b/mobile/lib/providers/backup/backup.provider.dart @@ -9,7 +9,6 @@ import 'package:immich_mobile/domain/models/store.model.dart'; import 'package:immich_mobile/entities/album.entity.dart'; import 'package:immich_mobile/entities/backup_album.entity.dart'; import 'package:immich_mobile/entities/store.entity.dart'; -import 'package:immich_mobile/interfaces/album_media.interface.dart'; import 'package:immich_mobile/interfaces/backup_album.interface.dart'; import 'package:immich_mobile/interfaces/file_media.interface.dart'; import 'package:immich_mobile/models/auth/auth_state.model.dart'; @@ -108,7 +107,7 @@ class BackupNotifier extends StateNotifier { final AuthState _authState; final BackgroundService _backgroundService; final GalleryPermissionNotifier _galleryPermissionNotifier; - final IAlbumMediaRepository _albumMediaRepository; + final AlbumMediaRepository _albumMediaRepository; final IFileMediaRepository _fileMediaRepository; final BackupAlbumService _backupAlbumService; final Ref ref; diff --git a/mobile/lib/repositories/album_media.repository.dart b/mobile/lib/repositories/album_media.repository.dart index 9cba072580..b3d31f4a1b 100644 --- a/mobile/lib/repositories/album_media.repository.dart +++ b/mobile/lib/repositories/album_media.repository.dart @@ -4,14 +4,13 @@ import 'package:immich_mobile/entities/album.entity.dart'; import 'package:immich_mobile/entities/asset.entity.dart'; import 'package:immich_mobile/entities/store.entity.dart'; import 'package:immich_mobile/infrastructure/entities/user.entity.dart'; -import 'package:immich_mobile/interfaces/album_media.interface.dart'; import 'package:immich_mobile/repositories/asset_media.repository.dart'; import 'package:photo_manager/photo_manager.dart' hide AssetType; final albumMediaRepositoryProvider = Provider((ref) => const AlbumMediaRepository()); -class AlbumMediaRepository implements IAlbumMediaRepository { +class AlbumMediaRepository { const AlbumMediaRepository(); bool get useCustomFilter => @@ -41,7 +40,6 @@ class AlbumMediaRepository implements IAlbumMediaRepository { ) : null; - @override Future> getAll() async { final filter = useCustomFilter ? CustomFilter.sql(where: '${CustomColumns.base.width} > 0') @@ -52,7 +50,6 @@ class AlbumMediaRepository implements IAlbumMediaRepository { return assetPathEntities.map(_toAlbum).toList(); } - @override Future> getAssetIds(String albumId) async { final album = await AssetPathEntity.fromId(albumId, filterOption: _getAlbumFilter()); @@ -61,14 +58,12 @@ class AlbumMediaRepository implements IAlbumMediaRepository { return assets.map((e) => e.id).toList(); } - @override Future getAssetCount(String albumId) async { final album = await AssetPathEntity.fromId(albumId, filterOption: _getAlbumFilter()); return album.assetCountAsync; } - @override Future> getAssets( String albumId, { int start = 0, @@ -97,12 +92,7 @@ class AlbumMediaRepository implements IAlbumMediaRepository { return assets.map(AssetMediaRepository.toAsset).toList().cast(); } - @override - Future get( - String id, { - DateTime? modifiedFrom, - DateTime? modifiedUntil, - }) async { + Future get(String id) async { final assetPathEntity = await AssetPathEntity.fromId( id, filterOption: _getAlbumFilter(containsPathModified: true), diff --git a/mobile/lib/services/album.service.dart b/mobile/lib/services/album.service.dart index 0f135ce44c..bf67f1c24c 100644 --- a/mobile/lib/services/album.service.dart +++ b/mobile/lib/services/album.service.dart @@ -14,7 +14,6 @@ import 'package:immich_mobile/entities/backup_album.entity.dart'; import 'package:immich_mobile/infrastructure/entities/user.entity.dart' as entity; import 'package:immich_mobile/interfaces/album.interface.dart'; -import 'package:immich_mobile/interfaces/album_media.interface.dart'; import 'package:immich_mobile/interfaces/asset.interface.dart'; import 'package:immich_mobile/interfaces/backup_album.interface.dart'; import 'package:immich_mobile/models/albums/album_add_asset_response.model.dart'; @@ -50,7 +49,7 @@ class AlbumService { final IAlbumRepository _albumRepository; final IAssetRepository _assetRepository; final IBackupAlbumRepository _backupAlbumRepository; - final IAlbumMediaRepository _albumMediaRepository; + final AlbumMediaRepository _albumMediaRepository; final AlbumApiRepository _albumApiRepository; final Logger _log = Logger('AlbumService'); Completer _localCompleter = Completer()..complete(false); diff --git a/mobile/lib/services/backup.service.dart b/mobile/lib/services/backup.service.dart index 596ad8dc2e..d394b4773c 100644 --- a/mobile/lib/services/backup.service.dart +++ b/mobile/lib/services/backup.service.dart @@ -11,7 +11,6 @@ import 'package:immich_mobile/entities/album.entity.dart'; import 'package:immich_mobile/entities/asset.entity.dart'; import 'package:immich_mobile/entities/backup_album.entity.dart'; import 'package:immich_mobile/entities/store.entity.dart'; -import 'package:immich_mobile/interfaces/album_media.interface.dart'; import 'package:immich_mobile/interfaces/asset.interface.dart'; import 'package:immich_mobile/interfaces/asset_media.interface.dart'; import 'package:immich_mobile/interfaces/file_media.interface.dart'; @@ -52,7 +51,7 @@ class BackupService { final Logger _log = Logger("BackupService"); final AppSettingsService _appSetting; final AlbumService _albumService; - final IAlbumMediaRepository _albumMediaRepository; + final AlbumMediaRepository _albumMediaRepository; final IFileMediaRepository _fileMediaRepository; final IAssetRepository _assetRepository; final IAssetMediaRepository _assetMediaRepository; diff --git a/mobile/lib/services/sync.service.dart b/mobile/lib/services/sync.service.dart index 464b5d3096..f771f1f8fc 100644 --- a/mobile/lib/services/sync.service.dart +++ b/mobile/lib/services/sync.service.dart @@ -14,7 +14,6 @@ import 'package:immich_mobile/extensions/collection_extensions.dart'; import 'package:immich_mobile/infrastructure/repositories/user.repository.dart'; import 'package:immich_mobile/infrastructure/repositories/user_api.repository.dart'; import 'package:immich_mobile/interfaces/album.interface.dart'; -import 'package:immich_mobile/interfaces/album_media.interface.dart'; import 'package:immich_mobile/interfaces/asset.interface.dart'; import 'package:immich_mobile/interfaces/etag.interface.dart'; import 'package:immich_mobile/interfaces/local_files_manager.interface.dart'; @@ -63,7 +62,7 @@ final syncServiceProvider = Provider( class SyncService { final HashService _hashService; final EntityService _entityService; - final IAlbumMediaRepository _albumMediaRepository; + final AlbumMediaRepository _albumMediaRepository; final AlbumApiRepository _albumApiRepository; final IAlbumRepository _albumRepository; final IAssetRepository _assetRepository; diff --git a/mobile/test/repository.mocks.dart b/mobile/test/repository.mocks.dart index d642f9efe0..b878fa1de2 100644 --- a/mobile/test/repository.mocks.dart +++ b/mobile/test/repository.mocks.dart @@ -1,6 +1,5 @@ import 'package:immich_mobile/domain/interfaces/exif.interface.dart'; import 'package:immich_mobile/interfaces/album.interface.dart'; -import 'package:immich_mobile/interfaces/album_media.interface.dart'; import 'package:immich_mobile/interfaces/asset.interface.dart'; import 'package:immich_mobile/interfaces/asset_api.interface.dart'; import 'package:immich_mobile/interfaces/asset_media.interface.dart'; @@ -12,6 +11,7 @@ import 'package:immich_mobile/interfaces/file_media.interface.dart'; import 'package:immich_mobile/interfaces/local_files_manager.interface.dart'; import 'package:immich_mobile/interfaces/partner.interface.dart'; import 'package:immich_mobile/interfaces/partner_api.interface.dart'; +import 'package:immich_mobile/repositories/album_media.repository.dart'; import 'package:immich_mobile/repositories/album_api.repository.dart'; import 'package:mocktail/mocktail.dart'; @@ -25,7 +25,7 @@ class MockExifInfoRepository extends Mock implements IExifInfoRepository {} class MockETagRepository extends Mock implements IETagRepository {} -class MockAlbumMediaRepository extends Mock implements IAlbumMediaRepository {} +class MockAlbumMediaRepository extends Mock implements AlbumMediaRepository {} class MockBackupAlbumRepository extends Mock implements IBackupAlbumRepository {}