Skip to content

Commit 3b6f42e

Browse files
committed
better check
Signed-off-by: alperozturk <alper_ozturk@proton.me>
1 parent 10ab58b commit 3b6f42e

2 files changed

Lines changed: 20 additions & 13 deletions

File tree

app/src/main/java/com/nextcloud/client/jobs/operation/FileOperationHelper.kt

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ package com.nextcloud.client.jobs.operation
1010
import android.content.Context
1111
import com.nextcloud.client.account.User
1212
import com.nextcloud.utils.extensions.getErrorMessage
13+
import com.nextcloud.utils.extensions.toFile
1314
import com.owncloud.android.datamodel.FileDataStorageManager
1415
import com.owncloud.android.datamodel.OCFile
1516
import com.owncloud.android.db.OCUpload
@@ -24,7 +25,6 @@ import com.owncloud.android.utils.MimeTypeUtil
2425
import kotlinx.coroutines.Dispatchers
2526
import kotlinx.coroutines.async
2627
import kotlinx.coroutines.withContext
27-
import java.io.File
2828

2929
class FileOperationHelper(private val user: User, private val context: Context) {
3030
companion object {
@@ -45,26 +45,18 @@ class FileOperationHelper(private val user: User, private val context: Context)
4545
fun isSameRemoteFileAlreadyPresent(upload: OCUpload, storageManager: FileDataStorageManager): Boolean {
4646
val (lc, uc) = FileUtil.getRemotePathVariants(upload.remotePath)
4747

48-
val remoteFile = storageManager.getFileByDecryptedRemotePath(lc)
49-
?: storageManager.getFileByDecryptedRemotePath(uc)
48+
val remoteFile = storageManager.run {
49+
getFileByDecryptedRemotePath(lc) ?: getFileByDecryptedRemotePath(uc)
50+
}
5051

51-
if (remoteFile != null && isSameFileOnRemote(remoteFile, upload)) {
52+
if (upload.toFile()?.length() == remoteFile?.fileLength) {
5253
Log_OC.w(TAG, "Same file already exists due to lowercase/uppercase extension")
5354
return true
5455
}
5556

5657
return false
5758
}
5859

59-
fun isSameFileOnRemote(remoteFile: OCFile, upload: OCUpload): Boolean {
60-
val localFile = File(upload.localPath)
61-
if (!localFile.exists()) {
62-
return false
63-
}
64-
val localSize: Long = localFile.length()
65-
return remoteFile.fileLength == localSize
66-
}
67-
6860
@Suppress("DEPRECATION")
6961
fun getRemoteFile(remotePath: String, client: OwnCloudClient): RemoteFile? {
7062
val mimeType = MimeTypeUtil.getMimeTypeFromPath(remotePath)

app/src/main/java/com/nextcloud/utils/extensions/OCUploadExtensions.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,22 @@
88
package com.nextcloud.utils.extensions
99

1010
import com.owncloud.android.db.OCUpload
11+
import java.io.File
1112

1213
fun List<OCUpload>.getUploadIds(): LongArray = map { it.uploadId }.toLongArray()
1314

1415
fun Array<OCUpload>.getUploadIds(): LongArray = map { it.uploadId }.toLongArray()
16+
17+
@Suppress("ReturnCount")
18+
fun OCUpload.toFile(): File? {
19+
if (localPath.isNullOrEmpty()) {
20+
return null
21+
}
22+
23+
val result = File(localPath)
24+
if (!result.exists()) {
25+
return null
26+
}
27+
28+
return result
29+
}

0 commit comments

Comments
 (0)