mirror of
https://github.com/immich-app/immich
synced 2026-08-29 13:15:45 +00:00
feat(mobile): update main TimelineQuery and pass new filter down to asset and bucket queries
This commit is contained in:
parent
ff0e6bf117
commit
08e3093199
1 changed files with 16 additions and 7 deletions
|
|
@ -47,26 +47,35 @@ class DriftTimelineRepository extends DriftDatabaseRepository {
|
|||
.map((users) => users..add(userId));
|
||||
}
|
||||
|
||||
TimelineQuery main(List<String> userIds, GroupAssetsBy groupBy) => (
|
||||
bucketSource: () => _watchMainBucket(userIds, groupBy: groupBy),
|
||||
assetSource: (offset, count) => _getMainBucketAssets(userIds, offset: offset, count: count),
|
||||
TimelineQuery main(List<String> userIds, GroupAssetsBy groupBy, AssetOriginFilter filter) => (
|
||||
bucketSource: () => _watchMainBucket(userIds, groupBy: groupBy, filter: filter),
|
||||
assetSource: (offset, count) => _getMainBucketAssets(userIds, offset: offset, count: count, filter: filter),
|
||||
origin: TimelineOrigin.main,
|
||||
);
|
||||
|
||||
Stream<List<Bucket>> _watchMainBucket(List<String> userIds, {GroupAssetsBy groupBy = GroupAssetsBy.day}) {
|
||||
Stream<List<Bucket>> _watchMainBucket(
|
||||
List<String> userIds, {
|
||||
GroupAssetsBy groupBy = GroupAssetsBy.day,
|
||||
required AssetOriginFilter filter,
|
||||
}) {
|
||||
if (groupBy == GroupAssetsBy.none) {
|
||||
throw UnsupportedError("GroupAssetsBy.none is not supported for watchMainBucket");
|
||||
}
|
||||
|
||||
return _db.mergedAssetDrift.mergedBucket(userIds: userIds, groupBy: groupBy.index).map((row) {
|
||||
return _db.mergedAssetDrift.mergedBucket(userIds: userIds, groupBy: groupBy.index, filter: filter.index).map((row) {
|
||||
final date = row.bucketDate.truncateDate(groupBy);
|
||||
return TimeBucket(date: date, assetCount: row.assetCount);
|
||||
}).watch();
|
||||
}
|
||||
|
||||
Future<List<BaseAsset>> _getMainBucketAssets(List<String> userIds, {required int offset, required int count}) {
|
||||
Future<List<BaseAsset>> _getMainBucketAssets(
|
||||
List<String> userIds, {
|
||||
required int offset,
|
||||
required int count,
|
||||
required AssetOriginFilter filter,
|
||||
}) {
|
||||
return _db.mergedAssetDrift
|
||||
.mergedAsset(userIds: userIds, limit: (_) => Limit(count, offset))
|
||||
.mergedAsset(userIds: userIds, limit: Limit(count, offset), filter: filter.index)
|
||||
.map(
|
||||
(row) => row.remoteId != null && row.ownerId != null
|
||||
? RemoteAsset(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue