package hecosire.com.hecosireapp;
import android.os.AsyncTask;
import android.util.Log;
import android.widget.Toast;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.BasicHttpParams;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
public class RetrieveRecordsTask extends AsyncTask<String, Void, JSONArray> {
private Exception exception;
private MainActivity activity;
private UserToken token;
public RetrieveRecordsTask(MainActivity activity, UserToken token) {
this.activity = activity;
this.token = token;
}
protected JSONArray doInBackground(String... urls) {
DefaultHttpClient httpclient = new DefaultHttpClient(new BasicHttpParams());
HttpGet httppost = new HttpGet(MyApplication.RECORDS_API_URL);
httppost.setHeader("Content-type", "application/json");
httppost.setHeader("Accept", "application/json");
httppost.setHeader("X-User-Token", token.getToken());
httppost.setHeader("X-User-Email", token.getEmail());
InputStream inputStream = null;
String result = null;
try {
HttpResponse response = httpclient.execute(httppost);
if (response.getStatusLine().getStatusCode() == 401) {
throw new UnauthorizedException();
}
HttpEntity entity = response.getEntity();
inputStream = entity.getContent();
// json is UTF-8 by default
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
result = sb.toString();
return new JSONArray(result);
} catch (Exception e) {
this.exception = e;
Log.e("test", "test", e);
} finally {
try {
if (inputStream != null) inputStream.close();
} catch (Exception squish) {
Log.e("test", "test", squish);
this.exception = squish;
}
}
return null;
}
protected void onPostExecute(JSONArray feed) {
if (exception != null && exception instanceof UnauthorizedException) {
activity.unauthorizedException();
return;
}
if (exception != null) {
return;
}
activity.userRecords(new UserRecords(feed));
}
}