Merge pull request #3387 from vector-im/feature/bma/e2efilename
Better handling of filename
This commit is contained in:
commit
42d249ceeb
|
@ -47,14 +47,15 @@ import java.io.FileNotFoundException
|
|||
import java.io.IOException
|
||||
import javax.inject.Inject
|
||||
|
||||
internal class FileUploader @Inject constructor(@Authenticated
|
||||
private val okHttpClient: OkHttpClient,
|
||||
internal class FileUploader @Inject constructor(
|
||||
@Authenticated private val okHttpClient: OkHttpClient,
|
||||
private val globalErrorReceiver: GlobalErrorReceiver,
|
||||
private val homeServerCapabilitiesService: DefaultHomeServerCapabilitiesService,
|
||||
private val context: Context,
|
||||
private val temporaryFileCreator: TemporaryFileCreator,
|
||||
contentUrlResolver: ContentUrlResolver,
|
||||
moshi: Moshi) {
|
||||
moshi: Moshi
|
||||
) {
|
||||
|
||||
private val uploadUrl = contentUrlResolver.uploadUrl
|
||||
private val responseAdapter = moshi.adapter(ContentUploadResponse::class.java)
|
||||
|
@ -120,11 +121,17 @@ internal class FileUploader @Inject constructor(@Authenticated
|
|||
}
|
||||
}
|
||||
|
||||
private suspend fun upload(uploadBody: RequestBody, filename: String?, progressListener: ProgressRequestBody.Listener?): ContentUploadResponse {
|
||||
private suspend fun upload(uploadBody: RequestBody,
|
||||
filename: String?,
|
||||
progressListener: ProgressRequestBody.Listener?): ContentUploadResponse {
|
||||
val urlBuilder = uploadUrl.toHttpUrlOrNull()?.newBuilder() ?: throw RuntimeException()
|
||||
|
||||
val httpUrl = urlBuilder
|
||||
.addQueryParameter("filename", filename)
|
||||
.apply {
|
||||
if (filename != null) {
|
||||
addQueryParameter("filename", filename)
|
||||
}
|
||||
}
|
||||
.build()
|
||||
|
||||
val requestBody = if (progressListener != null) ProgressRequestBody(uploadBody, progressListener) else uploadBody
|
||||
|
|
|
@ -229,7 +229,6 @@ internal class UploadContentWorker(val context: Context, params: WorkerParameter
|
|||
val encryptedFile: File?
|
||||
val contentUploadResponse = if (params.isEncrypted) {
|
||||
Timber.v("## Encrypt file")
|
||||
|
||||
encryptedFile = temporaryFileCreator.create()
|
||||
.also { filesToDelete.add(it) }
|
||||
|
||||
|
@ -239,16 +238,22 @@ internal class UploadContentWorker(val context: Context, params: WorkerParameter
|
|||
contentUploadStateTracker.setEncrypting(it, read.toLong(), total.toLong())
|
||||
}
|
||||
}
|
||||
|
||||
Timber.v("## Uploading file")
|
||||
|
||||
fileUploader
|
||||
.uploadFile(encryptedFile, attachment.name, MimeTypes.OctetStream, progressListener)
|
||||
fileUploader.uploadFile(
|
||||
file = encryptedFile,
|
||||
filename = null,
|
||||
mimeType = MimeTypes.OctetStream,
|
||||
progressListener = progressListener
|
||||
)
|
||||
} else {
|
||||
Timber.v("## Clear file")
|
||||
Timber.v("## Uploading clear file")
|
||||
encryptedFile = null
|
||||
fileUploader
|
||||
.uploadFile(fileToUpload, attachment.name, attachment.getSafeMimeType(), progressListener)
|
||||
fileUploader.uploadFile(
|
||||
file = fileToUpload,
|
||||
filename = attachment.name,
|
||||
mimeType = attachment.getSafeMimeType(),
|
||||
progressListener = progressListener
|
||||
)
|
||||
}
|
||||
|
||||
Timber.v("## Update cache storage for ${contentUploadResponse.contentUri}")
|
||||
|
@ -312,7 +317,7 @@ internal class UploadContentWorker(val context: Context, params: WorkerParameter
|
|||
val encryptionResult = MXEncryptedAttachments.encryptAttachment(thumbnailData.bytes.inputStream(), thumbnailData.mimeType)
|
||||
val contentUploadResponse = fileUploader.uploadByteArray(
|
||||
byteArray = encryptionResult.encryptedByteArray,
|
||||
filename = "thumb_${params.attachment.name}",
|
||||
filename = null,
|
||||
mimeType = MimeTypes.OctetStream,
|
||||
progressListener = thumbnailProgressListener
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue