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 SuccessWhaleColumnsFetcher extends AsyncTask<Void, Void, Result<SuccessWhaleColumns>> { private static final LogWrapper LOG = new LogWrapper("SWCF"); private final Context context; private final Account account; private final Listener<SuccessWhaleColumns> onColumns; private ProgressDialog dialog; public SuccessWhaleColumnsFetcher (final Context context, final Account account, final Listener<SuccessWhaleColumns> onColumns) { this.context = context; this.account = account; this.onColumns = onColumns; } @Override protected void onPreExecute () { this.dialog = ProgressDialog.show(this.context, "SuccessWhale", "Fetching columns...", true); //ES } @Override protected Result<SuccessWhaleColumns> doInBackground (final Void... params) { final SuccessWhaleProvider swProv = new SuccessWhaleProvider(new VolatileKvStore()); try { return new Result<SuccessWhaleColumns>(swProv.getColumns(this.account)); } catch (SuccessWhaleException e) { return new Result<SuccessWhaleColumns>(e); } finally { swProv.shutdown(); } } @Override protected void onPostExecute (final Result<SuccessWhaleColumns> result) { if (result.isSuccess()) { this.onColumns.onAnswer(result.getData()); this.dialog.dismiss(); } else { this.dialog.dismiss(); LOG.e("Failed fetch SuccessWhale columns.", result.getE()); DialogHelper.alert(this.context, result.getE()); } } }