package mediabrowser.apiinteraction; import mediabrowser.apiinteraction.ApiClient; import mediabrowser.apiinteraction.IResponse; import mediabrowser.apiinteraction.Response; import mediabrowser.model.net.HttpException; public class ApiClientRequestListener extends Response<String> { private boolean fireGlobalEvents; private ApiClient apiClient; private Response<String> innerStringResponse; public ApiClientRequestListener(ApiClient apiClient, boolean fireGlobalEvents, Response<String> innerResponse) { super(innerResponse); this.fireGlobalEvents = fireGlobalEvents; this.apiClient = apiClient; innerStringResponse = innerResponse; } @Override public void onResponse(String response) { innerStringResponse.onResponse(response); } @Override public void onError(Exception ex) { if (ex instanceof HttpException) { HttpException httpError = (HttpException)ex; if (fireGlobalEvents && httpError.getStatusCode() != null && httpError.getStatusCode() == 401) { apiClient.OnRemoteLoggedOut(httpError); } } super.onError(ex); } }