1
0
mirror of https://github.com/immich-app/immich.git synced 2025-08-08 23:07:06 +02:00

refactor(mobile): trash provider (#16219)

* refactor(mobile): trash provider

* refactor(mobile): trash provider

* pr feedback
This commit is contained in:
Alex
2025-02-20 22:14:41 -06:00
committed by GitHub
parent 34b88bb47a
commit 17a2043e76
8 changed files with 115 additions and 164 deletions

View File

@ -11,6 +11,7 @@ import 'package:immich_mobile/entities/ios_device_asset.entity.dart';
import 'package:immich_mobile/interfaces/asset.interface.dart';
import 'package:immich_mobile/providers/db.provider.dart';
import 'package:immich_mobile/repositories/database.repository.dart';
import 'package:immich_mobile/widgets/asset_grid/asset_grid_data_structure.dart';
import 'package:isar/isar.dart';
final assetRepositoryProvider =
@ -222,6 +223,31 @@ class AssetRepository extends DatabaseRepository implements IAssetRepository {
Stream<Asset?> watchAsset(int id, {bool fireImmediately = false}) {
return db.assets.watchObject(id, fireImmediately: fireImmediately);
}
@override
Future<List<Asset>> getTrashAssets(int userId) {
return db.assets
.where()
.remoteIdIsNotNull()
.filter()
.ownerIdEqualTo(userId)
.isTrashedEqualTo(true)
.findAll();
}
@override
Stream<RenderList> getTrashRenderListStream(int userId) async* {
final query = db.assets
.filter()
.ownerIdEqualTo(userId)
.isTrashedEqualTo(true)
.sortByFileCreatedAtDesc();
yield await RenderList.fromQuery(query, GroupAssetsBy.none);
await for (final _ in query.watchLazy()) {
yield await RenderList.fromQuery(query, GroupAssetsBy.none);
}
}
}
Future<List<Asset>> _getMatchesImpl(