Skip to content

Instantly share code, notes, and snippets.

@courville
Created March 27, 2020 08:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save courville/95131f2b97fcf93ee6838ee06b1d68c0 to your computer and use it in GitHub Desktop.
Save courville/95131f2b97fcf93ee6838ee06b1d68c0 to your computer and use it in GitHub Desktop.
simple AlertDialog fo replace ProgressDialog which is deprecated
private AlertDialog alertDialog = null;
private ProgressBar progressBar = null;
private TextView textView = null;
public void displaySimpleDialog(Context context, boolean isSpinner, String dialogText, int progress, int maxProgress) {
if (alertDialog == null) { // init part
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setOnCancelListener(dialog -> {
dialog.cancel();
// do cleaning stuff
});
builder.setOnDismissListener(dialog -> {
dialog.cancel();
// do cleaning stuff
});
if (isSpinner) {
builder.setView(R.layout.spinner_dialog);
alertDialog = builder.create();
alertDialog.show();
progressBar = alertDialog.findViewById(R.id.spinner);
} else {
builder.setView(R.layout.progressbar_dialog);
alertDialog = builder.create();
alertDialog.show();
progressBar = alertDialog.findViewById(R.id.progressBar);
}
textView = alertDialog.findViewById(R.id.textView);
alertDialog.setCancelable(true); // to be able to exit via back
alertDialog.setCanceledOnTouchOutside(false); // to not cancel when tapping the screen out of dialog zone
}
// update part
if (!isSpinner && progressBar != null) {
progressBar.setMax(progress);
progressBar.setProgress(maxProgress);
}
// programmatically set the textView text
if (textView != null) textView.setText(dialogText);
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center"
android:paddingStart="5dip"
android:paddingTop="5dp"
android:paddingEnd="5dp"
android:paddingBottom="5dp"
android:textAppearance="@style/TextAppearance.AppCompat.Medium" />
<ProgressBar
android:id="@+id/progressBar"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center"
android:indeterminate="false"
android:paddingStart="5dip"
android:paddingTop="5dp"
android:paddingEnd="5dp"
android:paddingBottom="5dp"
android:visibility="visible" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="horizontal">
<ProgressBar
android:id="@+id/spinner"
style="@style/Widget.AppCompat.ProgressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:indeterminate="true"
android:paddingStart="5dip"
android:paddingTop="5dp"
android:paddingEnd="5dp"
android:paddingBottom="5dp" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingStart="5dip"
android:paddingTop="5dp"
android:paddingEnd="5dp"
android:paddingBottom="5dp"
android:textAppearance="@style/TextAppearance.AppCompat.Medium" />
</LinearLayout>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment