refactor(mobile): render list (#16239)

* refactor(mobile): trash provider

* refactor(mobile): trash provider

* pr feedback

* archive timeline

* favorite

* album

* trash timeline

* all videos timeline

* refactor

* refactor: home timeline and partner timeline

* update analysis option
This commit is contained in:
Alex 2025-02-21 09:01:46 -06:00 committed by GitHub
parent 616905211d
commit 5acf6868b7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
24 changed files with 284 additions and 196 deletions

View file

@ -3,7 +3,6 @@ import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/entities/user.entity.dart';
import 'package:immich_mobile/interfaces/database.interface.dart';
import 'package:immich_mobile/models/albums/album_search.model.dart';
import 'package:immich_mobile/widgets/asset_grid/asset_grid_data_structure.dart';
abstract interface class IAlbumRepository implements IDatabaseRepository {
Future<Album> create(Album album);
@ -50,8 +49,6 @@ abstract interface class IAlbumRepository implements IDatabaseRepository {
Stream<Album?> watchAlbum(int id);
Stream<RenderList> getRenderListStream(Album album);
Future<void> clearTable();
}

View file

@ -2,7 +2,6 @@ import 'package:immich_mobile/entities/album.entity.dart';
import 'package:immich_mobile/entities/asset.entity.dart';
import 'package:immich_mobile/entities/device_asset.entity.dart';
import 'package:immich_mobile/interfaces/database.interface.dart';
import 'package:immich_mobile/widgets/asset_grid/asset_grid_data_structure.dart';
abstract interface class IAssetRepository implements IDatabaseRepository {
Future<Asset?> getByRemoteId(String id);
@ -66,8 +65,6 @@ abstract interface class IAssetRepository implements IDatabaseRepository {
Stream<Asset?> watchAsset(int id, {bool fireImmediately = false});
Future<List<Asset>> getTrashAssets(int userId);
Stream<RenderList> getTrashRenderListStream(int userId);
}
enum AssetSort { checksum, ownerIdChecksum }

View file

@ -0,0 +1,16 @@
import 'package:immich_mobile/entities/album.entity.dart';
import 'package:immich_mobile/widgets/asset_grid/asset_grid_data_structure.dart';
abstract class ITimelineRepository {
Stream<RenderList> watchArchiveTimeline(int userId);
Stream<RenderList> watchFavoriteTimeline(int userId);
Stream<RenderList> watchTrashTimeline(int userId);
Stream<RenderList> watchAlbumTimeline(Album album);
Stream<RenderList> watchAllVideosTimeline();
Stream<RenderList> watchHomeTimeline(int userId, GroupAssetsBy groupAssetsBy);
Stream<RenderList> watchMultiUsersTimeline(
List<int> userIds,
GroupAssetsBy groupAssetsBy,
);
}