X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/68ce2e7a381a19df737664755ff7ca4c026155fd..7d67737a4fed1e6484d668ef55ca10b57cabbe7b:/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 0618b86d..718988a4 100644 --- a/src/com/owncloud/android/operations/RemoteOperationResult.java +++ b/src/com/owncloud/android/operations/RemoteOperationResult.java @@ -1,9 +1,10 @@ /* ownCloud Android client application * Copyright (C) 2012 Bartek Przybylski + * Copyright (C) 2012-2013 ownCloud Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or + * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, @@ -19,6 +20,7 @@ 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; @@ -29,6 +31,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.jackrabbit.webdav.DavException; import com.owncloud.android.network.CertificateCombinedException; @@ -40,13 +43,18 @@ import com.owncloud.android.network.CertificateCombinedException; * * @author David A. Velasco */ -public class RemoteOperationResult { +public class RemoteOperationResult implements Serializable { + + /** Generated - should be refreshed every time the class changes!! */ + private static final long serialVersionUID = -7805531062432602444L; + public enum ResultCode { OK, OK_SSL, OK_NO_SSL, UNHANDLED_HTTP_CODE, + UNAUTHORIZED, FILE_NOT_FOUND, INSTANCE_NOT_CONFIGURED, UNKNOWN_ERROR, @@ -58,8 +66,14 @@ public class RemoteOperationResult { SSL_ERROR, SSL_RECOVERABLE_PEER_UNVERIFIED, BAD_OC_VERSION, - STORAGE_ERROR_MOVING_FROM_TMP, - CANCELLED + CANCELLED, + INVALID_LOCAL_FILE_NAME, + INVALID_OVERWRITE, + CONFLICT, + SYNC_CONFLICT, + LOCAL_STORAGE_FULL, + LOCAL_STORAGE_NOT_MOVED, + LOCAL_STORAGE_NOT_COPIED } private boolean mSuccess = false; @@ -81,12 +95,18 @@ public class RemoteOperationResult { } 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_CONFLICT: + mCode = ResultCode.CONFLICT; + break; default: mCode = ResultCode.UNHANDLED_HTTP_CODE; } @@ -196,11 +216,17 @@ public class RemoteOperationResult { } 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"; @@ -222,12 +248,15 @@ public class RemoteOperationResult { } 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"; + } else if (mCode == ResultCode.LOCAL_STORAGE_FULL) { + return "Local storage full"; + + } else if (mCode == ResultCode.LOCAL_STORAGE_NOT_MOVED) { + return "Error while moving file to final directory"; } return "Operation finished with HTTP status code " + mHttpCode + " (" + (isSuccess()?"success":"fail") + ")"; - + } }