diff --git a/app/src/main/java/com/termux/app/DialogUtils.java b/app/src/main/java/com/termux/app/DialogUtils.java
index 97bfbd0e..9bff03dc 100644
--- a/app/src/main/java/com/termux/app/DialogUtils.java
+++ b/app/src/main/java/com/termux/app/DialogUtils.java
@@ -14,7 +14,8 @@ final class DialogUtils {
void onTextSet(String text);
}
- static void textInput(Activity activity, int titleText, int positiveButtonText, String initialText, final TextSetListener onPositive) {
+ static void textInput(Activity activity, int titleText, int positiveButtonText, String initialText, final TextSetListener onPositive,
+ int neutralButtonText, final TextSetListener onNeutral) {
final EditText input = new EditText(activity);
input.setSingleLine();
if (initialText != null) input.setText(initialText);
@@ -31,12 +32,26 @@ final class DialogUtils {
layout.setPadding(paddingTopAndSides, paddingTopAndSides, paddingTopAndSides, paddingBottom);
layout.addView(input);
- new AlertDialog.Builder(activity).setTitle(titleText).setView(layout).setPositiveButton(positiveButtonText, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface d, int whichButton) {
- onPositive.onTextSet(input.getText().toString());
- }
- }).setNegativeButton(android.R.string.cancel, null).show();
+ AlertDialog.Builder builder = new AlertDialog.Builder(activity)
+ .setTitle(titleText).setView(layout)
+ .setPositiveButton(positiveButtonText, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface d, int whichButton) {
+ onPositive.onTextSet(input.getText().toString());
+ }
+ })
+ .setNegativeButton(android.R.string.cancel, null);
+
+ if (onNeutral != null) {
+ builder.setNeutralButton(neutralButtonText, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ onNeutral.onTextSet(input.getText().toString());
+ }
+ });
+ }
+
+ builder.show();
input.requestFocus();
}
diff --git a/app/src/main/java/com/termux/app/TermuxActivity.java b/app/src/main/java/com/termux/app/TermuxActivity.java
index a1e85392..c06eca9b 100644
--- a/app/src/main/java/com/termux/app/TermuxActivity.java
+++ b/app/src/main/java/com/termux/app/TermuxActivity.java
@@ -291,30 +291,19 @@ public final class TermuxActivity extends Activity implements ServiceConnection
@Override
public boolean onLongClick(View v) {
Resources res = getResources();
- new AlertDialog.Builder(TermuxActivity.this).setTitle(R.string.new_session)
- .setItems(new String[] { res.getString(R.string.new_session_normal_unnamed), res.getString(R.string.new_session_normal_named),
- res.getString(R.string.new_session_failsafe) }, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- switch (which) {
- case 0:
- addNewSession(false, null);
- break;
- case 1:
- DialogUtils.textInput(TermuxActivity.this, R.string.session_new_named_title, R.string.session_new_named_positive_button, null,
- new DialogUtils.TextSetListener() {
- @Override
- public void onTextSet(String text) {
- addNewSession(false, text);
- }
- });
- break;
- case 2:
- addNewSession(true, null);
- break;
+ DialogUtils.textInput(TermuxActivity.this, R.string.session_new_named_title, R.string.session_new_named_positive_button, null,
+ new DialogUtils.TextSetListener() {
+ @Override
+ public void onTextSet(String text) {
+ addNewSession(false, text);
+ }
+ }, R.string.new_session_failsafe, new DialogUtils.TextSetListener() {
+ @Override
+ public void onTextSet(String text) {
+ addNewSession(true, text);
}
}
- }).show();
+ );
return true;
}
});
@@ -509,7 +498,7 @@ public final class TermuxActivity extends Activity implements ServiceConnection
public void onTextSet(String text) {
sessionToRename.mSessionName = text;
}
- });
+ }, -1, null);
}
@Override
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index cb505616..333c071b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -3,8 +3,6 @@
Termux
Termux user
New session
- Normal - unnamed
- Normal - named
Failsafe
Keyboard
Reset