From 6d9456275f04bdde56391d6e5ba34867d2d2dce2 Mon Sep 17 00:00:00 2001 From: Blomios Date: Wed, 22 Jul 2026 13:40:52 +0200 Subject: [PATCH] fix: count checksum-corrupted media as missing on local backup import Import result missingMediaCount compared restored assets against the backup's declared media file list, so an embedded file that failed sha256 verification was still treated as present. Compute it from the actually restored files instead. Co-Authored-By: Claude Sonnet 5 --- lib/application/use_cases.dart | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/application/use_cases.dart b/lib/application/use_cases.dart index 05beaef..bf9aeba 100644 --- a/lib/application/use_cases.dart +++ b/lib/application/use_cases.dart @@ -208,7 +208,12 @@ final class DataImportUseCase { mode: mode, importedAt: clock.now(), ); - return result.copyWith(missingMediaCount: _missingMediaCount(snapshot)); + return result.copyWith( + missingMediaCount: _missingRestoredMediaCount( + decoded, + restoredMediaFiles, + ), + ); } on LocalBackupException { rethrow; } on Object { @@ -4993,6 +4998,15 @@ int _missingMediaCount(LocalDataExportSnapshot snapshot) { .length; } +int _missingRestoredMediaCount( + LocalDataExportSnapshot snapshot, + Map restoredFiles, +) { + return snapshot.mediaAssets + .where((asset) => !restoredFiles.containsKey(asset.id)) + .length; +} + bool _hasNameDuplicates(LocalDataExportSnapshot snapshot) { return _hasDuplicatesByName(snapshot.exercises) || _hasDuplicatesByName(snapshot.programs) ||