Merge remote-tracking branch 'origin/main' into feature/sync_assets_trashed_state

# Conflicts:
#	mobile/android/app/src/main/kotlin/app/alextran/immich/sync/Messages.g.kt
#	mobile/ios/Runner/Sync/Messages.g.swift
#	mobile/lib/domain/services/hash.service.dart
#	mobile/lib/domain/services/local_sync.service.dart
#	mobile/lib/platform/native_sync_api.g.dart
#	mobile/lib/providers/infrastructure/sync.provider.dart
#	mobile/pigeon/native_sync_api.dart
#	mobile/test/domain/services/hash_service_test.dart
This commit is contained in:
Peter Ombodi 2025-09-18 14:07:13 +03:00
commit bd9e4871ec
502 changed files with 8388 additions and 4671 deletions

View file

@ -73,9 +73,16 @@ class SyncDelta {
});
}
class HashResult {
final String assetId;
final String? error;
final String? hash;
const HashResult({required this.assetId, this.error, this.hash});
}
class TrashedAssetParams {
final String id;
// Follows AssetType enum from base_asset.model.dart
final int type;
final String? albumId;
@ -109,13 +116,15 @@ abstract class NativeSyncApi {
@TaskQueue(type: TaskQueueType.serialBackgroundThread)
List<PlatformAsset> getAssetsForAlbum(String albumId, {int? updatedTimeCond});
@async
@TaskQueue(type: TaskQueueType.serialBackgroundThread)
List<Uint8List?> hashPaths(List<String> paths);
List<HashResult> hashAssets(List<String> assetIds, {bool allowNetworkAccess = false});
void cancelHashing();
@TaskQueue(type: TaskQueueType.serialBackgroundThread)
List<PlatformAsset> getTrashedAssetsForAlbum(String albumId, {int? updatedTimeCond});
@TaskQueue(type: TaskQueueType.serialBackgroundThread)
List<Uint8List?> hashTrashedAssets(List<TrashedAssetParams> trashedAssets);
}