projects
/
pub
/
Android
/
ownCloud.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed local path NULL when making favourite a file not down ; fixed change of local...
[pub/Android/ownCloud.git]
/
src
/
com
/
owncloud
/
android
/
operations
/
RemoteOperationResult.java
diff --git
a/src/com/owncloud/android/operations/RemoteOperationResult.java
b/src/com/owncloud/android/operations/RemoteOperationResult.java
index
b95f734
..
d8fbe46
100644
(file)
--- a/
src/com/owncloud/android/operations/RemoteOperationResult.java
+++ b/
src/com/owncloud/android/operations/RemoteOperationResult.java
@@
-19,6
+19,7
@@
package com.owncloud.android.operations;
import java.io.IOException;
package com.owncloud.android.operations;
import java.io.IOException;
+import java.io.Serializable;
import java.net.MalformedURLException;
import java.net.SocketException;
import java.net.SocketTimeoutException;
import java.net.MalformedURLException;
import java.net.SocketException;
import java.net.SocketTimeoutException;
@@
-29,6
+30,7
@@
import javax.net.ssl.SSLException;
import org.apache.commons.httpclient.ConnectTimeoutException;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.ConnectTimeoutException;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
+import org.apache.jackrabbit.webdav.DavException;
import com.owncloud.android.network.CertificateCombinedException;
import com.owncloud.android.network.CertificateCombinedException;
@@
-40,13
+42,18
@@
import com.owncloud.android.network.CertificateCombinedException;
*
* @author David A. Velasco
*/
*
* @author David A. Velasco
*/
-public class RemoteOperationResult {
+public class RemoteOperationResult implements Serializable {
+
+ /** Generated - to refresh every time the class changes */
+ private static final long serialVersionUID = -7805531062432602444L;
+
public enum ResultCode {
OK,
OK_SSL,
OK_NO_SSL,
UNHANDLED_HTTP_CODE,
public enum ResultCode {
OK,
OK_SSL,
OK_NO_SSL,
UNHANDLED_HTTP_CODE,
+ UNAUTHORIZED,
FILE_NOT_FOUND,
INSTANCE_NOT_CONFIGURED,
UNKNOWN_ERROR,
FILE_NOT_FOUND,
INSTANCE_NOT_CONFIGURED,
UNKNOWN_ERROR,
@@
-57,13
+64,19
@@
public class RemoteOperationResult {
NO_NETWORK_CONNECTION,
SSL_ERROR,
SSL_RECOVERABLE_PEER_UNVERIFIED,
NO_NETWORK_CONNECTION,
SSL_ERROR,
SSL_RECOVERABLE_PEER_UNVERIFIED,
- BAD_OC_VERSION
+ BAD_OC_VERSION,
+ STORAGE_ERROR_MOVING_FROM_TMP,
+ CANCELLED,
+ INVALID_LOCAL_FILE_NAME,
+ INVALID_OVERWRITE,
+ CONFLICT
}
private boolean mSuccess = false;
private int mHttpCode = -1;
private Exception mException = null;
private ResultCode mCode = ResultCode.UNKNOWN_ERROR;
}
private boolean mSuccess = false;
private int mHttpCode = -1;
private Exception mException = null;
private ResultCode mCode = ResultCode.UNKNOWN_ERROR;
+ private Object mExtraData = null;
public RemoteOperationResult(ResultCode code) {
mCode = code;
public RemoteOperationResult(ResultCode code) {
mCode = code;
@@
-79,12
+92,18
@@
public class RemoteOperationResult {
} else if (httpCode > 0) {
switch (httpCode) {
} else if (httpCode > 0) {
switch (httpCode) {
+ case HttpStatus.SC_UNAUTHORIZED:
+ mCode = ResultCode.UNAUTHORIZED;
+ break;
case HttpStatus.SC_NOT_FOUND:
mCode = ResultCode.FILE_NOT_FOUND;
break;
case HttpStatus.SC_INTERNAL_SERVER_ERROR:
mCode = ResultCode.INSTANCE_NOT_CONFIGURED;
break;
case HttpStatus.SC_NOT_FOUND:
mCode = ResultCode.FILE_NOT_FOUND;
break;
case HttpStatus.SC_INTERNAL_SERVER_ERROR:
mCode = ResultCode.INSTANCE_NOT_CONFIGURED;
break;
+ case HttpStatus.SC_CONFLICT:
+ mCode = ResultCode.CONFLICT;
+ break;
default:
mCode = ResultCode.UNHANDLED_HTTP_CODE;
}
default:
mCode = ResultCode.UNHANDLED_HTTP_CODE;
}
@@
-94,7
+113,10
@@
public class RemoteOperationResult {
public RemoteOperationResult(Exception e) {
mException = e;
public RemoteOperationResult(Exception e) {
mException = e;
- if (e instanceof SocketException) {
+ if (e instanceof OperationCancelledException) {
+ mCode = ResultCode.CANCELLED;
+
+ } else if (e instanceof SocketException) {
mCode = ResultCode.WRONG_CONNECTION;
} else if (e instanceof SocketTimeoutException) {
mCode = ResultCode.WRONG_CONNECTION;
} else if (e instanceof SocketTimeoutException) {
@@
-132,6
+154,10
@@
public class RemoteOperationResult {
return mSuccess;
}
return mSuccess;
}
+ public boolean isCancelled() {
+ return mCode == ResultCode.CANCELLED;
+ }
+
public int getHttpCode() {
return mHttpCode;
}
public int getHttpCode() {
return mHttpCode;
}
@@
-148,6
+174,14
@@
public class RemoteOperationResult {
return mCode == ResultCode.SSL_RECOVERABLE_PEER_UNVERIFIED;
}
return mCode == ResultCode.SSL_RECOVERABLE_PEER_UNVERIFIED;
}
+ public void setExtraData(Object data) {
+ mExtraData = data;
+ }
+
+ public Object getExtraData() {
+ return mExtraData;
+ }
+
private CertificateCombinedException getCertificateCombinedException(Exception e) {
CertificateCombinedException result = null;
if (e instanceof CertificateCombinedException) {
private CertificateCombinedException getCertificateCombinedException(Exception e) {
CertificateCombinedException result = null;
if (e instanceof CertificateCombinedException) {
@@
-169,7
+203,10
@@
public class RemoteOperationResult {
public String getLogMessage() {
if (mException != null) {
public String getLogMessage() {
if (mException != null) {
- if (mException instanceof SocketException) {
+ if (mException instanceof OperationCancelledException) {
+ return "Operation cancelled by the caller";
+
+ } else if (mException instanceof SocketException) {
return "Socket exception";
} else if (mException instanceof SocketTimeoutException) {
return "Socket exception";
} else if (mException instanceof SocketTimeoutException) {
@@
-184,11
+221,17
@@
public class RemoteOperationResult {
} else if (mException instanceof UnknownHostException) {
return "Unknown host exception";
} else if (mException instanceof UnknownHostException) {
return "Unknown host exception";
- } else if (mException instanceof
SSL
Exception) {
- if (
mCode == ResultCode.SSL_RECOVERABLE_PEER_UNVERIFIED
)
+ } else if (mException instanceof
CertificateCombined
Exception) {
+ if (
((CertificateCombinedException) mException).isRecoverable()
)
return "SSL recoverable exception";
else
return "SSL exception";
return "SSL recoverable exception";
else
return "SSL exception";
+
+ } else if (mException instanceof SSLException) {
+ return "SSL exception";
+
+ } else if (mException instanceof DavException) {
+ return "Unexpected WebDAV exception";
} else if (mException instanceof HttpException) {
return "HTTP violation";
} else if (mException instanceof HttpException) {
return "HTTP violation";
@@
-209,10
+252,13
@@
public class RemoteOperationResult {
} else if (mCode == ResultCode.BAD_OC_VERSION) {
return "No valid ownCloud version was found at the server";
} else if (mCode == ResultCode.BAD_OC_VERSION) {
return "No valid ownCloud version was found at the server";
+
+ } else if (mCode == ResultCode.STORAGE_ERROR_MOVING_FROM_TMP) {
+ return "Error while moving file from temporal to final directory";
}
return "Operation finished with HTTP status code " + mHttpCode + " (" + (isSuccess()?"success":"fail") + ")";
}
return "Operation finished with HTTP status code " + mHttpCode + " (" + (isSuccess()?"success":"fail") + ")";
-
+
}
}
}
}