package net.reichholf.dreamdroid.asynctask;
import net.reichholf.dreamdroid.helpers.ExtendedHashMap;
import net.reichholf.dreamdroid.helpers.NameValuePair;
import net.reichholf.dreamdroid.helpers.enigma2.Volume;
import net.reichholf.dreamdroid.helpers.enigma2.requesthandler.VolumeRequestHandler;
import java.util.ArrayList;
public class SetVolumeTask extends AsyncHttpTaskBase<ArrayList<NameValuePair>, Void, Boolean> {
private ExtendedHashMap mVolume;
private VolumeRequestHandler mHandler;
public SetVolumeTask(AsyncHttpTaskBaseHandler taskHandler) {
super(taskHandler);
}
@Override
protected Boolean doInBackground(ArrayList<NameValuePair>... params) {
if (isCancelled())
return false;
publishProgress();
mHandler = new VolumeRequestHandler();
String xml = mHandler.get(getHttpClient(), params[0]);
if (xml != null) {
ExtendedHashMap volume = new ExtendedHashMap();
mHandler.parse(xml, volume);
String current = volume.getString(Volume.KEY_CURRENT);
if (current != null) {
mVolume = volume;
return true;
}
}
return false;
}
protected void onPostExecute(Boolean result) {
SetVolumeTaskHandler taskHandler = (SetVolumeTaskHandler) mTaskHandler.get();
if (isCancelled() || taskHandler == null)
return;
if (!result || mVolume == null)
mVolume = new ExtendedHashMap();
taskHandler.onVolumeSet(result, mVolume);
}
public interface SetVolumeTaskHandler {
void onVolumeSet(boolean result, ExtendedHashMap volume);
}
}