Guest User

Untitled

a guest
Jun 23rd, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1. package org.grakovne.mds.android.network.common;
  2.  
  3. import android.content.Context;
  4. import android.util.Log;
  5.  
  6. import org.grakovne.mds.android.common.ActionNames;
  7. import org.grakovne.mds.android.manager.BroadcastManager;
  8.  
  9. import retrofit2.Call;
  10. import retrofit2.Callback;
  11. import retrofit2.Response;
  12.  
  13. import static org.grakovne.mds.android.MdsApplication.APP_TAG;
  14. import static org.grakovne.mds.android.manager.BroadcastManager.send;
  15. import static org.grakovne.mds.android.utils.CommonUtils.ifDebugEnabled;
  16.  
  17. public abstract class QueryResult<T> implements Callback<T> {
  18.  
  19. private final Context context;
  20.  
  21. public QueryResult(Context context) {
  22. this.context = context;
  23. }
  24.  
  25. public abstract void onResult(Response<T> response);
  26.  
  27. @Override
  28. public void onResponse(Call<T> call, Response<T> response) {
  29. if (isSuccessfulResponse(call, response)) {
  30. onResult(response);
  31. }
  32. }
  33.  
  34. @Override
  35. public void onFailure(Call<T> call, Throwable t) {
  36. send(context, ActionNames.Network.API_ERROR_EVENT);
  37. }
  38.  
  39. public boolean isSuccessfulResponse(Call<T> call, Response response) {
  40. if (!response.isSuccessful()) {
  41. BroadcastManager.send(context, ActionNames.Network.API_ERROR_EVENT);
  42. ifDebugEnabled(() -> Log.d(APP_TAG,
  43. "API error occurred while request: "
  44. + call.request().method()
  45. + ", "
  46. + call.request().url()
  47. + " status code is "
  48. + response.code()));
  49. return false;
  50. }
  51. return true;
  52. }
  53. }
Add Comment
Please, Sign In to add comment