Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.igopizzas.app.core.service;
- import android.os.AsyncTask;
- import android.os.Build;
- import com.fasterxml.jackson.core.type.TypeReference;
- import com.igopizzas.app.utils.DebugUtil;
- import com.igopizzas.app.utils.JsonMapper;
- import com.squareup.okhttp.Response;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- import org.apache.http.HttpStatus;
- public class ArrayService<T> extends BaseService {
- private TypeReference typeReference;
- private ArrayCallback arrayCallback;
- public ArrayService(TypeReference typeReference, ArrayCallback arrayCallback) {
- this.typeReference = typeReference;
- this.arrayCallback = arrayCallback;
- }
- public void getArray(String url) {
- ArrayServiceAsync arrayServiceAsync = new ArrayServiceAsync();
- if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB) {
- arrayServiceAsync.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, url);
- } else {
- arrayServiceAsync.execute(url);
- }
- }
- public class ArrayServiceAsync extends AsyncTask<String, Void, ArrayRequestResult> {
- @Override protected ArrayRequestResult doInBackground(String... params) {
- try {
- ResponseHolder responseHolder = generateResponse(params[0]);
- Response response = responseHolder.getResponse();
- if (response != null) {
- if (response.isSuccessful()) {
- return new ArrayRequestResult(response.code(),
- (ArrayList<T>) new JsonMapper().readValue(
- response.body().string(), typeReference));
- } else {
- return new ArrayRequestResult(response.code(), null);
- }
- } else {
- return new ArrayRequestResult(response.code(), null);
- }
- } catch (IOException ioe) {
- if(DebugUtil.DEBUG) {
- ioe.printStackTrace();
- }
- return new ArrayRequestResult(HttpStatus.SC_BAD_REQUEST, null);
- }
- }
- @Override protected void onPostExecute(ArrayRequestResult arrayRequestResult) {
- super.onPostExecute(arrayRequestResult);
- if(arrayCallback != null) {
- if(arrayRequestResult != null) {
- arrayCallback.onSuccess(
- arrayRequestResult.getStatusCode(),
- arrayRequestResult.getList());
- } else {
- arrayCallback.onFail(1);
- }
- }
- }
- }
- public class ArrayRequestResult {
- public int statusCode;
- public ArrayList<T> list;
- public ArrayRequestResult(int statusCode, ArrayList<T> list) {
- this.statusCode = statusCode;
- this.list = list;
- }
- public int getStatusCode() {
- return statusCode;
- }
- public void setStatusCode(int statusCode) {
- this.statusCode = statusCode;
- }
- public ArrayList<T> getList() {
- return list;
- }
- public void setList(ArrayList<T> list) {
- this.list = list;
- }
- }
- public static interface ArrayCallback<T> {
- void onSuccess(int statusCode, ArrayList<T> list);
- void onFail(int statusCode);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment