diff --git a/mobile/lib/providers/backup/drift_backup.provider.dart b/mobile/lib/providers/backup/drift_backup.provider.dart index 6dfeb1a352..b1993ce204 100644 --- a/mobile/lib/providers/backup/drift_backup.provider.dart +++ b/mobile/lib/providers/backup/drift_backup.provider.dart @@ -430,13 +430,17 @@ class DriftBackupNotifier extends StateNotifier { } void _handleForegroundBackupProgress(String localAssetId, String filename, int bytes, int totalBytes) { + if (state.cancelToken == null) { + return; + } + final progress = totalBytes > 0 ? bytes / totalBytes : 0.0; final currentItem = state.uploadItems[localAssetId]; if (currentItem != null) { state = state.copyWith( uploadItems: { ...state.uploadItems, - localAssetId: currentItem.copyWith(progress: progress, fileSize: totalBytes), + localAssetId: currentItem.copyWith(filename: filename, progress: progress, fileSize: totalBytes), }, ); } else { diff --git a/mobile/lib/services/upload.service.dart b/mobile/lib/services/upload.service.dart index b737c9bf85..687f17ae69 100644 --- a/mobile/lib/services/upload.service.dart +++ b/mobile/lib/services/upload.service.dart @@ -194,7 +194,7 @@ class UploadService { asset, httpClient, cancelToken, - (bytes, totalBytes) => onProgress(asset.localId!, asset.name, bytes, totalBytes), + onProgress, onSuccess, onError, onICloudProgress: onICloudProgress, @@ -221,7 +221,7 @@ class UploadService { LocalAsset asset, Client httpClient, CancellationToken cancelToken, - void Function(int bytes, int totalBytes) onProgress, + void Function(String id, String filename, int bytes, int totalBytes) onProgress, void Function(String localAssetId, String remoteAssetId) onSuccess, void Function(String errorMessage) onError, { void Function(String localAssetId, double progress)? onICloudProgress, @@ -307,7 +307,7 @@ class UploadService { fields: fields, httpClient: httpClient, cancelToken: cancelToken, - onProgress: onProgress, + onProgress: (bytes, totalBytes) => onProgress(asset.localId!, livePhotoTitle, bytes, totalBytes), ); } @@ -323,7 +323,7 @@ class UploadService { fields: fields, httpClient: httpClient, cancelToken: cancelToken, - onProgress: onProgress, + onProgress: (bytes, totalBytes) => onProgress(asset.localId!, originalFileName, bytes, totalBytes), ); if (result.isSuccess && result.remoteAssetId != null) {