From: David A. Velasco Date: Mon, 28 Sep 2015 09:21:33 +0000 (+0200) Subject: Upload operations end in conflict if overriding a version different than the last... X-Git-Tag: oc-android-1.9^2~37^2~6 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/001801a39b1d0179db4df37e4691364525427080?ds=inline;hp=--cc Upload operations end in conflict if overriding a version different than the last known --- 001801a39b1d0179db4df37e4691364525427080 diff --git a/owncloud-android-library b/owncloud-android-library index 092c7900..eb4f8a72 160000 --- a/owncloud-android-library +++ b/owncloud-android-library @@ -1 +1 @@ -Subproject commit 092c790030ef42b34352225e9c1d8480a0e38674 +Subproject commit eb4f8a723490a18c5a07fbdc3bf19928c49c4a10 diff --git a/src/com/owncloud/android/files/services/FileUploader.java b/src/com/owncloud/android/files/services/FileUploader.java index b22abdcf..d6f7127d 100644 --- a/src/com/owncloud/android/files/services/FileUploader.java +++ b/src/com/owncloud/android/files/services/FileUploader.java @@ -572,6 +572,9 @@ public class FileUploader extends Service uploadResult = mCurrentUpload.execute(mUploadClient); if (uploadResult.isSuccess()) { saveUploadedFile(); + + } else if (uploadResult.getCode() == ResultCode.SYNC_CONFLICT) { + mStorageManager.saveConflict(mCurrentUpload.getFile(), true); } } else { uploadResult = grantResult; diff --git a/src/com/owncloud/android/operations/UploadFileOperation.java b/src/com/owncloud/android/operations/UploadFileOperation.java index 7fad177b..09c4581e 100644 --- a/src/com/owncloud/android/operations/UploadFileOperation.java +++ b/src/com/owncloud/android/operations/UploadFileOperation.java @@ -31,6 +31,7 @@ import java.util.Iterator; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; +import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods.RequestEntity; import android.accounts.Account; @@ -310,10 +311,10 @@ public class UploadFileOperation extends RemoteOperation { (new File(mFile.getStoragePath())).length() > ChunkedUploadRemoteFileOperation.CHUNK_SIZE ) { mUploadOperation = new ChunkedUploadRemoteFileOperation(mFile.getStoragePath(), - mFile.getRemotePath(), mFile.getMimetype()); + mFile.getRemotePath(), mFile.getMimetype(), mFile.getEtag()); } else { mUploadOperation = new UploadRemoteFileOperation(mFile.getStoragePath(), - mFile.getRemotePath(), mFile.getMimetype()); + mFile.getRemotePath(), mFile.getMimetype(), mFile.getEtag()); } Iterator listener = mDataTransferListeners.iterator(); while (listener.hasNext()) { @@ -358,6 +359,9 @@ public class UploadFileOperation extends RemoteOperation { } } } + + } else if (result.getHttpCode() == HttpStatus.SC_PRECONDITION_FAILED ) { + result = new RemoteOperationResult(ResultCode.CONFLICT); } } catch (Exception e) {