From 553913cde13062c097043a5f78507bbd642cf3af Mon Sep 17 00:00:00 2001 From: agnostic-apollo Date: Wed, 30 Jun 2021 04:35:06 +0500 Subject: [PATCH] Divide dialog utils --- .../java/com/termux/app/TermuxActivity.java | 4 +- .../java/com/termux/app/TermuxInstaller.java | 4 +- .../terminal/TermuxTerminalSessionClient.java | 4 +- .../TermuxFileReceiverActivity.java | 4 +- .../shared/interact/MessageDialogUtils.java | 53 +++++++++++++++++++ ...ogUtils.java => TextInputDialogUtils.java} | 40 +------------- .../termux/shared/packages/PackageUtils.java | 4 +- 7 files changed, 64 insertions(+), 49 deletions(-) create mode 100644 termux-shared/src/main/java/com/termux/shared/interact/MessageDialogUtils.java rename termux-shared/src/main/java/com/termux/shared/interact/{DialogUtils.java => TextInputDialogUtils.java} (65%) diff --git a/app/src/main/java/com/termux/app/TermuxActivity.java b/app/src/main/java/com/termux/app/TermuxActivity.java index 0c13c019..4da810f7 100644 --- a/app/src/main/java/com/termux/app/TermuxActivity.java +++ b/app/src/main/java/com/termux/app/TermuxActivity.java @@ -45,7 +45,7 @@ import com.termux.app.terminal.TermuxTerminalSessionClient; import com.termux.app.terminal.TermuxTerminalViewClient; import com.termux.app.terminal.io.extrakeys.ExtraKeysView; import com.termux.app.settings.properties.TermuxAppSharedProperties; -import com.termux.shared.interact.DialogUtils; +import com.termux.shared.interact.TextInputDialogUtils; import com.termux.shared.logger.Logger; import com.termux.shared.termux.TermuxUtils; import com.termux.terminal.TerminalSession; @@ -514,7 +514,7 @@ public final class TermuxActivity extends Activity implements ServiceConnection View newSessionButton = findViewById(R.id.new_session_button); newSessionButton.setOnClickListener(v -> mTermuxTerminalSessionClient.addNewSession(false, null)); newSessionButton.setOnLongClickListener(v -> { - DialogUtils.textInput(TermuxActivity.this, R.string.title_create_named_session, null, + TextInputDialogUtils.textInput(TermuxActivity.this, R.string.title_create_named_session, null, R.string.action_create_named_session_confirm, text -> mTermuxTerminalSessionClient.addNewSession(false, text), R.string.action_new_session_failsafe, text -> mTermuxTerminalSessionClient.addNewSession(true, text), -1, null, null); diff --git a/app/src/main/java/com/termux/app/TermuxInstaller.java b/app/src/main/java/com/termux/app/TermuxInstaller.java index 83ce3ab9..19ade920 100644 --- a/app/src/main/java/com/termux/app/TermuxInstaller.java +++ b/app/src/main/java/com/termux/app/TermuxInstaller.java @@ -13,7 +13,7 @@ import android.view.WindowManager; import com.termux.R; import com.termux.app.utils.CrashUtils; import com.termux.shared.file.FileUtils; -import com.termux.shared.interact.DialogUtils; +import com.termux.shared.interact.MessageDialogUtils; import com.termux.shared.logger.Logger; import com.termux.shared.models.errors.Error; import com.termux.shared.termux.TermuxConstants; @@ -60,7 +60,7 @@ final class TermuxInstaller { if (!isPrimaryUser) { String bootstrapErrorMessage = activity.getString(R.string.bootstrap_error_not_primary_user_message, TermuxConstants.TERMUX_PREFIX_DIR_PATH); Logger.logError(LOG_TAG, bootstrapErrorMessage); - DialogUtils.exitAppWithErrorMessage(activity, + MessageDialogUtils.exitAppWithErrorMessage(activity, activity.getString(R.string.bootstrap_error_title), bootstrapErrorMessage); return; diff --git a/app/src/main/java/com/termux/app/terminal/TermuxTerminalSessionClient.java b/app/src/main/java/com/termux/app/terminal/TermuxTerminalSessionClient.java index be98ddc9..e80290d5 100644 --- a/app/src/main/java/com/termux/app/terminal/TermuxTerminalSessionClient.java +++ b/app/src/main/java/com/termux/app/terminal/TermuxTerminalSessionClient.java @@ -14,7 +14,7 @@ import android.widget.ListView; import com.termux.R; import com.termux.shared.shell.TermuxSession; -import com.termux.shared.interact.DialogUtils; +import com.termux.shared.interact.TextInputDialogUtils; import com.termux.app.TermuxActivity; import com.termux.shared.terminal.TermuxTerminalSessionClientBase; import com.termux.shared.termux.TermuxConstants; @@ -301,7 +301,7 @@ public class TermuxTerminalSessionClient extends TermuxTerminalSessionClientBase public void renameSession(final TerminalSession sessionToRename) { if (sessionToRename == null) return; - DialogUtils.textInput(mActivity, R.string.title_rename_session, sessionToRename.mSessionName, R.string.action_rename_session_confirm, text -> { + TextInputDialogUtils.textInput(mActivity, R.string.title_rename_session, sessionToRename.mSessionName, R.string.action_rename_session_confirm, text -> { sessionToRename.mSessionName = text; termuxSessionListNotifyUpdated(); }, -1, null, -1, null, null); diff --git a/app/src/main/java/com/termux/filepicker/TermuxFileReceiverActivity.java b/app/src/main/java/com/termux/filepicker/TermuxFileReceiverActivity.java index ccee5765..ef600dc0 100644 --- a/app/src/main/java/com/termux/filepicker/TermuxFileReceiverActivity.java +++ b/app/src/main/java/com/termux/filepicker/TermuxFileReceiverActivity.java @@ -9,7 +9,7 @@ import android.provider.OpenableColumns; import android.util.Patterns; import com.termux.R; -import com.termux.shared.interact.DialogUtils; +import com.termux.shared.interact.TextInputDialogUtils; import com.termux.shared.termux.TermuxConstants; import com.termux.shared.termux.TermuxConstants.TERMUX_APP.TERMUX_SERVICE; import com.termux.app.TermuxService; @@ -118,7 +118,7 @@ public class TermuxFileReceiverActivity extends Activity { } void promptNameAndSave(final InputStream in, final String attachmentFileName) { - DialogUtils.textInput(this, R.string.title_file_received, attachmentFileName, R.string.action_file_received_edit, text -> { + TextInputDialogUtils.textInput(this, R.string.title_file_received, attachmentFileName, R.string.action_file_received_edit, text -> { File outFile = saveStreamWithName(in, text); if (outFile == null) return; 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 new file mode 100644 index 00000000..ef713d58 --- /dev/null +++ b/termux-shared/src/main/java/com/termux/shared/interact/MessageDialogUtils.java @@ -0,0 +1,53 @@ +package com.termux.shared.interact; + +import android.app.Activity; +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.TextView; + +import com.termux.shared.R; + +public class MessageDialogUtils { + + /** + * 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 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) { + + AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.Theme_AppCompat_Light_Dialog) + .setPositiveButton(android.R.string.ok, null); + + LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE ); + View view = inflater.inflate(R.layout.dialog_show_message, null); + if (view != null) { + builder.setView(view); + + TextView titleView = view.findViewById(R.id.dialog_title); + if (titleView != null) + titleView.setText(titleText); + + TextView messageView = view.findViewById(R.id.dialog_message); + if (messageView != null) + messageView.setText(messageText); + } + + if (onDismiss != null) + builder.setOnDismissListener(onDismiss); + + builder.show(); + } + + public static void exitAppWithErrorMessage(Context context, String titleText, String messageText) { + showMessage(context, titleText, messageText, dialog -> System.exit(0)); + } + +} diff --git a/termux-shared/src/main/java/com/termux/shared/interact/DialogUtils.java b/termux-shared/src/main/java/com/termux/shared/interact/TextInputDialogUtils.java similarity index 65% rename from termux-shared/src/main/java/com/termux/shared/interact/DialogUtils.java rename to termux-shared/src/main/java/com/termux/shared/interact/TextInputDialogUtils.java index e70c4dcb..7d111d06 100644 --- a/termux-shared/src/main/java/com/termux/shared/interact/DialogUtils.java +++ b/termux-shared/src/main/java/com/termux/shared/interact/TextInputDialogUtils.java @@ -16,7 +16,7 @@ import android.widget.TextView; import com.termux.shared.R; -public final class DialogUtils { +public final class TextInputDialogUtils { public interface TextSetListener { void onTextSet(String text); @@ -75,42 +75,4 @@ public final class DialogUtils { dialogHolder[0].show(); } - /** - * 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 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) { - - AlertDialog.Builder builder = new AlertDialog.Builder(context, R.style.Theme_AppCompat_Light_Dialog) - .setPositiveButton(android.R.string.ok, null); - - LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE ); - View view = inflater.inflate(R.layout.dialog_show_message, null); - if (view != null) { - builder.setView(view); - - TextView titleView = view.findViewById(R.id.dialog_title); - if (titleView != null) - titleView.setText(titleText); - - TextView messageView = view.findViewById(R.id.dialog_message); - if (messageView != null) - messageView.setText(messageText); - } - - if (onDismiss != null) - builder.setOnDismissListener(onDismiss); - - builder.show(); - } - - public static void exitAppWithErrorMessage(Context context, String titleText, String messageText) { - showMessage(context, titleText, messageText, dialog -> System.exit(0)); - } - } diff --git a/termux-shared/src/main/java/com/termux/shared/packages/PackageUtils.java b/termux-shared/src/main/java/com/termux/shared/packages/PackageUtils.java index 054aa5c8..0ef26664 100644 --- a/termux-shared/src/main/java/com/termux/shared/packages/PackageUtils.java +++ b/termux-shared/src/main/java/com/termux/shared/packages/PackageUtils.java @@ -9,7 +9,7 @@ import androidx.annotation.NonNull; import com.termux.shared.R; import com.termux.shared.data.DataUtils; -import com.termux.shared.interact.DialogUtils; +import com.termux.shared.interact.MessageDialogUtils; import com.termux.shared.logger.Logger; import com.termux.shared.termux.TermuxConstants; @@ -55,7 +55,7 @@ public class PackageUtils { String errorMessage = context.getString(R.string.error_get_package_context_failed_message, packageName, TermuxConstants.TERMUX_GITHUB_REPO_URL); Logger.logError(LOG_TAG, errorMessage); - DialogUtils.exitAppWithErrorMessage(context, + MessageDialogUtils.exitAppWithErrorMessage(context, context.getString(R.string.error_get_package_context_failed_title), errorMessage); }