package org.goodev.discourse.ui;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import org.goodev.discourse.api.Api;
import org.goodev.discourse.utils.HttpRequest;
import org.goodev.discourse.utils.Utils;
import org.json.JSONObject;
public class CheckUrlFragment extends Fragment {
private CheckUrlCallback mCallback;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
mCallback = (CheckUrlCallback) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString() + " must implement CheckUrlCallback");
}
}
@Override
public void onDetach() {
super.onDetach();
mCallback = null;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
String url = getArguments().getString(Utils.EXTRA_URL);
new CheckUrlTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, url);
}
public interface CheckUrlCallback {
void onPreExecute();
void onResult(boolean ok);
}
private class CheckUrlTask extends AsyncTask<String, Void, Boolean> {
@Override
protected Boolean doInBackground(String... params) {
String latestUrl = params[0] + Api.LATEST;
try {
String body = HttpRequest.get(latestUrl).acceptJson().body();
JSONObject obj = new JSONObject(body);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
@Override
protected void onPreExecute() {
super.onPreExecute();
if (mCallback != null) {
mCallback.onPreExecute();
}
}
@Override
protected void onPostExecute(Boolean result) {
super.onPostExecute(result);
if (mCallback != null) {
mCallback.onResult(result);
}
}
}
}