package io.github.mthli.Ninja.Task; import android.os.AsyncTask; import io.github.mthli.Ninja.Activity.ReadabilityActivity; import org.json.JSONObject; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class ReadabilityTask extends AsyncTask<Void, Void, Boolean> { private String query = null; private JSONObject result = null; private ReadabilityActivity activity; public ReadabilityTask(ReadabilityActivity activity, String query) { this.activity = activity; this.query = query; } @Override protected void onPreExecute() { activity.setStatus(ReadabilityActivity.Status.RUNNING); } @Override protected Boolean doInBackground(Void... params) { try { URL url = new URL(query); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDefaultUseCaches(true); connection.setUseCaches(true); connection.connect(); if (connection.getResponseCode() == 200) { BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); StringBuilder builder = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { builder.append(line); } reader.close(); connection.disconnect(); result = new JSONObject(builder.toString()); } else { result = null; } } catch (Exception e) { result = null; } if (isCancelled()) { return false; } return true; } @Override protected void onPostExecute(Boolean b) { activity.setStatus(ReadabilityActivity.Status.IDLE); if (b) { activity.setResult(result); activity.showLoadSuccessful(); } else { activity.setResult(null); activity.showLoadError(); } } }