mirror of
https://github.com/fankes/termux-app.git
synced 2025-09-07 03:05:18 +08:00
Divide dialog utils
This commit is contained in:
@@ -45,7 +45,7 @@ import com.termux.app.terminal.TermuxTerminalSessionClient;
|
|||||||
import com.termux.app.terminal.TermuxTerminalViewClient;
|
import com.termux.app.terminal.TermuxTerminalViewClient;
|
||||||
import com.termux.app.terminal.io.extrakeys.ExtraKeysView;
|
import com.termux.app.terminal.io.extrakeys.ExtraKeysView;
|
||||||
import com.termux.app.settings.properties.TermuxAppSharedProperties;
|
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.logger.Logger;
|
||||||
import com.termux.shared.termux.TermuxUtils;
|
import com.termux.shared.termux.TermuxUtils;
|
||||||
import com.termux.terminal.TerminalSession;
|
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);
|
View newSessionButton = findViewById(R.id.new_session_button);
|
||||||
newSessionButton.setOnClickListener(v -> mTermuxTerminalSessionClient.addNewSession(false, null));
|
newSessionButton.setOnClickListener(v -> mTermuxTerminalSessionClient.addNewSession(false, null));
|
||||||
newSessionButton.setOnLongClickListener(v -> {
|
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_create_named_session_confirm, text -> mTermuxTerminalSessionClient.addNewSession(false, text),
|
||||||
R.string.action_new_session_failsafe, text -> mTermuxTerminalSessionClient.addNewSession(true, text),
|
R.string.action_new_session_failsafe, text -> mTermuxTerminalSessionClient.addNewSession(true, text),
|
||||||
-1, null, null);
|
-1, null, null);
|
||||||
|
@@ -13,7 +13,7 @@ import android.view.WindowManager;
|
|||||||
import com.termux.R;
|
import com.termux.R;
|
||||||
import com.termux.app.utils.CrashUtils;
|
import com.termux.app.utils.CrashUtils;
|
||||||
import com.termux.shared.file.FileUtils;
|
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.logger.Logger;
|
||||||
import com.termux.shared.models.errors.Error;
|
import com.termux.shared.models.errors.Error;
|
||||||
import com.termux.shared.termux.TermuxConstants;
|
import com.termux.shared.termux.TermuxConstants;
|
||||||
@@ -60,7 +60,7 @@ final class TermuxInstaller {
|
|||||||
if (!isPrimaryUser) {
|
if (!isPrimaryUser) {
|
||||||
String bootstrapErrorMessage = activity.getString(R.string.bootstrap_error_not_primary_user_message, TermuxConstants.TERMUX_PREFIX_DIR_PATH);
|
String bootstrapErrorMessage = activity.getString(R.string.bootstrap_error_not_primary_user_message, TermuxConstants.TERMUX_PREFIX_DIR_PATH);
|
||||||
Logger.logError(LOG_TAG, bootstrapErrorMessage);
|
Logger.logError(LOG_TAG, bootstrapErrorMessage);
|
||||||
DialogUtils.exitAppWithErrorMessage(activity,
|
MessageDialogUtils.exitAppWithErrorMessage(activity,
|
||||||
activity.getString(R.string.bootstrap_error_title),
|
activity.getString(R.string.bootstrap_error_title),
|
||||||
bootstrapErrorMessage);
|
bootstrapErrorMessage);
|
||||||
return;
|
return;
|
||||||
|
@@ -14,7 +14,7 @@ import android.widget.ListView;
|
|||||||
|
|
||||||
import com.termux.R;
|
import com.termux.R;
|
||||||
import com.termux.shared.shell.TermuxSession;
|
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.app.TermuxActivity;
|
||||||
import com.termux.shared.terminal.TermuxTerminalSessionClientBase;
|
import com.termux.shared.terminal.TermuxTerminalSessionClientBase;
|
||||||
import com.termux.shared.termux.TermuxConstants;
|
import com.termux.shared.termux.TermuxConstants;
|
||||||
@@ -301,7 +301,7 @@ public class TermuxTerminalSessionClient extends TermuxTerminalSessionClientBase
|
|||||||
public void renameSession(final TerminalSession sessionToRename) {
|
public void renameSession(final TerminalSession sessionToRename) {
|
||||||
if (sessionToRename == null) return;
|
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;
|
sessionToRename.mSessionName = text;
|
||||||
termuxSessionListNotifyUpdated();
|
termuxSessionListNotifyUpdated();
|
||||||
}, -1, null, -1, null, null);
|
}, -1, null, -1, null, null);
|
||||||
|
@@ -9,7 +9,7 @@ import android.provider.OpenableColumns;
|
|||||||
import android.util.Patterns;
|
import android.util.Patterns;
|
||||||
|
|
||||||
import com.termux.R;
|
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;
|
||||||
import com.termux.shared.termux.TermuxConstants.TERMUX_APP.TERMUX_SERVICE;
|
import com.termux.shared.termux.TermuxConstants.TERMUX_APP.TERMUX_SERVICE;
|
||||||
import com.termux.app.TermuxService;
|
import com.termux.app.TermuxService;
|
||||||
@@ -118,7 +118,7 @@ public class TermuxFileReceiverActivity extends Activity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void promptNameAndSave(final InputStream in, final String attachmentFileName) {
|
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);
|
File outFile = saveStreamWithName(in, text);
|
||||||
if (outFile == null) return;
|
if (outFile == null) return;
|
||||||
|
|
||||||
|
@@ -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));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -16,7 +16,7 @@ import android.widget.TextView;
|
|||||||
|
|
||||||
import com.termux.shared.R;
|
import com.termux.shared.R;
|
||||||
|
|
||||||
public final class DialogUtils {
|
public final class TextInputDialogUtils {
|
||||||
|
|
||||||
public interface TextSetListener {
|
public interface TextSetListener {
|
||||||
void onTextSet(String text);
|
void onTextSet(String text);
|
||||||
@@ -75,42 +75,4 @@ public final class DialogUtils {
|
|||||||
dialogHolder[0].show();
|
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));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
@@ -9,7 +9,7 @@ import androidx.annotation.NonNull;
|
|||||||
|
|
||||||
import com.termux.shared.R;
|
import com.termux.shared.R;
|
||||||
import com.termux.shared.data.DataUtils;
|
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.logger.Logger;
|
||||||
import com.termux.shared.termux.TermuxConstants;
|
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,
|
String errorMessage = context.getString(R.string.error_get_package_context_failed_message,
|
||||||
packageName, TermuxConstants.TERMUX_GITHUB_REPO_URL);
|
packageName, TermuxConstants.TERMUX_GITHUB_REPO_URL);
|
||||||
Logger.logError(LOG_TAG, errorMessage);
|
Logger.logError(LOG_TAG, errorMessage);
|
||||||
DialogUtils.exitAppWithErrorMessage(context,
|
MessageDialogUtils.exitAppWithErrorMessage(context,
|
||||||
context.getString(R.string.error_get_package_context_failed_title),
|
context.getString(R.string.error_get_package_context_failed_title),
|
||||||
errorMessage);
|
errorMessage);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user