package com.jobmineplus.mobile.widgets; import android.app.Activity; import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; public abstract class ProgressDialogAsyncTaskBase<TParams, TProgress, TResult> extends JbmnplsAsyncTaskBase<TParams, TProgress, TResult> implements OnCancelListener{ private ProgressDialog progressDial; private String message; private boolean doDialog; public ProgressDialogAsyncTaskBase(Activity activity, String dialogueMessage) { super(activity); message = dialogueMessage; doDialog = true; } public ProgressDialogAsyncTaskBase(Activity activity, String dialogueMessage, boolean showDialog) { super(activity); message = dialogueMessage; doDialog = showDialog; } @Override public void attach(Activity activity) { super.attach(activity); if (isRunning()) { showProgress(); } }; @Override public void detach() { dismissProgress(); super.detach(); } @Override protected void onPreExecute() { super.onPreExecute(); showProgress(); }; @Override protected void onPostExecute(TResult result) { super.onPostExecute(result); dismissProgress(); }; @Override protected void onCancelled() { super.onCancelled(); dismissProgress(); }; public void onCancel(DialogInterface dialog) { this.cancel(true); } public void setMessage(String text) { message = text; if (progressDial != null) { progressDial.setMessage(text); } } public void showProgress() { if (doDialog) { progressDial = ProgressDialog.show(getActivity(), "", message, true, true, this); } } public void dismissProgress() { if (doDialog && progressDial != null && progressDial.isShowing()) { progressDial.dismiss(); progressDial = null; } } }