diff --git a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/transferdetails/TransferDownload.kt b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/transferdetails/TransferDownload.kt index c54404d5d..a63a0c6ee 100644 --- a/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/transferdetails/TransferDownload.kt +++ b/app/src/main/java/com/infomaniak/swisstransfer/ui/screen/main/transferdetails/TransferDownload.kt @@ -242,11 +242,19 @@ private suspend fun buildDownloadRequest( val fileName = DownloadManagerUtils.withoutProblematicCharacters(targetFile.fileName) name = "SwissTransfer/$fileName${if (targetFile.isFolder) ".zip" else ""}" } - else -> { + transfer.apiSource == TransferUi.ApiSource.V1 -> { url = apiUrlCreator.downloadFilesUrl(transfer.uuid) ?: return null val fileName = currentDateTimeWithSecondsString() name = "SwissTransfer/$fileName.zip" } + else -> return null + } + + val extraHeaders = buildSet { + if (transfer.apiSource == TransferUi.ApiSource.V2) { + val password = transfer.password ?: return@buildSet + add("Transfer-Password" to password) + } } return runCatching { @@ -255,6 +263,7 @@ private suspend fun buildDownloadRequest( nameWithoutProblematicChars = name, mimeType = Dispatchers.IO { FileType.guessMimeTypeFromFileName(name) }, userAgent = userAgent, + extraHeaders = extraHeaders, ) }.cancellable().onFailure { // Unlikely to happen since mitigation in requestFor, but we don't want to crash the app if it happens.