X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/5f41bb14d370e0c9c0a8003e4ed122f466b0ce71..HEAD:/src/com/owncloud/android/operations/SynchronizeFileOperation.java?ds=sidebyside diff --git a/src/com/owncloud/android/operations/SynchronizeFileOperation.java b/src/com/owncloud/android/operations/SynchronizeFileOperation.java index ebc9a3fe..bc0caf19 100644 --- a/src/com/owncloud/android/operations/SynchronizeFileOperation.java +++ b/src/com/owncloud/android/operations/SynchronizeFileOperation.java @@ -218,16 +218,11 @@ public class SynchronizeFileOperation extends SyncOperation { mLocalFile.getLocalModificationTimestamp() > mLocalFile.getLastSyncDateForData() ); - Log_OC.d(TAG, "TOKENs checked to SYNC " + mRemotePath ); - Log_OC.d(TAG, " server#modificationTimestamp " + mServerFile.getModificationTimestamp()); - Log_OC.d(TAG, " local#modificationTimestampAtLastSyncForData " + mServerFile.getModificationTimestampAtLastSyncForData()); - Log_OC.d(TAG, " local#modificationTimestamp " + mLocalFile.getLocalModificationTimestamp()); - Log_OC.d(TAG, " local#lastSyncDateForData " + mLocalFile.getLastSyncDateForData()); - /// decide action to perform depending upon changes //if (!mLocalFile.getEtag().isEmpty() && localChanged && serverChanged) { if (localChanged && serverChanged) { result = new RemoteOperationResult(ResultCode.SYNC_CONFLICT); + getStorageManager().saveConflict(mLocalFile, mServerFile.getEtag()); } else if (localChanged) { if (mSyncFileContents && mAllowUploads) { @@ -257,6 +252,7 @@ public class SynchronizeFileOperation extends SyncOperation { mServerFile.setLastSyncDateForData(mLocalFile.getLastSyncDateForData()); mServerFile.setStoragePath(mLocalFile.getStoragePath()); mServerFile.setParentId(mLocalFile.getParentId()); + mServerFile.setEtag(mLocalFile.getEtag()); getStorageManager().saveFile(mServerFile); } @@ -267,7 +263,11 @@ public class SynchronizeFileOperation extends SyncOperation { result = new RemoteOperationResult(ResultCode.OK); } - } + // safe blanket: sync'ing a not in-conflict file will clean wrong conflict markers in ancestors + if (result.getCode() != ResultCode.SYNC_CONFLICT) { + getStorageManager().saveConflict(mLocalFile, null); + } + } }