1d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru/* 2d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * Copyright (C) 2011 The Android Open Source Project 3d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * 4d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * Licensed under the Apache License, Version 2.0 (the "License"); 5d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * you may not use this file except in compliance with the License. 6d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * You may obtain a copy of the License at 7d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * 8d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * http://www.apache.org/licenses/LICENSE-2.0 9d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * 10d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * Unless required by applicable law or agreed to in writing, software 11d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * distributed under the License is distributed on an "AS IS" BASIS, 12d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * See the License for the specific language governing permissions and 14d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * limitations under the License. 15d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru */ 16d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 17d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Querupackage com.android.volley; 18d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 19d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport android.content.Intent; 20d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 21d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru/** 22d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * Error indicating that there was an authentication failure when performing a Request. 23d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru */ 24d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru@SuppressWarnings("serial") 25d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Querupublic class AuthFailureError extends VolleyError { 26d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru /** An intent that can be used to resolve this exception. (Brings up the password dialog.) */ 27d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru private Intent mResolutionIntent; 28d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 29d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru public AuthFailureError() { } 30d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 31d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru public AuthFailureError(Intent intent) { 32d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru mResolutionIntent = intent; 33d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 34d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 35d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru public AuthFailureError(NetworkResponse response) { 36d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru super(response); 37d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 38d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 39d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru public AuthFailureError(String message) { 40d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru super(message); 41d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 42d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 43d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru public AuthFailureError(String message, Exception reason) { 44d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru super(message, reason); 45d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 46d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 47d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru public Intent getResolutionIntent() { 48d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru return mResolutionIntent; 49d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 50d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 51d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru @Override 52d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru public String getMessage() { 53d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru if (mResolutionIntent != null) { 54d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru return "User needs to (re)enter credentials."; 55d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 56d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru return super.getMessage(); 57d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 58d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru} 59