feat(mobile): replace cloudOnly query with modified remote query

This commit is contained in:
Penlane 2026-08-15 12:29:46 +02:00
parent eba25a8720
commit 5df20b12ad
2 changed files with 11 additions and 13 deletions

View file

@ -58,7 +58,7 @@ class TimelineFactory {
TimelineService remoteAlbum({required String albumId}) =>
TimelineService(_timelineRepository.remoteAlbum(albumId, groupBy));
TimelineService remoteAssets(String userId) => TimelineService(_timelineRepository.remote(userId, groupBy));
TimelineService remoteAssets(String userId) => TimelineService(_timelineRepository.remote([userId], groupBy));
TimelineService recentlyAdded(String userId) => TimelineService(_timelineRepository.recentlyAdded(userId, groupBy));

View file

@ -50,7 +50,7 @@ class DriftTimelineRepository extends DriftDatabaseRepository {
TimelineQuery main(List<String> userIds, GroupAssetsBy groupBy, AssetOriginFilter filter) {
return switch (filter) {
AssetOriginFilter.remoteOnly => _cloudOnly(userIds, groupBy),
AssetOriginFilter.remoteOnly => remote(userIds, groupBy, origin: TimelineOrigin.main, joinLocal: true),
AssetOriginFilter.localOnly => _localOnly(groupBy),
AssetOriginFilter.all => _all(userIds, groupBy),
};
@ -121,14 +121,6 @@ class DriftTimelineRepository extends DriftDatabaseRepository {
origin: TimelineOrigin.main,
);
TimelineQuery _cloudOnly(List<String> userIds, GroupAssetsBy groupBy) => _remoteQueryBuilder(
filter: (row) =>
row.deletedAt.isNull() & row.visibility.equalsValue(AssetVisibility.timeline) & row.ownerId.isIn(userIds),
groupBy: groupBy,
origin: TimelineOrigin.main,
joinLocal: true,
);
TimelineQuery _localOnly(GroupAssetsBy groupBy) => (
bucketSource: () => _watchLocalOnlyBucket(groupBy: groupBy),
assetSource: (offset, count) => _getLocalOnlyAssets(offset: offset, count: count),
@ -405,11 +397,17 @@ class DriftTimelineRepository extends DriftDatabaseRepository {
);
}
TimelineQuery remote(String ownerId, GroupAssetsBy groupBy) => _remoteQueryBuilder(
TimelineQuery remote(
List<String> ownerIds,
GroupAssetsBy groupBy, {
TimelineOrigin origin = TimelineOrigin.remoteAssets,
bool joinLocal = false,
}) => _remoteQueryBuilder(
filter: (row) =>
row.deletedAt.isNull() & row.visibility.equalsValue(AssetVisibility.timeline) & row.ownerId.equals(ownerId),
row.deletedAt.isNull() & row.visibility.equalsValue(AssetVisibility.timeline) & row.ownerId.isIn(ownerIds),
groupBy: groupBy,
origin: TimelineOrigin.remoteAssets,
origin: origin,
joinLocal: joinLocal,
);
TimelineQuery recentlyAdded(String userId, GroupAssetsBy groupBy) => _remoteQueryBuilder(