ppamorim

Untitled

Mar 19th, 2015
281
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.06 KB | None | 0 0
  1. package com.igopizzas.app.core.service;
  2.  
  3. import android.os.AsyncTask;
  4. import android.os.Build;
  5. import com.fasterxml.jackson.core.type.TypeReference;
  6. import com.igopizzas.app.utils.DebugUtil;
  7. import com.igopizzas.app.utils.JsonMapper;
  8. import com.squareup.okhttp.Response;
  9. import java.io.IOException;
  10. import java.util.ArrayList;
  11. import java.util.List;
  12. import org.apache.http.HttpStatus;
  13.  
  14. public class ArrayService<T> extends BaseService {
  15.  
  16.   private TypeReference typeReference;
  17.   private ArrayCallback arrayCallback;
  18.  
  19.   public ArrayService(TypeReference typeReference, ArrayCallback arrayCallback) {
  20.     this.typeReference = typeReference;
  21.     this.arrayCallback = arrayCallback;
  22.   }
  23.  
  24.   public void getArray(String url) {
  25.     ArrayServiceAsync arrayServiceAsync = new ArrayServiceAsync();
  26.     if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB) {
  27.       arrayServiceAsync.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, url);
  28.     } else {
  29.       arrayServiceAsync.execute(url);
  30.     }
  31.   }
  32.  
  33.   public class ArrayServiceAsync extends AsyncTask<String, Void, ArrayRequestResult> {
  34.     @Override protected ArrayRequestResult doInBackground(String... params) {
  35.  
  36.       try {
  37.  
  38.         ResponseHolder responseHolder = generateResponse(params[0]);
  39.         Response response = responseHolder.getResponse();
  40.  
  41.         if (response != null) {
  42.           if (response.isSuccessful()) {
  43.  
  44.             return new ArrayRequestResult(response.code(),
  45.                 (ArrayList<T>) new JsonMapper().readValue(
  46.                     response.body().string(), typeReference));
  47.  
  48.           } else {
  49.             return new ArrayRequestResult(response.code(), null);
  50.           }
  51.         } else {
  52.           return new ArrayRequestResult(response.code(), null);
  53.         }
  54.       } catch (IOException ioe) {
  55.         if(DebugUtil.DEBUG) {
  56.           ioe.printStackTrace();
  57.         }
  58.         return new ArrayRequestResult(HttpStatus.SC_BAD_REQUEST, null);
  59.       }
  60.     }
  61.  
  62.     @Override protected void onPostExecute(ArrayRequestResult arrayRequestResult) {
  63.       super.onPostExecute(arrayRequestResult);
  64.       if(arrayCallback != null) {
  65.         if(arrayRequestResult != null) {
  66.           arrayCallback.onSuccess(
  67.               arrayRequestResult.getStatusCode(),
  68.               arrayRequestResult.getList());
  69.         } else {
  70.           arrayCallback.onFail(1);
  71.         }
  72.       }
  73.     }
  74.   }
  75.  
  76.   public class ArrayRequestResult {
  77.  
  78.     public int statusCode;
  79.     public ArrayList<T> list;
  80.  
  81.     public ArrayRequestResult(int statusCode, ArrayList<T> list) {
  82.       this.statusCode = statusCode;
  83.       this.list = list;
  84.     }
  85.  
  86.     public int getStatusCode() {
  87.       return statusCode;
  88.     }
  89.  
  90.     public void setStatusCode(int statusCode) {
  91.       this.statusCode = statusCode;
  92.     }
  93.  
  94.     public ArrayList<T> getList() {
  95.       return list;
  96.     }
  97.  
  98.     public void setList(ArrayList<T> list) {
  99.       this.list = list;
  100.     }
  101.   }
  102.  
  103.   public static interface ArrayCallback<T> {
  104.     void onSuccess(int statusCode, ArrayList<T> list);
  105.     void onFail(int statusCode);
  106.   }
  107.  
  108. }
Advertisement
Add Comment
Please, Sign In to add comment