package com.boardgamegeek.tasks; import android.content.Context; import android.os.AsyncTask; import android.support.annotation.StringRes; import android.widget.Toast; /** * A task that requires no input or output other than a context that will show a success or failure message via a Toast * when complete. */ public abstract class ToastingAsyncTask extends AsyncTask<Void, Void, Boolean> { private final Context context; public ToastingAsyncTask(Context context) { this.context = context; } protected Context getContext() { return context; } @StringRes protected abstract int getSuccessMessageResource(); @StringRes protected abstract int getFailureMessageResource(); @Override protected void onPostExecute(Boolean result) { @StringRes final int resId = result ? getSuccessMessageResource() : getFailureMessageResource(); if (resId > 0) { Toast.makeText(context, resId, Toast.LENGTH_LONG).show(); } } }