From 65dce58aa42a70272f5faa87c84e93f8df224a62 Mon Sep 17 00:00:00 2001 From: shenlong <139912620+shenlong-tanwen@users.noreply.github.com> Date: Wed, 25 Jun 2025 22:16:31 +0530 Subject: [PATCH] refactor(mobile): do not skip iCloud albums during local sync (#19231) do not skip cloud albums during local sync Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com> Co-authored-by: Alex --- .../domain/services/local_sync.service.dart | 21 ++----------------- .../infrastructure/sync.provider.dart | 2 -- 2 files changed, 2 insertions(+), 21 deletions(-) diff --git a/mobile/lib/domain/services/local_sync.service.dart b/mobile/lib/domain/services/local_sync.service.dart index 2fdb0e82c5..882bb801ec 100644 --- a/mobile/lib/domain/services/local_sync.service.dart +++ b/mobile/lib/domain/services/local_sync.service.dart @@ -4,8 +4,6 @@ import 'package:collection/collection.dart'; import 'package:flutter/widgets.dart'; import 'package:immich_mobile/domain/models/asset/base_asset.model.dart'; import 'package:immich_mobile/domain/models/local_album.model.dart'; -import 'package:immich_mobile/domain/models/store.model.dart'; -import 'package:immich_mobile/domain/services/store.service.dart'; import 'package:immich_mobile/infrastructure/repositories/local_album.repository.dart'; import 'package:immich_mobile/platform/native_sync_api.g.dart'; import 'package:immich_mobile/presentation/pages/dev/dev_logger.dart'; @@ -17,22 +15,16 @@ class LocalSyncService { final DriftLocalAlbumRepository _localAlbumRepository; final NativeSyncApi _nativeSyncApi; final Platform _platform; - final StoreService _storeService; final Logger _log = Logger("DeviceSyncService"); LocalSyncService({ required DriftLocalAlbumRepository localAlbumRepository, required NativeSyncApi nativeSyncApi, - required StoreService storeService, Platform? platform, }) : _localAlbumRepository = localAlbumRepository, _nativeSyncApi = nativeSyncApi, - _storeService = storeService, _platform = platform ?? const LocalPlatform(); - bool get _ignoreIcloudAssets => - _storeService.get(StoreKey.ignoreIcloudAssets, false) == true; - Future sync({bool full = false}) async { final Stopwatch stopwatch = Stopwatch()..start(); try { @@ -84,11 +76,7 @@ class LocalSyncService { ); continue; } - if (_ignoreIcloudAssets) { - await removeAlbum(dbAlbum); - } else { - await updateAlbum(dbAlbum, album); - } + await updateAlbum(dbAlbum, album); } } @@ -106,12 +94,7 @@ class LocalSyncService { try { final Stopwatch stopwatch = Stopwatch()..start(); - List deviceAlbums = - List.of(await _nativeSyncApi.getAlbums()); - if (_platform.isIOS && _ignoreIcloudAssets) { - deviceAlbums.removeWhere((album) => album.isCloud); - } - + final deviceAlbums = await _nativeSyncApi.getAlbums(); final dbAlbums = await _localAlbumRepository.getAll(sortBy: {SortLocalAlbumsBy.id}); diff --git a/mobile/lib/providers/infrastructure/sync.provider.dart b/mobile/lib/providers/infrastructure/sync.provider.dart index 706deacb04..2406c37fa8 100644 --- a/mobile/lib/providers/infrastructure/sync.provider.dart +++ b/mobile/lib/providers/infrastructure/sync.provider.dart @@ -11,7 +11,6 @@ import 'package:immich_mobile/providers/infrastructure/cancel.provider.dart'; import 'package:immich_mobile/providers/infrastructure/db.provider.dart'; import 'package:immich_mobile/providers/infrastructure/platform.provider.dart'; import 'package:immich_mobile/providers/infrastructure/storage.provider.dart'; -import 'package:immich_mobile/providers/infrastructure/store.provider.dart'; final syncStreamServiceProvider = Provider( (ref) => SyncStreamService( @@ -33,7 +32,6 @@ final localSyncServiceProvider = Provider( (ref) => LocalSyncService( localAlbumRepository: ref.watch(localAlbumRepository), nativeSyncApi: ref.watch(nativeSyncApiProvider), - storeService: ref.watch(storeServiceProvider), ), );