X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/52bd01bcedf1b8f13c49b67ee40a848bae1a9d40..af62f9857d72b4df230797c4738d5f8752ac1785:/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 b0f2ce26..ea115f1f 100644 --- a/src/com/owncloud/android/operations/SynchronizeFileOperation.java +++ b/src/com/owncloud/android/operations/SynchronizeFileOperation.java @@ -27,7 +27,7 @@ import android.content.Context; import android.content.Intent; import com.owncloud.android.Log_OC; -import com.owncloud.android.datamodel.DataStorageManager; +import com.owncloud.android.datamodel.FileDataStorageManager; import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.files.services.FileDownloader; import com.owncloud.android.files.services.FileUploader; @@ -45,7 +45,7 @@ public class SynchronizeFileOperation extends RemoteOperation { private OCFile mLocalFile; private OCFile mServerFile; - private DataStorageManager mStorageManager; + private FileDataStorageManager mStorageManager; private Account mAccount; private boolean mSyncFileContents; private boolean mLocalChangeAlreadyKnown; @@ -56,7 +56,7 @@ public class SynchronizeFileOperation extends RemoteOperation { public SynchronizeFileOperation( OCFile localFile, OCFile serverFile, // make this null to let the operation checks the server; added to reuse info from SynchronizeFolderOperation - DataStorageManager storageManager, + FileDataStorageManager storageManager, Account account, boolean syncFileContents, boolean localChangeAlreadyKnown, @@ -101,7 +101,7 @@ public class SynchronizeFileOperation extends RemoteOperation { } else { client.exhaustResponse(propfind.getResponseBodyAsStream()); - result = new RemoteOperationResult(false, status); + result = new RemoteOperationResult(false, status, propfind.getResponseHeaders()); } } @@ -119,7 +119,7 @@ public class SynchronizeFileOperation extends RemoteOperation { // TODO this will be always true after the app is upgraded to database version 2; will result in unnecessary uploads /// decide action to perform depending upon changes - if (localChanged && serverChanged) { + if (!mLocalFile.getEtag().isEmpty() && localChanged && serverChanged) { result = new RemoteOperationResult(ResultCode.SYNC_CONFLICT); } else if (localChanged) { @@ -215,6 +215,8 @@ public class SynchronizeFileOperation extends RemoteOperation { file.setFileLength(we.contentLength()); file.setMimetype(we.contentType()); file.setModificationTimestamp(we.modifiedTimestamp()); + file.setEtag(we.etag()); + return file; }