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