From 5e09a501c96f2a297d53e5c82b9d9c8e443c48ea Mon Sep 17 00:00:00 2001 From: agnostic-apollo Date: Fri, 20 Aug 2021 01:26:17 +0500 Subject: [PATCH] Added: Support for MessageDialogUtils.showMessage() to receive positive and negative button OnClickListeners --- .../shared/interact/MessageDialogUtils.java | 35 +++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/termux-shared/src/main/java/com/termux/shared/interact/MessageDialogUtils.java b/termux-shared/src/main/java/com/termux/shared/interact/MessageDialogUtils.java index ef713d58..abea1763 100644 --- a/termux-shared/src/main/java/com/termux/shared/interact/MessageDialogUtils.java +++ b/termux-shared/src/main/java/com/termux/shared/interact/MessageDialogUtils.java @@ -22,9 +22,33 @@ public class MessageDialogUtils { * @param onDismiss The {@link DialogInterface.OnDismissListener} to run when dialog is dismissed. */ public static void showMessage(Context context, String titleText, String messageText, final DialogInterface.OnDismissListener onDismiss) { + showMessage(context, titleText, messageText, null, null, null, null, onDismiss); + } - AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.Theme_AppCompat_Light_Dialog) - .setPositiveButton(android.R.string.ok, null); + /** + * Show a message in a dialog + * + * @param context The {@link Context} to use to start the dialog. An {@link Activity} {@link Context} + * must be passed, otherwise exceptions will be thrown. + * @param titleText The title text of the dialog. + * @param messageText The message text of the dialog. + * @param positiveText The positive button text of the dialog. + * @param onPositiveButton The {@link DialogInterface.OnClickListener} to run when positive button + * is pressed. + * @param negativeText The negative button text of the dialog. If this is {@code null}, then + * negative button will not be shown. + * @param onNegativeButton The {@link DialogInterface.OnClickListener} to run when negative button + * is pressed. + * @param onDismiss The {@link DialogInterface.OnDismissListener} to run when dialog is dismissed. + */ + public static void showMessage(Context context, String titleText, String messageText, + String positiveText, + final DialogInterface.OnClickListener onPositiveButton, + String negativeText, + final DialogInterface.OnClickListener onNegativeButton, + final DialogInterface.OnDismissListener onDismiss) { + + AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.Theme_AppCompat_Light_Dialog); LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE ); View view = inflater.inflate(R.layout.dialog_show_message, null); @@ -40,6 +64,13 @@ public class MessageDialogUtils { messageView.setText(messageText); } + if (positiveText == null) + positiveText = context.getString(android.R.string.ok); + builder.setPositiveButton(positiveText, onPositiveButton); + + if (negativeText != null) + builder.setNegativeButton(negativeText, onNegativeButton); + if (onDismiss != null) builder.setOnDismissListener(onDismiss);