mirror of
https://github.com/immich-app/immich.git
synced 2025-07-09 03:04:16 -04:00
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>
This commit is contained in:
parent
a6b0869714
commit
e61d7f2616
@ -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<List<Album>> getAll();
|
|
||||||
|
|
||||||
Future<List<String>> getAssetIds(String albumId);
|
|
||||||
|
|
||||||
Future<int> getAssetCount(String albumId);
|
|
||||||
|
|
||||||
Future<List<Asset>> getAssets(
|
|
||||||
String albumId, {
|
|
||||||
int start = 0,
|
|
||||||
int end = 0x7fffffffffffffff,
|
|
||||||
DateTime? modifiedFrom,
|
|
||||||
DateTime? modifiedUntil,
|
|
||||||
bool orderByModificationDate = false,
|
|
||||||
});
|
|
||||||
|
|
||||||
Future<Album> get(String id);
|
|
||||||
}
|
|
@ -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/album.entity.dart';
|
||||||
import 'package:immich_mobile/entities/backup_album.entity.dart';
|
import 'package:immich_mobile/entities/backup_album.entity.dart';
|
||||||
import 'package:immich_mobile/entities/store.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/backup_album.interface.dart';
|
||||||
import 'package:immich_mobile/interfaces/file_media.interface.dart';
|
import 'package:immich_mobile/interfaces/file_media.interface.dart';
|
||||||
import 'package:immich_mobile/models/auth/auth_state.model.dart';
|
import 'package:immich_mobile/models/auth/auth_state.model.dart';
|
||||||
@ -108,7 +107,7 @@ class BackupNotifier extends StateNotifier<BackUpState> {
|
|||||||
final AuthState _authState;
|
final AuthState _authState;
|
||||||
final BackgroundService _backgroundService;
|
final BackgroundService _backgroundService;
|
||||||
final GalleryPermissionNotifier _galleryPermissionNotifier;
|
final GalleryPermissionNotifier _galleryPermissionNotifier;
|
||||||
final IAlbumMediaRepository _albumMediaRepository;
|
final AlbumMediaRepository _albumMediaRepository;
|
||||||
final IFileMediaRepository _fileMediaRepository;
|
final IFileMediaRepository _fileMediaRepository;
|
||||||
final BackupAlbumService _backupAlbumService;
|
final BackupAlbumService _backupAlbumService;
|
||||||
final Ref ref;
|
final Ref ref;
|
||||||
|
@ -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/asset.entity.dart';
|
||||||
import 'package:immich_mobile/entities/store.entity.dart';
|
import 'package:immich_mobile/entities/store.entity.dart';
|
||||||
import 'package:immich_mobile/infrastructure/entities/user.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:immich_mobile/repositories/asset_media.repository.dart';
|
||||||
import 'package:photo_manager/photo_manager.dart' hide AssetType;
|
import 'package:photo_manager/photo_manager.dart' hide AssetType;
|
||||||
|
|
||||||
final albumMediaRepositoryProvider =
|
final albumMediaRepositoryProvider =
|
||||||
Provider((ref) => const AlbumMediaRepository());
|
Provider((ref) => const AlbumMediaRepository());
|
||||||
|
|
||||||
class AlbumMediaRepository implements IAlbumMediaRepository {
|
class AlbumMediaRepository {
|
||||||
const AlbumMediaRepository();
|
const AlbumMediaRepository();
|
||||||
|
|
||||||
bool get useCustomFilter =>
|
bool get useCustomFilter =>
|
||||||
@ -41,7 +40,6 @@ class AlbumMediaRepository implements IAlbumMediaRepository {
|
|||||||
)
|
)
|
||||||
: null;
|
: null;
|
||||||
|
|
||||||
@override
|
|
||||||
Future<List<Album>> getAll() async {
|
Future<List<Album>> getAll() async {
|
||||||
final filter = useCustomFilter
|
final filter = useCustomFilter
|
||||||
? CustomFilter.sql(where: '${CustomColumns.base.width} > 0')
|
? CustomFilter.sql(where: '${CustomColumns.base.width} > 0')
|
||||||
@ -52,7 +50,6 @@ class AlbumMediaRepository implements IAlbumMediaRepository {
|
|||||||
return assetPathEntities.map(_toAlbum).toList();
|
return assetPathEntities.map(_toAlbum).toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
|
||||||
Future<List<String>> getAssetIds(String albumId) async {
|
Future<List<String>> getAssetIds(String albumId) async {
|
||||||
final album =
|
final album =
|
||||||
await AssetPathEntity.fromId(albumId, filterOption: _getAlbumFilter());
|
await AssetPathEntity.fromId(albumId, filterOption: _getAlbumFilter());
|
||||||
@ -61,14 +58,12 @@ class AlbumMediaRepository implements IAlbumMediaRepository {
|
|||||||
return assets.map((e) => e.id).toList();
|
return assets.map((e) => e.id).toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
|
||||||
Future<int> getAssetCount(String albumId) async {
|
Future<int> getAssetCount(String albumId) async {
|
||||||
final album =
|
final album =
|
||||||
await AssetPathEntity.fromId(albumId, filterOption: _getAlbumFilter());
|
await AssetPathEntity.fromId(albumId, filterOption: _getAlbumFilter());
|
||||||
return album.assetCountAsync;
|
return album.assetCountAsync;
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
|
||||||
Future<List<Asset>> getAssets(
|
Future<List<Asset>> getAssets(
|
||||||
String albumId, {
|
String albumId, {
|
||||||
int start = 0,
|
int start = 0,
|
||||||
@ -97,12 +92,7 @@ class AlbumMediaRepository implements IAlbumMediaRepository {
|
|||||||
return assets.map(AssetMediaRepository.toAsset).toList().cast();
|
return assets.map(AssetMediaRepository.toAsset).toList().cast();
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
Future<Album> get(String id) async {
|
||||||
Future<Album> get(
|
|
||||||
String id, {
|
|
||||||
DateTime? modifiedFrom,
|
|
||||||
DateTime? modifiedUntil,
|
|
||||||
}) async {
|
|
||||||
final assetPathEntity = await AssetPathEntity.fromId(
|
final assetPathEntity = await AssetPathEntity.fromId(
|
||||||
id,
|
id,
|
||||||
filterOption: _getAlbumFilter(containsPathModified: true),
|
filterOption: _getAlbumFilter(containsPathModified: true),
|
||||||
|
@ -14,7 +14,6 @@ import 'package:immich_mobile/entities/backup_album.entity.dart';
|
|||||||
import 'package:immich_mobile/infrastructure/entities/user.entity.dart'
|
import 'package:immich_mobile/infrastructure/entities/user.entity.dart'
|
||||||
as entity;
|
as entity;
|
||||||
import 'package:immich_mobile/interfaces/album.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.interface.dart';
|
||||||
import 'package:immich_mobile/interfaces/backup_album.interface.dart';
|
import 'package:immich_mobile/interfaces/backup_album.interface.dart';
|
||||||
import 'package:immich_mobile/models/albums/album_add_asset_response.model.dart';
|
import 'package:immich_mobile/models/albums/album_add_asset_response.model.dart';
|
||||||
@ -50,7 +49,7 @@ class AlbumService {
|
|||||||
final IAlbumRepository _albumRepository;
|
final IAlbumRepository _albumRepository;
|
||||||
final IAssetRepository _assetRepository;
|
final IAssetRepository _assetRepository;
|
||||||
final IBackupAlbumRepository _backupAlbumRepository;
|
final IBackupAlbumRepository _backupAlbumRepository;
|
||||||
final IAlbumMediaRepository _albumMediaRepository;
|
final AlbumMediaRepository _albumMediaRepository;
|
||||||
final AlbumApiRepository _albumApiRepository;
|
final AlbumApiRepository _albumApiRepository;
|
||||||
final Logger _log = Logger('AlbumService');
|
final Logger _log = Logger('AlbumService');
|
||||||
Completer<bool> _localCompleter = Completer()..complete(false);
|
Completer<bool> _localCompleter = Completer()..complete(false);
|
||||||
|
@ -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/asset.entity.dart';
|
||||||
import 'package:immich_mobile/entities/backup_album.entity.dart';
|
import 'package:immich_mobile/entities/backup_album.entity.dart';
|
||||||
import 'package:immich_mobile/entities/store.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.interface.dart';
|
||||||
import 'package:immich_mobile/interfaces/asset_media.interface.dart';
|
import 'package:immich_mobile/interfaces/asset_media.interface.dart';
|
||||||
import 'package:immich_mobile/interfaces/file_media.interface.dart';
|
import 'package:immich_mobile/interfaces/file_media.interface.dart';
|
||||||
@ -52,7 +51,7 @@ class BackupService {
|
|||||||
final Logger _log = Logger("BackupService");
|
final Logger _log = Logger("BackupService");
|
||||||
final AppSettingsService _appSetting;
|
final AppSettingsService _appSetting;
|
||||||
final AlbumService _albumService;
|
final AlbumService _albumService;
|
||||||
final IAlbumMediaRepository _albumMediaRepository;
|
final AlbumMediaRepository _albumMediaRepository;
|
||||||
final IFileMediaRepository _fileMediaRepository;
|
final IFileMediaRepository _fileMediaRepository;
|
||||||
final IAssetRepository _assetRepository;
|
final IAssetRepository _assetRepository;
|
||||||
final IAssetMediaRepository _assetMediaRepository;
|
final IAssetMediaRepository _assetMediaRepository;
|
||||||
|
@ -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.repository.dart';
|
||||||
import 'package:immich_mobile/infrastructure/repositories/user_api.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.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.interface.dart';
|
||||||
import 'package:immich_mobile/interfaces/etag.interface.dart';
|
import 'package:immich_mobile/interfaces/etag.interface.dart';
|
||||||
import 'package:immich_mobile/interfaces/local_files_manager.interface.dart';
|
import 'package:immich_mobile/interfaces/local_files_manager.interface.dart';
|
||||||
@ -63,7 +62,7 @@ final syncServiceProvider = Provider(
|
|||||||
class SyncService {
|
class SyncService {
|
||||||
final HashService _hashService;
|
final HashService _hashService;
|
||||||
final EntityService _entityService;
|
final EntityService _entityService;
|
||||||
final IAlbumMediaRepository _albumMediaRepository;
|
final AlbumMediaRepository _albumMediaRepository;
|
||||||
final AlbumApiRepository _albumApiRepository;
|
final AlbumApiRepository _albumApiRepository;
|
||||||
final IAlbumRepository _albumRepository;
|
final IAlbumRepository _albumRepository;
|
||||||
final IAssetRepository _assetRepository;
|
final IAssetRepository _assetRepository;
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import 'package:immich_mobile/domain/interfaces/exif.interface.dart';
|
import 'package:immich_mobile/domain/interfaces/exif.interface.dart';
|
||||||
import 'package:immich_mobile/interfaces/album.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.interface.dart';
|
||||||
import 'package:immich_mobile/interfaces/asset_api.interface.dart';
|
import 'package:immich_mobile/interfaces/asset_api.interface.dart';
|
||||||
import 'package:immich_mobile/interfaces/asset_media.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/local_files_manager.interface.dart';
|
||||||
import 'package:immich_mobile/interfaces/partner.interface.dart';
|
import 'package:immich_mobile/interfaces/partner.interface.dart';
|
||||||
import 'package:immich_mobile/interfaces/partner_api.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:immich_mobile/repositories/album_api.repository.dart';
|
||||||
import 'package:mocktail/mocktail.dart';
|
import 'package:mocktail/mocktail.dart';
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ class MockExifInfoRepository extends Mock implements IExifInfoRepository {}
|
|||||||
|
|
||||||
class MockETagRepository extends Mock implements IETagRepository {}
|
class MockETagRepository extends Mock implements IETagRepository {}
|
||||||
|
|
||||||
class MockAlbumMediaRepository extends Mock implements IAlbumMediaRepository {}
|
class MockAlbumMediaRepository extends Mock implements AlbumMediaRepository {}
|
||||||
|
|
||||||
class MockBackupAlbumRepository extends Mock
|
class MockBackupAlbumRepository extends Mock
|
||||||
implements IBackupAlbumRepository {}
|
implements IBackupAlbumRepository {}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user