public RemoteOperationResult(ResultCode code) {
mCode = code;
- mSuccess = (code == ResultCode.OK || code == ResultCode.OK_SSL || code == ResultCode.OK_NO_SSL);
+ mSuccess = (code == ResultCode.OK || code == ResultCode.OK_SSL || code == ResultCode.OK_NO_SSL || code == ResultCode.OK_NO_CHANGES_ON_DIR);
}
- public RemoteOperationResult(boolean success, int httpCode) {
+ private RemoteOperationResult(boolean success, int httpCode) {
mSuccess = success;
mHttpCode = httpCode;
} else {
client.exhaustResponse(query.getResponseBodyAsStream());
}
-
+
// prepare result object
- if (isMultiStatus(status)) {
+ if (!fileChanged) {
+ result = new RemoteOperationResult(ResultCode.OK_NO_CHANGES_ON_DIR);
+
+ } else if (isMultiStatus(status)) {
if (mConflictsFound > 0 || mFailsInFavouritesFound > 0) {
result = new RemoteOperationResult(ResultCode.SYNC_CONFLICT); // should be different result, but will do the job
-
+
} else {
- result = new RemoteOperationResult(true, status);
+ result = new RemoteOperationResult(true, status, query.getResponseHeaders());
}
} else {
- result = new RemoteOperationResult(false, status);
+ result = new RemoteOperationResult(false, status, query.getResponseHeaders());
}
-
-
-
+ Log_OC.i(TAG, "Synchronizing " + mAccount.name + ", folder " + mRemotePath + ": " + result.getLogMessage());
+
-
} catch (Exception e) {
result = new RemoteOperationResult(e);
- Log_OC.e(TAG, "Synchronizing " + mAccount.name + ", folder " + mRemotePath + ": " + result.getLogMessage(), result.getException());
+
} finally {
if (query != null)
query.releaseConnection(); // let the connection available for other methods
+ if (result.isSuccess()) {
+ Log_OC.i(TAG, "Synchronizing " + mAccount.name + ", folder " + mRemotePath + ": " + result.getLogMessage());
+ } else {
+ if (result.isException()) {
+ Log_OC.e(TAG, "Synchronizing " + mAccount.name + ", folder " + mRemotePath + ": " + result.getLogMessage(), result.getException());
+ } else {
+ Log_OC.e(TAG, "Synchronizing " + mAccount.name + ", folder " + mRemotePath + ": " + result.getLogMessage());
+ }
+ }
}
-
+
return result;
}
-
+
public boolean isMultiStatus(int status) {
return (status == HttpStatus.SC_MULTI_STATUS);