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;
SSL_RECOVERABLE_PEER_UNVERIFIED,
BAD_OC_VERSION,
STORAGE_ERROR_MOVING_FROM_TMP,
- CANCELLED
+ 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 Object mExtraData = null;
public RemoteOperationResult(ResultCode code) {
mCode = code;
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;
}
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) {
} else if (mException instanceof UnknownHostException) {
return "Unknown host exception";
- } else if (mException instanceof SSLException) {
- if (mCode == ResultCode.SSL_RECOVERABLE_PEER_UNVERIFIED)
+ } else if (mException instanceof CertificateCombinedException) {
+ if (((CertificateCombinedException) mException).isRecoverable())
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";
}
return "Operation finished with HTTP status code " + mHttpCode + " (" + (isSuccess()?"success":"fail") + ")";
-
+
}
}