Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.grakovne.mds.android.network.common;
- import android.content.Context;
- import android.util.Log;
- import org.grakovne.mds.android.common.ActionNames;
- import org.grakovne.mds.android.manager.BroadcastManager;
- import retrofit2.Call;
- import retrofit2.Callback;
- import retrofit2.Response;
- import static org.grakovne.mds.android.MdsApplication.APP_TAG;
- import static org.grakovne.mds.android.manager.BroadcastManager.send;
- import static org.grakovne.mds.android.utils.CommonUtils.ifDebugEnabled;
- public abstract class QueryResult<T> implements Callback<T> {
- private final Context context;
- public QueryResult(Context context) {
- this.context = context;
- }
- public abstract void onResult(Response<T> response);
- @Override
- public void onResponse(Call<T> call, Response<T> response) {
- if (isSuccessfulResponse(call, response)) {
- onResult(response);
- }
- }
- @Override
- public void onFailure(Call<T> call, Throwable t) {
- send(context, ActionNames.Network.API_ERROR_EVENT);
- }
- public boolean isSuccessfulResponse(Call<T> call, Response response) {
- if (!response.isSuccessful()) {
- BroadcastManager.send(context, ActionNames.Network.API_ERROR_EVENT);
- ifDebugEnabled(() -> Log.d(APP_TAG,
- "API error occurred while request: "
- + call.request().method()
- + ", "
- + call.request().url()
- + " status code is "
- + response.code()));
- return false;
- }
- return true;
- }
- }
Add Comment
Please, Sign In to add comment