package com.yarin.android.Examples_08_09; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface.OnDismissListener; import android.os.Handler; abstract class SamplesUtils { public static void indeterminate(Context context, Handler handler, String message, final Runnable runnable, OnDismissListener dismissListener) { try { indeterminateInternal(context, handler, message, runnable, dismissListener, true); } catch (Exception e) { ; // nop. } } public static void indeterminate(Context context, Handler handler, String message, final Runnable runnable, OnDismissListener dismissListener, boolean cancelable) { try { indeterminateInternal(context, handler, message, runnable, dismissListener, cancelable); } catch (Exception e) { ; // nop. } } private static ProgressDialog createProgressDialog(Context context, String message) { ProgressDialog dialog = new ProgressDialog(context); dialog.setIndeterminate(false); dialog.setMessage(message); return dialog; } private static void indeterminateInternal(Context context, final Handler handler, String message, final Runnable runnable, OnDismissListener dismissListener, boolean cancelable) { final ProgressDialog dialog = createProgressDialog(context, message); dialog.setCancelable(cancelable); if (dismissListener != null) { dialog.setOnDismissListener(dismissListener); } dialog.show(); new Thread() { @Override public void run() { runnable.run(); handler.post(new Runnable() { public void run() { try { dialog.dismiss(); } catch (Exception e) { ; // nop. } } }); }; }.start(); } }