feat(mobile): use separate queries instead of filter param in mergedAssets

This commit is contained in:
Penlane 2026-08-01 19:04:50 +02:00
parent d04e9fe178
commit 9828077a80

View file

@ -48,11 +48,17 @@ class DriftTimelineRepository extends DriftDatabaseRepository {
.map((users) => users..add(userId));
}
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,
);
TimelineQuery main(List<String> 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<List<Bucket>> _watchMainBucket(List<String> userIds, {GroupAssetsBy groupBy = GroupAssetsBy.day}) {
if (groupBy == GroupAssetsBy.none) {
@ -806,4 +812,4 @@ extension on String {
};
return DateFormat(format, 'en').parse(this);
}
}
}