package com.vaguehope.onosendai.provider.successwhale; import android.app.ProgressDialog; import android.content.Context; import android.os.AsyncTask; import com.vaguehope.onosendai.config.Account; import com.vaguehope.onosendai.storage.VolatileKvStore; import com.vaguehope.onosendai.util.DialogHelper; import com.vaguehope.onosendai.util.DialogHelper.Listener; import com.vaguehope.onosendai.util.LogWrapper; import com.vaguehope.onosendai.util.Result; public class SuccessWhaleSourcesFetcher extends AsyncTask<Void, Void, Result<SuccessWhaleSources>> { private static final LogWrapper LOG = new LogWrapper("SWSF"); private final Context context; private final Account account; private final Listener<SuccessWhaleSources> onSources; private ProgressDialog dialog; public SuccessWhaleSourcesFetcher (final Context context, final Account account, final Listener<SuccessWhaleSources> onSources) { this.context = context; this.account = account; this.onSources = onSources; } @Override protected void onPreExecute () { this.dialog = ProgressDialog.show(this.context, "SuccessWhale", "Fetching sources...", true); //ES } @Override protected Result<SuccessWhaleSources> doInBackground (final Void... params) { final SuccessWhaleProvider swProv = new SuccessWhaleProvider(new VolatileKvStore()); try { return new Result<SuccessWhaleSources>(swProv.getSources(this.account)); } catch (SuccessWhaleException e) { return new Result<SuccessWhaleSources>(e); } finally { swProv.shutdown(); } } @Override protected void onPostExecute (final Result<SuccessWhaleSources> result) { if (result.isSuccess()) { this.onSources.onAnswer(result.getData()); this.dialog.dismiss(); } else { this.dialog.dismiss(); LOG.e("Failed fetch SuccessWhale sources.", result.getE()); DialogHelper.alert(this.context, result.getE()); } } }