From 8bf276377c219b490a52070035ea1ffeb03a77a7 Mon Sep 17 00:00:00 2001 From: "David A. Velasco" Date: Tue, 21 Jul 2015 16:50:48 +0200 Subject: [PATCH] Minor improvements for upload cancelation and conflicts in synchronization --- .../lib/common/operations/RemoteOperationResult.java | 9 +++++++-- src/com/owncloud/android/lib/common/utils/Log_OC.java | 3 +-- .../files/ChunkedUploadRemoteFileOperation.java | 2 +- .../lib/resources/files/DownloadRemoteFileOperation.java | 3 +++ .../lib/resources/files/UploadRemoteFileOperation.java | 6 ++---- 5 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/com/owncloud/android/lib/common/operations/RemoteOperationResult.java b/src/com/owncloud/android/lib/common/operations/RemoteOperationResult.java index f8eb8cc1..ceb3f25f 100644 --- a/src/com/owncloud/android/lib/common/operations/RemoteOperationResult.java +++ b/src/com/owncloud/android/lib/common/operations/RemoteOperationResult.java @@ -390,11 +390,16 @@ public class RemoteOperationResult implements Serializable { } else if (mCode == ResultCode.ACCOUNT_NOT_THE_SAME) { return "Authenticated with a different account than the one updating"; + } else if (mCode == ResultCode.INVALID_CHARACTER_IN_NAME) { return "The file name contains an forbidden character"; + } else if (mCode == ResultCode.FILE_NOT_FOUND) { - return "Local file does not exist"; - } + return "Local file does not exist"; + + } else if (mCode == ResultCode.SYNC_CONFLICT) { + return "Synchronization conflict"; + } return "Operation finished with HTTP status code " + mHttpCode + " (" + (isSuccess() ? "success" : "fail") + ")"; diff --git a/src/com/owncloud/android/lib/common/utils/Log_OC.java b/src/com/owncloud/android/lib/common/utils/Log_OC.java index 8ed8c52c..4d4760e6 100644 --- a/src/com/owncloud/android/lib/common/utils/Log_OC.java +++ b/src/com/owncloud/android/lib/common/utils/Log_OC.java @@ -32,8 +32,7 @@ public class Log_OC { } public static void i(String TAG, String message){ - - // Write the log message to the file + Log.i(TAG, message); appendLog(TAG+" : "+ message); } diff --git a/src/com/owncloud/android/lib/resources/files/ChunkedUploadRemoteFileOperation.java b/src/com/owncloud/android/lib/resources/files/ChunkedUploadRemoteFileOperation.java index 1fa9d5fd..f8c19d3e 100644 --- a/src/com/owncloud/android/lib/resources/files/ChunkedUploadRemoteFileOperation.java +++ b/src/com/owncloud/android/lib/resources/files/ChunkedUploadRemoteFileOperation.java @@ -54,7 +54,7 @@ public class ChunkedUploadRemoteFileOperation extends UploadRemoteFileOperation } @Override - protected int uploadFile(OwnCloudClient client) throws HttpException, IOException { + protected int uploadFile(OwnCloudClient client) throws IOException { int status = -1; FileChannel channel = null; diff --git a/src/com/owncloud/android/lib/resources/files/DownloadRemoteFileOperation.java b/src/com/owncloud/android/lib/resources/files/DownloadRemoteFileOperation.java index bcb209db..95adc804 100644 --- a/src/com/owncloud/android/lib/resources/files/DownloadRemoteFileOperation.java +++ b/src/com/owncloud/android/lib/resources/files/DownloadRemoteFileOperation.java @@ -140,6 +140,9 @@ public class DownloadRemoteFileOperation extends RemoteOperation { if (transferred == totalToTransfer) { // Check if the file is completed savedFile = true; Header modificationTime = mGet.getResponseHeader("Last-Modified"); + if (modificationTime == null) { + modificationTime = mGet.getResponseHeader("last-modified"); + } if (modificationTime != null) { Date d = WebdavUtils.parseResponseDate((String) modificationTime.getValue()); mModificationTimestamp = (d != null) ? d.getTime() : 0; diff --git a/src/com/owncloud/android/lib/resources/files/UploadRemoteFileOperation.java b/src/com/owncloud/android/lib/resources/files/UploadRemoteFileOperation.java index 25dc87f5..d6e90922 100644 --- a/src/com/owncloud/android/lib/resources/files/UploadRemoteFileOperation.java +++ b/src/com/owncloud/android/lib/resources/files/UploadRemoteFileOperation.java @@ -102,8 +102,7 @@ public class UploadRemoteFileOperation extends RemoteOperation { (mPutMethod != null ? mPutMethod.getResponseHeaders() : null)); } } catch (Exception e) { - // TODO something cleaner with cancellations - if (mCancellationRequested.get()) { + if (mCancellationRequested.get() && !(e instanceof OperationCancelledException)) { result = new RemoteOperationResult(new OperationCancelledException()); } else { result = new RemoteOperationResult(e); @@ -117,8 +116,7 @@ public class UploadRemoteFileOperation extends RemoteOperation { status == HttpStatus.SC_NO_CONTENT)); } - protected int uploadFile(OwnCloudClient client) throws HttpException, IOException, - OperationCancelledException { + protected int uploadFile(OwnCloudClient client) throws IOException { int status = -1; try { File f = new File(mLocalPath);