package net.reichholf.dreamdroid.asynctask; import net.reichholf.dreamdroid.helpers.ExtendedHashMap; import net.reichholf.dreamdroid.helpers.NameValuePair; import net.reichholf.dreamdroid.helpers.enigma2.requesthandler.SimpleResultRequestHandler; import java.util.ArrayList; public class SimpleResultTask extends AsyncHttpTaskBase<ArrayList<NameValuePair>, Void, Boolean> { protected ExtendedHashMap mResult; protected SimpleResultRequestHandler mHandler; public SimpleResultTask(SimpleResultRequestHandler handler, SimpleResultTaskHandler taskHandler) { super(taskHandler); mHandler = handler; } @Override protected Boolean doInBackground(ArrayList<NameValuePair>... params) { if (isCancelled()) return false; publishProgress(); String xml = mHandler.get(getHttpClient(), params[0]); if (xml != null) { ExtendedHashMap result = mHandler.parseSimpleResult(xml); String stateText = result.getString("statetext"); if (stateText != null) { mResult = result; return true; } } return false; } @Override protected void onProgressUpdate(Void... progress) { } protected void onPostExecute(Boolean result) { SimpleResultTaskHandler resultHandler = (SimpleResultTaskHandler) mTaskHandler.get(); if (isCancelled() || resultHandler == null) return; if (!result || mResult == null) mResult = new ExtendedHashMap(); resultHandler.onSimpleResult(result, mResult); } public interface SimpleResultTaskHandler extends AsyncHttpTaskBaseHandler { void onSimpleResult(boolean success, ExtendedHashMap result); } }