package com.gh4a.loader; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.support.v4.content.Loader; import com.gh4a.R; import com.gh4a.utils.UiUtils; public abstract class ProgressDialogLoaderCallbacks<T> extends LoaderCallbacks<T> { private Context mContext; private Dialog mProgressDialog; public ProgressDialogLoaderCallbacks(Context context, ParentCallback cb) { super(cb); mContext = context; } @Override public Loader<LoaderResult<T>> onCreateLoader(int id, Bundle args) { Loader<LoaderResult<T>> result = super.onCreateLoader(id, args); mProgressDialog = UiUtils.createProgressDialog(mContext, R.string.loading_msg); mProgressDialog.show(); return result; } @Override public void onLoadFinished(Loader<LoaderResult<T>> loader, LoaderResult<T> result) { super.onLoadFinished(loader, result); closeProgressDialog(); } @Override public void onLoaderReset(Loader<LoaderResult<T>> loader) { super.onLoaderReset(loader); closeProgressDialog(); } private void closeProgressDialog() { if (mProgressDialog != null) { mProgressDialog.dismiss(); mProgressDialog = null; } } }