From 6e6930c0761f2abf744144fb2a907c18f7b7dcc9 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 13 Dec 2023 15:46:42 +0100 Subject: [PATCH] Consider that the state is Done when the state is `Uploading` with `backedUpCount == totalCount` #2008 --- .../encryption/BackupUploadStateMapper.kt | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/encryption/BackupUploadStateMapper.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/encryption/BackupUploadStateMapper.kt index 57a3914253..e8d90f954f 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/encryption/BackupUploadStateMapper.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/encryption/BackupUploadStateMapper.kt @@ -24,11 +24,20 @@ class BackupUploadStateMapper { return when (rustEnableProgress) { RustBackupUploadState.Done -> BackupUploadState.Done - is RustBackupUploadState.Uploading -> - BackupUploadState.Uploading( - backedUpCount = rustEnableProgress.backedUpCount.toInt(), - totalCount = rustEnableProgress.totalCount.toInt(), - ) + is RustBackupUploadState.Uploading -> { + val backedUpCount = rustEnableProgress.backedUpCount.toInt() + val totalCount = rustEnableProgress.totalCount.toInt() + if (backedUpCount == totalCount) { + // Consider that the state is Done in this case, + // the SDK will not send a Done state + BackupUploadState.Done + } else { + BackupUploadState.Uploading( + backedUpCount = backedUpCount, + totalCount = totalCount, + ) + } + } RustBackupUploadState.Waiting -> BackupUploadState.Waiting RustBackupUploadState.Error ->