From b79371b0e0f9fc30f44a6f39b97a683f977393b7 Mon Sep 17 00:00:00 2001 From: Peter Ombodi Date: Thu, 28 Aug 2025 12:43:38 +0300 Subject: [PATCH] refactor code (minor nitpicks) --- .../domain/services/sync_stream.service.dart | 2 +- .../domain/services/trash_sync.service.dart | 35 ++++++++++++------- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/mobile/lib/domain/services/sync_stream.service.dart b/mobile/lib/domain/services/sync_stream.service.dart index feb5aad8b0..92e55f3ea7 100644 --- a/mobile/lib/domain/services/sync_stream.service.dart +++ b/mobile/lib/domain/services/sync_stream.service.dart @@ -120,7 +120,7 @@ class SyncStreamService { case SyncEntityType.assetV1: final remoteSyncAssets = data.cast(); await _trashSyncService.handleRemoteChanges( - remoteSyncAssets.map((e) => (checksum: e.checksum, deletedAt: e.deletedAt)), + remoteSyncAssets.map((e) => (checksum: e.checksum, deletedAt: e.deletedAt)), ); return _syncStreamRepository.updateAssetsV1(remoteSyncAssets); case SyncEntityType.assetDeleteV1: diff --git a/mobile/lib/domain/services/trash_sync.service.dart b/mobile/lib/domain/services/trash_sync.service.dart index 5516cfa3f9..01c163593a 100644 --- a/mobile/lib/domain/services/trash_sync.service.dart +++ b/mobile/lib/domain/services/trash_sync.service.dart @@ -6,6 +6,8 @@ import 'package:immich_mobile/services/app_settings.service.dart'; import 'package:logging/logging.dart'; import 'package:platform/platform.dart'; +typedef TrashSyncItem = ({String checksum, DateTime? deletedAt}); + class TrashSyncService { final AppSettingsService _appSettingsService; final RemoteAssetRepository _remoteAssetRepository; @@ -28,22 +30,27 @@ class TrashSyncService { _storageRepository = storageRepository, _platform = const LocalPlatform(); - Future handleRemoteChanges(Iterable<({String checksum, DateTime? deletedAt})> syncItems) async { + Future handleRemoteChanges(Iterable syncItems) async { if (!_platform.isAndroid || !_appSettingsService.getSetting(AppSettingsEnum.manageLocalMediaAndroid)) { return Future.value(); } - final trashedAssetsChecksums = syncItems - .where((item) => item.deletedAt != null) - .map((syncItem) => syncItem.checksum); - await applyRemoteTrashToLocal(trashedAssetsChecksums); - final modifiedAssetsChecksums = syncItems - .where((item) => item.deletedAt == null) - .map((syncItem) => syncItem.checksum); - await applyRemoteRestoreToLocal(modifiedAssetsChecksums); + final trashedAssetsChecksums = []; + final modifiedAssetsChecksums = []; + for (var syncItem in syncItems) { + if (syncItem.deletedAt != null) { + trashedAssetsChecksums.add(syncItem.checksum); + } else { + modifiedAssetsChecksums.add(syncItem.checksum); + } + } + await _applyRemoteTrashToLocal(trashedAssetsChecksums); + await _applyRemoteRestoreToLocal(modifiedAssetsChecksums); } - Future applyRemoteTrashToLocal(Iterable trashedAssetsChecksums) async { - if (trashedAssetsChecksums.isNotEmpty) { + Future _applyRemoteTrashToLocal(Iterable trashedAssetsChecksums) async { + if (trashedAssetsChecksums.isEmpty) { + return Future.value(); + } else { final localAssetsToTrash = await _localAssetRepository.getByChecksums(trashedAssetsChecksums); if (localAssetsToTrash.isNotEmpty) { final mediaUrls = await Future.wait( @@ -57,8 +64,10 @@ class TrashSyncService { } } - Future applyRemoteRestoreToLocal(Iterable modifiedAssetsChecksums) async { - if (modifiedAssetsChecksums.isNotEmpty) { + Future _applyRemoteRestoreToLocal(Iterable modifiedAssetsChecksums) async { + if (modifiedAssetsChecksums.isEmpty) { + return Future.value(); + } else { final remoteAssetsToRestore = await _remoteAssetRepository.getByChecksums( modifiedAssetsChecksums, isTrashed: true,