package mediabrowser.apiinteraction.android;
import com.android.volley.Response;
import com.android.volley.TimeoutError;
import com.android.volley.VolleyError;
import mediabrowser.model.logging.ILogger;
import mediabrowser.model.net.HttpException;
public class VolleyErrorListener<T> implements Response.ErrorListener {
private mediabrowser.apiinteraction.Response<T> outerResponse;
private ILogger logger;
public VolleyErrorListener(mediabrowser.apiinteraction.Response<T> outerResponse, ILogger logger) {
this.outerResponse = outerResponse;
this.logger = logger;
}
@Override
public void onErrorResponse(VolleyError error) {
String messagePrefix = "VolleyError "+error.getClass().getName()+": ";
logger.ErrorException(messagePrefix + error.getMessage(), error);
/* if (error instanceof TimeoutError) {
logger.Error("VolleyError TimeoutError: ", error.getMessage());
} else if (error instanceof NoConnectionError) {
logger.Error("VolleyError NoConnectionError: ", error.getMessage());
} else if (error instanceof AuthFailureError) {
logger.Error("VolleyError AuthFailureError: ", error.getMessage());
} else if (error instanceof ServerError) {
logger.Error("VolleyError ServerError: ", error.getMessage());
} else if (error instanceof NetworkError) {
logger.Error("VolleyError NetworkError: ", error.getMessage());
} else if (error instanceof ParseError) {
logger.Error("VolleyError ParseError: ", error.getMessage());
}*/
HttpException httpException = new HttpException(messagePrefix, error);
if (error.networkResponse != null) {
httpException.setStatusCode(error.networkResponse.statusCode);
httpException.setHeaders(error.networkResponse.headers);
}
if (error instanceof TimeoutError) {
httpException.setIsTimedOut(true);
}
outerResponse.onError(httpException);
}
}