diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/newtransfer/TransferSendManager.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/newtransfer/TransferSendManager.kt index 96987cf13..4fbd3a210 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/newtransfer/TransferSendManager.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/newtransfer/TransferSendManager.kt @@ -43,11 +43,18 @@ class TransferSendManager @Inject constructor( private val uploadWorkerScheduler: UploadWorker.Scheduler, ) { - // TODO: Merge these two UI states in a single one for the whole flow of logic private val _sendStatus = MutableStateFlow(SendStatus.Initial) val sendStatus = _sendStatus.asStateFlow() suspend fun sendNewTransfer(newUploadSession: NewUploadSession) { + + // When clicking the "Send" button, a new session is created. + // If there is an error before reaching the UploadProgressScreen, we stay in ImportFilesScreen. + // Every time we'll click the "Send" button again, a new session will be created. + // So we'll have multiple UploadSession in Realm. We don't want that. We only want the last session. + // So before creating the new session, we need to remove the previous failed ones. + uploadManager.removeAllUploadSession() + val uploadSession = uploadManager.createAndGetUpload(newUploadSession) sendTransfer(uploadSession.uuid) }