package net.reichholf.dreamdroid.asynctask;
import net.reichholf.dreamdroid.helpers.ExtendedHashMap;
import net.reichholf.dreamdroid.helpers.NameValuePair;
import net.reichholf.dreamdroid.helpers.enigma2.SleepTimer;
import net.reichholf.dreamdroid.helpers.enigma2.requesthandler.SleepTimerRequestHandler;
import java.util.ArrayList;
/**
* Created by Stephan on 27.12.2015.
*/
public class SleepTimerTask extends AsyncHttpTaskBase<ArrayList<NameValuePair>, Void, Boolean> {
protected ExtendedHashMap mResult;
protected SleepTimerRequestHandler mHandler;
protected boolean mDialogOnFinish;
public SleepTimerTask(boolean dialogOnFinish, SleepTimerTaskHandler taskHandler) {
super(taskHandler);
mHandler = new SleepTimerRequestHandler();
mDialogOnFinish = dialogOnFinish;
}
@Override
protected Boolean doInBackground(ArrayList<NameValuePair>... params) {
publishProgress();
String xml = mHandler.get(getHttpClient(), params[0]);
if (xml != null) {
ExtendedHashMap result = new ExtendedHashMap();
mHandler.parse(xml, result);
String enabled = result.getString(SleepTimer.KEY_ENABLED);
if (enabled != null) {
mResult = result;
return true;
}
}
return false;
}
@Override
protected void onPostExecute(Boolean result) {
SleepTimerTaskHandler resultHandler = (SleepTimerTaskHandler) mTaskHandler.get();
if (isCancelled() || resultHandler == null)
return;
if (!result || mResult == null)
mResult = new ExtendedHashMap();
resultHandler.onSleepTimerSet(result, mResult, mDialogOnFinish, getErrorText());
}
public interface SleepTimerTaskHandler extends AsyncHttpTaskBaseHandler {
void onSleepTimerSet(boolean success, ExtendedHashMap result, boolean openDialog, String errorText);
}
}