diff --git a/app/src/main/java/com/nextcloud/client/jobs/upload/FileUploadWorker.kt b/app/src/main/java/com/nextcloud/client/jobs/upload/FileUploadWorker.kt index 6422b0efa71b..61562f08a26f 100644 --- a/app/src/main/java/com/nextcloud/client/jobs/upload/FileUploadWorker.kt +++ b/app/src/main/java/com/nextcloud/client/jobs/upload/FileUploadWorker.kt @@ -22,8 +22,6 @@ import com.nextcloud.client.preferences.AppPreferences import com.nextcloud.model.WorkerState import com.nextcloud.model.WorkerStateLiveData import com.nextcloud.utils.extensions.getPercent -import com.nextcloud.utils.extensions.showToast -import com.owncloud.android.R import com.owncloud.android.datamodel.FileDataStorageManager import com.owncloud.android.datamodel.ThumbnailsCacheManager import com.owncloud.android.datamodel.UploadsStorageManager @@ -284,7 +282,7 @@ class FileUploadWorker( context ) ) { - context.showToast(R.string.file_upload_worker_same_file_already_exists) + uploadFileOperation.handleLocalBehaviour() return } diff --git a/app/src/main/java/com/owncloud/android/operations/UploadFileOperation.java b/app/src/main/java/com/owncloud/android/operations/UploadFileOperation.java index 2ff9e9e1a376..36d25cb3fd5f 100644 --- a/app/src/main/java/com/owncloud/android/operations/UploadFileOperation.java +++ b/app/src/main/java/com/owncloud/android/operations/UploadFileOperation.java @@ -845,7 +845,7 @@ private void updateMetadataForV2(DecryptedFolderMetadataFile metadata, Encryptio private void completeE2EUpload(RemoteOperationResult result, E2EFiles e2eFiles, OwnCloudClient client) { if (result.isSuccess()) { - handleSuccessfulUpload(e2eFiles.getTemporalFile(), e2eFiles.getExpectedFile(), e2eFiles.getOriginalFile(), client); + handleLocalBehaviour(e2eFiles.getTemporalFile(), e2eFiles.getExpectedFile(), e2eFiles.getOriginalFile(), client); } else if (result.getCode() == ResultCode.SYNC_CONFLICT) { getStorageManager().saveConflict(mFile, mFile.getEtagInConflict()); } @@ -1098,7 +1098,7 @@ private RemoteOperationResult normalUpload(OwnCloudClient client) { } if (result.isSuccess()) { - handleSuccessfulUpload(temporalFile, expectedFile, originalFile, client); + handleLocalBehaviour(temporalFile, expectedFile, originalFile, client); } else if (result.getCode() == ResultCode.SYNC_CONFLICT) { getStorageManager().saveConflict(mFile, mFile.getEtagInConflict()); } @@ -1197,10 +1197,31 @@ private RemoteOperationResult checkNameCollision(OCFile parentFile, return null; } - private void handleSuccessfulUpload(File temporalFile, - File expectedFile, - File originalFile, - OwnCloudClient client) { + public void handleLocalBehaviour() { + if (user == null || mFile == null || mContext == null) { + Log_OC.d(TAG, "handleLocalBehaviour: user, file, or context is null."); + return; + } + + final var client = getClient(); + if (client == null) { + Log_OC.d(TAG, "handleLocalBehaviour: client is null"); + return; + } + + String expectedPath = FileStorageUtils.getDefaultSavePathFor(user.getAccountName(), mFile); + File expectedFile = new File(expectedPath); + File originalFile = new File(mOriginalStoragePath); + String temporalPath = FileStorageUtils.getInternalTemporalPath(user.getAccountName(), mContext) + mFile.getRemotePath(); + File temporalFile = new File(temporalPath); + + handleLocalBehaviour(temporalFile, expectedFile, originalFile, client); + } + + private void handleLocalBehaviour(File temporalFile, + File expectedFile, + File originalFile, + OwnCloudClient client) { switch (mLocalBehaviour) { case FileUploadWorker.LOCAL_BEHAVIOUR_FORGET: default: diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7fdc1987286d..1bd07eb0fbe8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -172,7 +172,6 @@ Keep file in source folder Delete file from source folder seconds ago - Same file already exists, no conflict detected LIVE No files here No folders here