From 08e3093199d2453d482a4b9fd48bb3a0e3e9d156 Mon Sep 17 00:00:00 2001 From: Penlane Date: Wed, 22 Jul 2026 18:40:45 +0200 Subject: [PATCH] feat(mobile): update main TimelineQuery and pass new filter down to asset and bucket queries --- .../repositories/timeline.repository.dart | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/mobile/lib/infrastructure/repositories/timeline.repository.dart b/mobile/lib/infrastructure/repositories/timeline.repository.dart index 97ad85aa13..f68bf71782 100644 --- a/mobile/lib/infrastructure/repositories/timeline.repository.dart +++ b/mobile/lib/infrastructure/repositories/timeline.repository.dart @@ -47,26 +47,35 @@ class DriftTimelineRepository extends DriftDatabaseRepository { .map((users) => users..add(userId)); } - TimelineQuery main(List userIds, GroupAssetsBy groupBy) => ( - bucketSource: () => _watchMainBucket(userIds, groupBy: groupBy), - assetSource: (offset, count) => _getMainBucketAssets(userIds, offset: offset, count: count), + TimelineQuery main(List 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> _watchMainBucket(List userIds, {GroupAssetsBy groupBy = GroupAssetsBy.day}) { + Stream> _watchMainBucket( + List 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> _getMainBucketAssets(List userIds, {required int offset, required int count}) { + Future> _getMainBucketAssets( + List 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(