From 84996b410b257ed49bdb4aa7b67f8b3eb9749ba1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Abel=20Garc=C3=ADa=20de=20Prada?= Date: Wed, 8 Jun 2022 17:08:24 +0200 Subject: [PATCH] Polish a little bit the code --- .../lib/common/network/ChunkFromFileRequestBody.kt | 3 ++- .../chunks/ChunkedUploadFromFileSystemOperation.kt | 14 ++++++-------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/network/ChunkFromFileRequestBody.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/network/ChunkFromFileRequestBody.kt index a1275bf9..b1404b9c 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/network/ChunkFromFileRequestBody.kt +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/network/ChunkFromFileRequestBody.kt @@ -23,6 +23,7 @@ */ package com.owncloud.android.lib.common.network +import com.owncloud.android.lib.resources.files.chunks.ChunkedUploadFromFileSystemOperation.Companion.CHUNK_SIZE import okhttp3.MediaType import okio.BufferedSink import timber.log.Timber @@ -39,7 +40,7 @@ class ChunkFromFileRequestBody( file: File, contentType: MediaType?, private val channel: FileChannel, - private val chunkSize: Long + private val chunkSize: Long = CHUNK_SIZE ) : FileRequestBody(file, contentType) { private var offset: Long = 0 diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/chunks/ChunkedUploadFromFileSystemOperation.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/chunks/ChunkedUploadFromFileSystemOperation.kt index a7268123..b9b3a2d9 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/chunks/ChunkedUploadFromFileSystemOperation.kt +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/files/chunks/ChunkedUploadFromFileSystemOperation.kt @@ -69,28 +69,27 @@ class ChunkedUploadFromFileSystemOperation( val fileToUpload = File(localPath) val mediaType: MediaType? = mimeType.toMediaTypeOrNull() - val raf: RandomAccessFile = RandomAccessFile(fileToUpload, MODE_READ_ONLY) + val raf = RandomAccessFile(fileToUpload, MODE_READ_ONLY) val channel: FileChannel = raf.channel - fileRequestBody = ChunkFromFileRequestBody(fileToUpload, mediaType, channel, CHUNK_SIZE).also { + val fileRequestBody = ChunkFromFileRequestBody(fileToUpload, mediaType, channel).also { synchronized(dataTransferListener) { it.addDatatransferProgressListeners(dataTransferListener) } } val uriPrefix = client.uploadsWebDavUri.toString() + File.separator + transferId val totalLength = fileToUpload.length() val chunkCount = ceil(totalLength.toDouble() / CHUNK_SIZE).toLong() - var chunkIndex = 0 var offset: Long = 0 - while (chunkIndex < chunkCount) { - (fileRequestBody as ChunkFromFileRequestBody).setOffset(offset) + for (chunkIndex in 0..chunkCount) { + fileRequestBody.setOffset(offset) if (cancellationRequested.get()) { result = RemoteOperationResult(OperationCancelledException()) break } else { - putMethod = PutMethod(URL(uriPrefix + File.separator + chunkIndex), fileRequestBody as ChunkFromFileRequestBody).apply { - if (chunkIndex.toLong() == chunkCount - 1) { + putMethod = PutMethod(URL(uriPrefix + File.separator + chunkIndex), fileRequestBody).apply { + if (chunkIndex == chunkCount - 1) { // Added a high timeout to the last chunk due to when the last chunk // arrives to the server with the last PUT, all chunks get assembled // within that PHP request, so last one takes longer. @@ -109,7 +108,6 @@ class ChunkedUploadFromFileSystemOperation( break } } - chunkIndex++ offset += CHUNK_SIZE } channel.close()