refactor code (minor nitpicks)

This commit is contained in:
Peter Ombodi 2025-08-28 12:43:38 +03:00
parent 1682766ccb
commit b79371b0e0
2 changed files with 23 additions and 14 deletions

View file

@ -120,7 +120,7 @@ class SyncStreamService {
case SyncEntityType.assetV1: case SyncEntityType.assetV1:
final remoteSyncAssets = data.cast<SyncAssetV1>(); final remoteSyncAssets = data.cast<SyncAssetV1>();
await _trashSyncService.handleRemoteChanges( await _trashSyncService.handleRemoteChanges(
remoteSyncAssets.map((e) => (checksum: e.checksum, deletedAt: e.deletedAt)), remoteSyncAssets.map<TrashSyncItem>((e) => (checksum: e.checksum, deletedAt: e.deletedAt)),
); );
return _syncStreamRepository.updateAssetsV1(remoteSyncAssets); return _syncStreamRepository.updateAssetsV1(remoteSyncAssets);
case SyncEntityType.assetDeleteV1: case SyncEntityType.assetDeleteV1:

View file

@ -6,6 +6,8 @@ import 'package:immich_mobile/services/app_settings.service.dart';
import 'package:logging/logging.dart'; import 'package:logging/logging.dart';
import 'package:platform/platform.dart'; import 'package:platform/platform.dart';
typedef TrashSyncItem = ({String checksum, DateTime? deletedAt});
class TrashSyncService { class TrashSyncService {
final AppSettingsService _appSettingsService; final AppSettingsService _appSettingsService;
final RemoteAssetRepository _remoteAssetRepository; final RemoteAssetRepository _remoteAssetRepository;
@ -28,22 +30,27 @@ class TrashSyncService {
_storageRepository = storageRepository, _storageRepository = storageRepository,
_platform = const LocalPlatform(); _platform = const LocalPlatform();
Future<void> handleRemoteChanges(Iterable<({String checksum, DateTime? deletedAt})> syncItems) async { Future<void> handleRemoteChanges(Iterable<TrashSyncItem> syncItems) async {
if (!_platform.isAndroid || !_appSettingsService.getSetting<bool>(AppSettingsEnum.manageLocalMediaAndroid)) { if (!_platform.isAndroid || !_appSettingsService.getSetting<bool>(AppSettingsEnum.manageLocalMediaAndroid)) {
return Future.value(); return Future.value();
} }
final trashedAssetsChecksums = syncItems final trashedAssetsChecksums = <String>[];
.where((item) => item.deletedAt != null) final modifiedAssetsChecksums = <String>[];
.map((syncItem) => syncItem.checksum); for (var syncItem in syncItems) {
await applyRemoteTrashToLocal(trashedAssetsChecksums); if (syncItem.deletedAt != null) {
final modifiedAssetsChecksums = syncItems trashedAssetsChecksums.add(syncItem.checksum);
.where((item) => item.deletedAt == null) } else {
.map((syncItem) => syncItem.checksum); modifiedAssetsChecksums.add(syncItem.checksum);
await applyRemoteRestoreToLocal(modifiedAssetsChecksums); }
}
await _applyRemoteTrashToLocal(trashedAssetsChecksums);
await _applyRemoteRestoreToLocal(modifiedAssetsChecksums);
} }
Future<void> applyRemoteTrashToLocal(Iterable<String> trashedAssetsChecksums) async { Future<void> _applyRemoteTrashToLocal(Iterable<String> trashedAssetsChecksums) async {
if (trashedAssetsChecksums.isNotEmpty) { if (trashedAssetsChecksums.isEmpty) {
return Future.value();
} else {
final localAssetsToTrash = await _localAssetRepository.getByChecksums(trashedAssetsChecksums); final localAssetsToTrash = await _localAssetRepository.getByChecksums(trashedAssetsChecksums);
if (localAssetsToTrash.isNotEmpty) { if (localAssetsToTrash.isNotEmpty) {
final mediaUrls = await Future.wait( final mediaUrls = await Future.wait(
@ -57,8 +64,10 @@ class TrashSyncService {
} }
} }
Future<void> applyRemoteRestoreToLocal(Iterable<String> modifiedAssetsChecksums) async { Future<void> _applyRemoteRestoreToLocal(Iterable<String> modifiedAssetsChecksums) async {
if (modifiedAssetsChecksums.isNotEmpty) { if (modifiedAssetsChecksums.isEmpty) {
return Future.value();
} else {
final remoteAssetsToRestore = await _remoteAssetRepository.getByChecksums( final remoteAssetsToRestore = await _remoteAssetRepository.getByChecksums(
modifiedAssetsChecksums, modifiedAssetsChecksums,
isTrashed: true, isTrashed: true,