From 5df20b12ad131a1cf6e6012c4b89efc191678509 Mon Sep 17 00:00:00 2001 From: Penlane Date: Sat, 15 Aug 2026 12:29:46 +0200 Subject: [PATCH] feat(mobile): replace cloudOnly query with modified remote query --- .../lib/domain/services/timeline.service.dart | 2 +- .../repositories/timeline.repository.dart | 22 +++++++++---------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/mobile/lib/domain/services/timeline.service.dart b/mobile/lib/domain/services/timeline.service.dart index 8e706f7c60..9f45b19758 100644 --- a/mobile/lib/domain/services/timeline.service.dart +++ b/mobile/lib/domain/services/timeline.service.dart @@ -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)); diff --git a/mobile/lib/infrastructure/repositories/timeline.repository.dart b/mobile/lib/infrastructure/repositories/timeline.repository.dart index e59faf713a..0cd1e06594 100644 --- a/mobile/lib/infrastructure/repositories/timeline.repository.dart +++ b/mobile/lib/infrastructure/repositories/timeline.repository.dart @@ -50,7 +50,7 @@ class DriftTimelineRepository extends DriftDatabaseRepository { TimelineQuery main(List 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 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 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(