X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/8e3787909f253c66a91c137d25cb2b430cfe9dc3..e6c1454458419ff0c47c64fac3d11ebc158cccc8:/src/com/owncloud/android/operations/SynchronizeFileOperation.java diff --git a/src/com/owncloud/android/operations/SynchronizeFileOperation.java b/src/com/owncloud/android/operations/SynchronizeFileOperation.java index f94adb15..045f9b23 100644 --- a/src/com/owncloud/android/operations/SynchronizeFileOperation.java +++ b/src/com/owncloud/android/operations/SynchronizeFileOperation.java @@ -22,7 +22,6 @@ package com.owncloud.android.operations; -import com.owncloud.android.MainApp; import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.files.services.FileDownloader; import com.owncloud.android.files.services.FileUploader; @@ -208,15 +207,13 @@ public class SynchronizeFileOperation extends SyncOperation { /// check changes in server and local file boolean serverChanged = false; - /* time for eTag is coming, but not yet - if (mServerFile.getEtag() != null) { - serverChanged = (!mServerFile.getEtag().equals(mLocalFile.getEtag())); - } else { */ - serverChanged = ( - mServerFile.getModificationTimestamp() != - mLocalFile.getModificationTimestampAtLastSyncForData() - ); - //} + if (mLocalFile.getEtag() == null || mLocalFile.getEtag().length() == 0) { + // file uploaded (null) or downloaded ("") before upgrade to version 1.8.0; check the old condition + serverChanged = mServerFile.getModificationTimestamp() != + mLocalFile.getModificationTimestampAtLastSyncForData(); + } else { + serverChanged = (!mServerFile.getEtag().equals(mLocalFile.getEtag())); + } boolean localChanged = ( mLocalFile.getLocalModificationTimestamp() > mLocalFile.getLastSyncDateForData() ); @@ -225,6 +222,7 @@ public class SynchronizeFileOperation extends SyncOperation { //if (!mLocalFile.getEtag().isEmpty() && localChanged && serverChanged) { if (localChanged && serverChanged) { result = new RemoteOperationResult(ResultCode.SYNC_CONFLICT); + getStorageManager().saveConflict(mLocalFile.getFileId(), true); } else if (localChanged) { if (mSyncFileContents && mAllowUploads) { @@ -254,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); }