X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/8aeb5243b70ad931aaef7b88b5f52f054cd4171b..a72d7bfe2160a47a3fd49c08d72933a49e9e1519:/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 0ef5b31b..60cdcb2b 100644 --- a/src/com/owncloud/android/operations/RemoteOperationResult.java +++ b/src/com/owncloud/android/operations/RemoteOperationResult.java @@ -3,9 +3,8 @@ * 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 2 of the License, or - * (at your option) any later version. + * it under the terms of the GNU General Public License version 2, + * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -33,8 +32,11 @@ import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.HttpStatus; import org.apache.jackrabbit.webdav.DavException; -import android.util.Log; +import android.accounts.Account; +import android.accounts.AccountsException; +import com.owncloud.android.Log_OC; +import com.owncloud.android.authentication.AccountUtils.AccountNotFoundException; import com.owncloud.android.network.CertificateCombinedException; /** @@ -48,11 +50,41 @@ import com.owncloud.android.network.CertificateCombinedException; public class RemoteOperationResult implements Serializable { /** Generated - should be refreshed every time the class changes!! */ - private static final long serialVersionUID = -7805531062432602444L; - private static final String TAG = "RemoteOperationResult"; + private static final long serialVersionUID = 6106167714625712390L; - public enum ResultCode { - OK, OK_SSL, OK_NO_SSL, UNHANDLED_HTTP_CODE, UNAUTHORIZED, FILE_NOT_FOUND, INSTANCE_NOT_CONFIGURED, UNKNOWN_ERROR, WRONG_CONNECTION, TIMEOUT, INCORRECT_ADDRESS, HOST_NOT_AVAILABLE, NO_NETWORK_CONNECTION, SSL_ERROR, SSL_RECOVERABLE_PEER_UNVERIFIED, BAD_OC_VERSION, CANCELLED, INVALID_LOCAL_FILE_NAME, INVALID_OVERWRITE, CONFLICT, SYNC_CONFLICT, LOCAL_STORAGE_FULL, LOCAL_STORAGE_NOT_MOVED, LOCAL_STORAGE_NOT_COPIED, QUOTA_EXCEEDED + + private static final String TAG = "RemoteOperationResult"; + + public enum ResultCode { + OK, + OK_SSL, + OK_NO_SSL, + UNHANDLED_HTTP_CODE, + UNAUTHORIZED, + FILE_NOT_FOUND, + INSTANCE_NOT_CONFIGURED, + UNKNOWN_ERROR, + WRONG_CONNECTION, + TIMEOUT, + INCORRECT_ADDRESS, + HOST_NOT_AVAILABLE, + NO_NETWORK_CONNECTION, + SSL_ERROR, + SSL_RECOVERABLE_PEER_UNVERIFIED, + BAD_OC_VERSION, + CANCELLED, + INVALID_LOCAL_FILE_NAME, + INVALID_OVERWRITE, + CONFLICT, + OAUTH2_ERROR, + SYNC_CONFLICT, + LOCAL_STORAGE_FULL, + LOCAL_STORAGE_NOT_MOVED, + LOCAL_STORAGE_NOT_COPIED, + OAUTH2_ERROR_ACCESS_DENIED, + QUOTA_EXCEEDED, + ACCOUNT_NOT_FOUND, + ACCOUNT_EXCEPTION } private boolean mSuccess = false; @@ -91,7 +123,7 @@ public class RemoteOperationResult implements Serializable { break; default: mCode = ResultCode.UNHANDLED_HTTP_CODE; - Log.d(TAG, "RemoteOperationResult has prcessed UNHANDLED_HTTP_CODE: " + httpCode); + Log_OC.d(TAG, "RemoteOperationResult has prcessed UNHANDLED_HTTP_CODE: " + httpCode); } } } @@ -117,6 +149,12 @@ public class RemoteOperationResult implements Serializable { } else if (e instanceof UnknownHostException) { mCode = ResultCode.HOST_NOT_AVAILABLE; + } else if (e instanceof AccountNotFoundException) { + mCode = ResultCode.ACCOUNT_NOT_FOUND; + + } else if (e instanceof AccountsException) { + mCode = ResultCode.ACCOUNT_EXCEPTION; + } else if (e instanceof SSLException || e instanceof RuntimeException) { CertificateCombinedException se = getCertificateCombinedException(e); if (se != null) { @@ -217,6 +255,13 @@ public class RemoteOperationResult implements Serializable { } else if (mException instanceof IOException) { return "Unrecovered transport exception"; + } else if (mException instanceof AccountNotFoundException) { + Account failedAccount = ((AccountNotFoundException)mException).getFailedAccount(); + return mException.getMessage() + " (" + (failedAccount != null ? failedAccount.name : "NULL") + ")"; + + } else if (mException instanceof AccountsException) { + return "Exception while using account"; + } else { return "Unexpected exception"; } @@ -242,4 +287,12 @@ public class RemoteOperationResult implements Serializable { } + public boolean isServerFail() { + return (mHttpCode >= HttpStatus.SC_INTERNAL_SERVER_ERROR); + } + + public boolean isException() { + return (mException != null); + } + }