diff options
Diffstat (limited to 'main/src/cgeo/geocaching/activity/Progress.java')
| -rw-r--r-- | main/src/cgeo/geocaching/activity/Progress.java | 59 |
1 files changed, 37 insertions, 22 deletions
diff --git a/main/src/cgeo/geocaching/activity/Progress.java b/main/src/cgeo/geocaching/activity/Progress.java index 7a1995d..1aa1942 100644 --- a/main/src/cgeo/geocaching/activity/Progress.java +++ b/main/src/cgeo/geocaching/activity/Progress.java @@ -1,5 +1,7 @@ package cgeo.geocaching.activity; +import cgeo.geocaching.ui.CustomProgressDialog; + import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; @@ -14,6 +16,15 @@ public class Progress { private ProgressDialog dialog; private int progress = 0; private int progressDivider = 1; + private boolean hideAbsolute = false; + + public Progress(boolean hideAbsolute) { + this.hideAbsolute = hideAbsolute; + } + + public Progress() { + this(false); + } public synchronized void dismiss() { if (dialog != null && dialog.isShowing()) { @@ -24,38 +35,42 @@ public class Progress { public synchronized void show(final Context context, final String title, final String message, final boolean indeterminate, final Message cancelMessage) { if (dialog == null) { - dialog = ProgressDialog.show(context, title, message, indeterminate, cancelMessage != null); - dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); - dialog.setProgress(0); - dialog.setCanceledOnTouchOutside(false); - this.progress = 0; - if (cancelMessage != null) { - dialog.setCancelMessage(cancelMessage); - } + createProgressDialog(context, title, message, cancelMessage); + dialog.setIndeterminate(indeterminate); + dialog.show(); } } public synchronized void show(final Context context, final String title, final String message, final int style, final Message cancelMessage) { if (dialog == null) { - dialog = new ProgressDialog(context); - dialog.setProgress(0); - dialog.setCanceledOnTouchOutside(false); - this.progress = 0; - dialog.setTitle(title); - dialog.setMessage(message); + createProgressDialog(context, title, message, cancelMessage); dialog.setProgressStyle(style); - if (cancelMessage != null) { - dialog.setCancelable(true); - dialog.setCancelMessage(cancelMessage); - dialog.setButton(DialogInterface.BUTTON_NEGATIVE, context.getResources().getString(android.R.string.cancel), cancelMessage); - } else { - dialog.setCancelable(false); - } - dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); dialog.show(); } } + private void createProgressDialog(Context context, String title, String message, Message cancelMessage) { + if (hideAbsolute) { + dialog = new CustomProgressDialog(context); + } + else { + dialog = new ProgressDialog(context); + } + dialog.setTitle(title); + dialog.setMessage(message); + if (cancelMessage != null) { + dialog.setCancelable(true); + dialog.setCancelMessage(cancelMessage); + dialog.setButton(DialogInterface.BUTTON_NEGATIVE, context.getResources().getString(android.R.string.cancel), cancelMessage); + } else { + dialog.setCancelable(false); + } + dialog.setProgress(0); + dialog.setCanceledOnTouchOutside(false); + dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + this.progress = 0; + } + public synchronized void setMessage(final String message) { if (dialog != null && dialog.isShowing()) { dialog.setMessage(message); |
