From 9828077a80a22e2115edec65d66eb4e4b2a2b39d Mon Sep 17 00:00:00 2001 From: Penlane Date: Sat, 1 Aug 2026 19:04:50 +0200 Subject: [PATCH] feat(mobile): use separate queries instead of filter param in mergedAssets --- .../repositories/timeline.repository.dart | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/mobile/lib/infrastructure/repositories/timeline.repository.dart b/mobile/lib/infrastructure/repositories/timeline.repository.dart index 9719fe6041..2cb204b63f 100644 --- a/mobile/lib/infrastructure/repositories/timeline.repository.dart +++ b/mobile/lib/infrastructure/repositories/timeline.repository.dart @@ -48,11 +48,17 @@ class DriftTimelineRepository extends DriftDatabaseRepository { .map((users) => users..add(userId)); } - 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, - ); + TimelineQuery main(List userIds, GroupAssetsBy groupBy, AssetOriginFilter filter) { + return switch (filter) { + AssetOriginFilter.remote => cloudOnly(userIds, groupBy), + AssetOriginFilter.localOnly => localOnly(groupBy), + AssetOriginFilter.all => ( + bucketSource: () => _watchMainBucket(userIds, groupBy: groupBy), + assetSource: (offset, count) => _getMainBucketAssets(userIds, offset: offset, count: count), + origin: TimelineOrigin.main, + ), + }; + } Stream> _watchMainBucket(List userIds, {GroupAssetsBy groupBy = GroupAssetsBy.day}) { if (groupBy == GroupAssetsBy.none) { @@ -806,4 +812,4 @@ extension on String { }; return DateFormat(format, 'en').parse(this); } -} +} \ No newline at end of file