183d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick/* 283d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick * Copyright (C) 2010 The Android Open Source Project 383d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick * 483d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick * Licensed under the Apache License, Version 2.0 (the "License"); 583d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick * you may not use this file except in compliance with the License. 683d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick * You may obtain a copy of the License at 783d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick * 883d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick * http://www.apache.org/licenses/LICENSE-2.0 983d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick * 1083d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick * Unless required by applicable law or agreed to in writing, software 1183d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick * distributed under the License is distributed on an "AS IS" BASIS, 1283d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1383d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick * See the License for the specific language governing permissions and 1483d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick * limitations under the License. 1583d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick */ 1683d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick 1783d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrickpackage android.net.http; 1883d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick 1983d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrickimport android.content.Context; 2083d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrickimport android.util.Log; 2183d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick 2283d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick/** 2383d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick * Localized strings for the error codes defined in EventHandler. 2483d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick * 2583d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick * {@hide} 2683d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick */ 2783d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrickpublic class ErrorStrings { 2883d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick private ErrorStrings() { /* Utility class, don't instantiate. */ } 2983d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick 3083d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick private static final String LOGTAG = "Http"; 3183d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick 3283d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick /** 3383d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick * Get the localized error message resource for the given error code. 3483d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick * If the code is unknown, we'll return a generic error message. 3583d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick */ 3683d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick public static String getString(int errorCode, Context context) { 3783d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick return context.getText(getResource(errorCode)).toString(); 3883d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick } 3983d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick 4083d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick /** 4183d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick * Get the localized error message resource for the given error code. 4283d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick * If the code is unknown, we'll return a generic error message. 4383d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick */ 4483d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick public static int getResource(int errorCode) { 4583d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick switch(errorCode) { 4683d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick case EventHandler.OK: 4783d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick return com.android.internal.R.string.httpErrorOk; 4883d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick 4983d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick case EventHandler.ERROR: 5083d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick return com.android.internal.R.string.httpError; 5183d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick 5283d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick case EventHandler.ERROR_LOOKUP: 5383d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick return com.android.internal.R.string.httpErrorLookup; 5483d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick 5583d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick case EventHandler.ERROR_UNSUPPORTED_AUTH_SCHEME: 5683d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick return com.android.internal.R.string.httpErrorUnsupportedAuthScheme; 5783d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick 5883d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick case EventHandler.ERROR_AUTH: 5983d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick return com.android.internal.R.string.httpErrorAuth; 6083d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick 6183d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick case EventHandler.ERROR_PROXYAUTH: 6283d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick return com.android.internal.R.string.httpErrorProxyAuth; 6383d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick 6483d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick case EventHandler.ERROR_CONNECT: 6583d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick return com.android.internal.R.string.httpErrorConnect; 6683d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick 6783d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick case EventHandler.ERROR_IO: 6883d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick return com.android.internal.R.string.httpErrorIO; 6983d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick 7083d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick case EventHandler.ERROR_TIMEOUT: 7183d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick return com.android.internal.R.string.httpErrorTimeout; 7283d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick 7383d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick case EventHandler.ERROR_REDIRECT_LOOP: 7483d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick return com.android.internal.R.string.httpErrorRedirectLoop; 7583d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick 7683d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick case EventHandler.ERROR_UNSUPPORTED_SCHEME: 7783d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick return com.android.internal.R.string.httpErrorUnsupportedScheme; 7883d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick 7983d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick case EventHandler.ERROR_FAILED_SSL_HANDSHAKE: 8083d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick return com.android.internal.R.string.httpErrorFailedSslHandshake; 8183d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick 8283d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick case EventHandler.ERROR_BAD_URL: 8383d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick return com.android.internal.R.string.httpErrorBadUrl; 8483d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick 8583d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick case EventHandler.FILE_ERROR: 8683d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick return com.android.internal.R.string.httpErrorFile; 8783d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick 8883d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick case EventHandler.FILE_NOT_FOUND_ERROR: 8983d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick return com.android.internal.R.string.httpErrorFileNotFound; 9083d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick 9183d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick case EventHandler.TOO_MANY_REQUESTS_ERROR: 9283d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick return com.android.internal.R.string.httpErrorTooManyRequests; 9383d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick 9483d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick default: 9583d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick Log.w(LOGTAG, "Using generic message for unknown error code: " + errorCode); 9683d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick return com.android.internal.R.string.httpError; 9783d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick } 9883d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick } 9983d4a23c280bdcaf6c301651b76ddc6fbf08949cIain Merrick} 100