package net.reichholf.dreamdroid.asynctask;
import android.content.Context;
import net.reichholf.dreamdroid.Profile;
import net.reichholf.dreamdroid.R;
import net.reichholf.dreamdroid.helpers.ExtendedHashMap;
import net.reichholf.dreamdroid.helpers.enigma2.CheckProfile;
public class CheckProfileTask extends AsyncHttpTaskBase<Void, String, ExtendedHashMap> {
private Profile mProfile;
public CheckProfileTask(Profile p, CheckProfileTaskHandler taskHandler) {
super(taskHandler);
mProfile = p;
}
@Override
protected ExtendedHashMap doInBackground(Void... params) {
CheckProfileTaskHandler taskHandler = (CheckProfileTaskHandler) mTaskHandler.get();
if (taskHandler == null)
return null;
publishProgress(taskHandler.getString(R.string.checking));
return CheckProfile.checkProfile(mProfile, taskHandler.getProfileCheckContext());
}
@Override
protected void onProgressUpdate(String... progress) {
CheckProfileTaskHandler taskHandler = (CheckProfileTaskHandler) mTaskHandler.get();
if (taskHandler != null)
taskHandler.onProfileCheckProgress(progress[0]);
}
@Override
protected void onPostExecute(ExtendedHashMap result) {
CheckProfileTaskHandler taskHandler = (CheckProfileTaskHandler) mTaskHandler.get();
if (!isCancelled() && taskHandler != null)
taskHandler.onProfileChecked(result);
}
public interface CheckProfileTaskHandler extends AsyncHttpTaskBaseHandler {
void onProfileChecked(ExtendedHashMap result);
void onProfileCheckProgress(String state);
Context getProfileCheckContext();
}
}