refactor(mobile): timeline.interface.dart (#19331)

refactor(mobile): timeline.repository.dart
This commit is contained in:
Alex 2025-06-20 11:44:02 -05:00 committed by GitHub
parent 0b44d4b6f2
commit 3024cd343b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 2 additions and 56 deletions

View File

@ -1,39 +0,0 @@
import 'package:immich_mobile/entities/album.entity.dart';
import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/widgets/asset_grid/asset_grid_data_structure.dart';
abstract class ITimelineRepository {
Future<List<String>> getTimelineUserIds(String id);
Stream<List<String>> watchTimelineUsers(String id);
Stream<RenderList> watchArchiveTimeline(String userId);
Stream<RenderList> watchFavoriteTimeline(String userId);
Stream<RenderList> watchTrashTimeline(String userId);
Stream<RenderList> watchAlbumTimeline(
Album album,
GroupAssetsBy groupAssetsBy,
);
Stream<RenderList> watchAllVideosTimeline(String userId);
Stream<RenderList> watchHomeTimeline(
String userId,
GroupAssetsBy groupAssetsBy,
);
Stream<RenderList> watchMultiUsersTimeline(
List<String> userIds,
GroupAssetsBy groupAssetsBy,
);
Future<RenderList> getTimelineFromAssets(
List<Asset> assets,
GroupAssetsBy getGroupByOption,
);
Stream<RenderList> watchAssetSelectionTimeline(String userId);
Stream<RenderList> watchLockedTimeline(
String userId,
GroupAssetsBy groupAssetsBy,
);
}

View File

@ -3,7 +3,6 @@ import 'package:immich_mobile/constants/enums.dart';
import 'package:immich_mobile/entities/album.entity.dart'; 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/infrastructure/entities/user.entity.dart'; import 'package:immich_mobile/infrastructure/entities/user.entity.dart';
import 'package:immich_mobile/interfaces/timeline.interface.dart';
import 'package:immich_mobile/providers/db.provider.dart'; import 'package:immich_mobile/providers/db.provider.dart';
import 'package:immich_mobile/repositories/database.repository.dart'; import 'package:immich_mobile/repositories/database.repository.dart';
import 'package:immich_mobile/utils/hash.dart'; import 'package:immich_mobile/utils/hash.dart';
@ -13,11 +12,9 @@ import 'package:isar/isar.dart';
final timelineRepositoryProvider = final timelineRepositoryProvider =
Provider((ref) => TimelineRepository(ref.watch(dbProvider))); Provider((ref) => TimelineRepository(ref.watch(dbProvider)));
class TimelineRepository extends DatabaseRepository class TimelineRepository extends DatabaseRepository {
implements ITimelineRepository {
TimelineRepository(super.db); TimelineRepository(super.db);
@override
Future<List<String>> getTimelineUserIds(String id) { Future<List<String>> getTimelineUserIds(String id) {
return db.users return db.users
.filter() .filter()
@ -28,7 +25,6 @@ class TimelineRepository extends DatabaseRepository
.findAll(); .findAll();
} }
@override
Stream<List<String>> watchTimelineUsers(String id) { Stream<List<String>> watchTimelineUsers(String id) {
return db.users return db.users
.filter() .filter()
@ -39,7 +35,6 @@ class TimelineRepository extends DatabaseRepository
.watch(); .watch();
} }
@override
Stream<RenderList> watchArchiveTimeline(String userId) { Stream<RenderList> watchArchiveTimeline(String userId) {
final query = db.assets final query = db.assets
.where() .where()
@ -52,7 +47,6 @@ class TimelineRepository extends DatabaseRepository
return _watchRenderList(query, GroupAssetsBy.none); return _watchRenderList(query, GroupAssetsBy.none);
} }
@override
Stream<RenderList> watchFavoriteTimeline(String userId) { Stream<RenderList> watchFavoriteTimeline(String userId) {
final query = db.assets final query = db.assets
.where() .where()
@ -67,7 +61,6 @@ class TimelineRepository extends DatabaseRepository
return _watchRenderList(query, GroupAssetsBy.none); return _watchRenderList(query, GroupAssetsBy.none);
} }
@override
Stream<RenderList> watchAlbumTimeline( Stream<RenderList> watchAlbumTimeline(
Album album, Album album,
GroupAssetsBy groupAssetByOption, GroupAssetsBy groupAssetByOption,
@ -86,7 +79,6 @@ class TimelineRepository extends DatabaseRepository
return _watchRenderList(withSortedOption, groupAssetByOption); return _watchRenderList(withSortedOption, groupAssetByOption);
} }
@override
Stream<RenderList> watchTrashTimeline(String userId) { Stream<RenderList> watchTrashTimeline(String userId) {
final query = db.assets final query = db.assets
.filter() .filter()
@ -97,7 +89,6 @@ class TimelineRepository extends DatabaseRepository
return _watchRenderList(query, GroupAssetsBy.none); return _watchRenderList(query, GroupAssetsBy.none);
} }
@override
Stream<RenderList> watchAllVideosTimeline(String userId) { Stream<RenderList> watchAllVideosTimeline(String userId) {
final query = db.assets final query = db.assets
.where() .where()
@ -111,7 +102,6 @@ class TimelineRepository extends DatabaseRepository
return _watchRenderList(query, GroupAssetsBy.none); return _watchRenderList(query, GroupAssetsBy.none);
} }
@override
Stream<RenderList> watchHomeTimeline( Stream<RenderList> watchHomeTimeline(
String userId, String userId,
GroupAssetsBy groupAssetByOption, GroupAssetsBy groupAssetByOption,
@ -128,7 +118,6 @@ class TimelineRepository extends DatabaseRepository
return _watchRenderList(query, groupAssetByOption); return _watchRenderList(query, groupAssetByOption);
} }
@override
Stream<RenderList> watchMultiUsersTimeline( Stream<RenderList> watchMultiUsersTimeline(
List<String> userIds, List<String> userIds,
GroupAssetsBy groupAssetByOption, GroupAssetsBy groupAssetByOption,
@ -145,7 +134,6 @@ class TimelineRepository extends DatabaseRepository
return _watchRenderList(query, groupAssetByOption); return _watchRenderList(query, groupAssetByOption);
} }
@override
Future<RenderList> getTimelineFromAssets( Future<RenderList> getTimelineFromAssets(
List<Asset> assets, List<Asset> assets,
GroupAssetsBy getGroupByOption, GroupAssetsBy getGroupByOption,
@ -153,7 +141,6 @@ class TimelineRepository extends DatabaseRepository
return RenderList.fromAssets(assets, getGroupByOption); return RenderList.fromAssets(assets, getGroupByOption);
} }
@override
Stream<RenderList> watchAssetSelectionTimeline(String userId) { Stream<RenderList> watchAssetSelectionTimeline(String userId) {
final query = db.assets final query = db.assets
.where() .where()
@ -168,7 +155,6 @@ class TimelineRepository extends DatabaseRepository
return _watchRenderList(query, GroupAssetsBy.none); return _watchRenderList(query, GroupAssetsBy.none);
} }
@override
Stream<RenderList> watchLockedTimeline( Stream<RenderList> watchLockedTimeline(
String userId, String userId,
GroupAssetsBy getGroupByOption, GroupAssetsBy getGroupByOption,

View File

@ -2,7 +2,6 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/domain/services/user.service.dart'; import 'package:immich_mobile/domain/services/user.service.dart';
import 'package:immich_mobile/entities/album.entity.dart'; 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/interfaces/timeline.interface.dart';
import 'package:immich_mobile/providers/app_settings.provider.dart'; import 'package:immich_mobile/providers/app_settings.provider.dart';
import 'package:immich_mobile/providers/infrastructure/user.provider.dart'; import 'package:immich_mobile/providers/infrastructure/user.provider.dart';
import 'package:immich_mobile/repositories/timeline.repository.dart'; import 'package:immich_mobile/repositories/timeline.repository.dart';
@ -18,7 +17,7 @@ final timelineServiceProvider = Provider<TimelineService>((ref) {
}); });
class TimelineService { class TimelineService {
final ITimelineRepository _timelineRepository; final TimelineRepository _timelineRepository;
final AppSettingsService _appSettingsService; final AppSettingsService _appSettingsService;
final UserService _userService; final UserService _userService;