Simplify long press on new session button

This commit is contained in:
Fredrik Fornwall
2016-01-13 03:18:22 +01:00
parent 0c13ea1bd4
commit fe4365c94b
3 changed files with 34 additions and 32 deletions

View File

@@ -14,7 +14,8 @@ final class DialogUtils {
void onTextSet(String text); 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); final EditText input = new EditText(activity);
input.setSingleLine(); input.setSingleLine();
if (initialText != null) input.setText(initialText); if (initialText != null) input.setText(initialText);
@@ -31,12 +32,26 @@ final class DialogUtils {
layout.setPadding(paddingTopAndSides, paddingTopAndSides, paddingTopAndSides, paddingBottom); layout.setPadding(paddingTopAndSides, paddingTopAndSides, paddingTopAndSides, paddingBottom);
layout.addView(input); layout.addView(input);
new AlertDialog.Builder(activity).setTitle(titleText).setView(layout).setPositiveButton(positiveButtonText, new DialogInterface.OnClickListener() { AlertDialog.Builder builder = new AlertDialog.Builder(activity)
.setTitle(titleText).setView(layout)
.setPositiveButton(positiveButtonText, new DialogInterface.OnClickListener() {
@Override @Override
public void onClick(DialogInterface d, int whichButton) { public void onClick(DialogInterface d, int whichButton) {
onPositive.onTextSet(input.getText().toString()); onPositive.onTextSet(input.getText().toString());
} }
}).setNegativeButton(android.R.string.cancel, null).show(); })
.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(); input.requestFocus();
} }

View File

@@ -291,30 +291,19 @@ public final class TermuxActivity extends Activity implements ServiceConnection
@Override @Override
public boolean onLongClick(View v) { public boolean onLongClick(View v) {
Resources res = getResources(); 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, DialogUtils.textInput(TermuxActivity.this, R.string.session_new_named_title, R.string.session_new_named_positive_button, null,
new DialogUtils.TextSetListener() { new DialogUtils.TextSetListener() {
@Override @Override
public void onTextSet(String text) { public void onTextSet(String text) {
addNewSession(false, text); addNewSession(false, text);
} }
}); }, R.string.new_session_failsafe, new DialogUtils.TextSetListener() {
break; @Override
case 2: public void onTextSet(String text) {
addNewSession(true, null); addNewSession(true, text);
break;
} }
} }
}).show(); );
return true; return true;
} }
}); });
@@ -509,7 +498,7 @@ public final class TermuxActivity extends Activity implements ServiceConnection
public void onTextSet(String text) { public void onTextSet(String text) {
sessionToRename.mSessionName = text; sessionToRename.mSessionName = text;
} }
}); }, -1, null);
} }
@Override @Override

View File

@@ -3,8 +3,6 @@
<string name="application_name">Termux</string> <string name="application_name">Termux</string>
<string name="shared_user_label">Termux user</string> <string name="shared_user_label">Termux user</string>
<string name="new_session">New session</string> <string name="new_session">New session</string>
<string name="new_session_normal_unnamed">Normal - unnamed</string>
<string name="new_session_normal_named">Normal - named</string>
<string name="new_session_failsafe">Failsafe</string> <string name="new_session_failsafe">Failsafe</string>
<string name="toggle_soft_keyboard">Keyboard</string> <string name="toggle_soft_keyboard">Keyboard</string>
<string name="reset_terminal">Reset</string> <string name="reset_terminal">Reset</string>