diff --git a/app/src/main/java/me/impy/aegis/ui/Dialogs.java b/app/src/main/java/me/impy/aegis/ui/Dialogs.java index eada67fa..056ee5ac 100644 --- a/app/src/main/java/me/impy/aegis/ui/Dialogs.java +++ b/app/src/main/java/me/impy/aegis/ui/Dialogs.java @@ -58,12 +58,8 @@ public class Dialogs { showSecureDialog(new AlertDialog.Builder(context) .setTitle(titleId) .setView(input) - .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - listener.onTextInputResult(input.getText().toString()); - } - }) + .setPositiveButton(android.R.string.ok, (dialog, which) -> + listener.onTextInputResult(input.getText().toString())) .create()); } @@ -141,6 +137,20 @@ public class Dialogs { showSecureDialog(dialog); } + public static void showCreateNewGroupDialog(Activity activity, TextInputListener listener) { + View view = activity.getLayoutInflater().inflate(R.layout.dialog_newgroup, null); + EditText groupName = view.findViewById(R.id.text_groupname); + + AlertDialog dialog = new AlertDialog.Builder(activity) + .setTitle(R.string.set_password) + .setView(view) + .setPositiveButton(android.R.string.ok, (dialog1, which) -> + listener.onTextInputResult(groupName.getText().toString())) + .create(); + + showSecureDialog(dialog); + } + public static void showFingerprintDialog(Activity activity, Dialogs.SlotListener listener) { View view = activity.getLayoutInflater().inflate(R.layout.dialog_fingerprint, null); TextView textFingerprint = view.findViewById(R.id.text_fingerprint); diff --git a/app/src/main/java/me/impy/aegis/ui/EditEntryActivity.java b/app/src/main/java/me/impy/aegis/ui/EditEntryActivity.java index 95e81850..a7b4e30f 100644 --- a/app/src/main/java/me/impy/aegis/ui/EditEntryActivity.java +++ b/app/src/main/java/me/impy/aegis/ui/EditEntryActivity.java @@ -219,18 +219,15 @@ public class EditEntryActivity extends AegisActivity { @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { if (position == _spinnerGroupList.size() - 1) { - Dialogs.showTextInputDialog(activity, R.string.enter_group_name, new Dialogs.TextInputListener() { - @Override - public void onTextInputResult(String text) { - if (text.isEmpty()) { - return; - } - _groups.add(text); - // reset the selection to "No group" to work around a quirk - _spinnerGroup.setSelection(0, false); - updateGroupSpinnerList(); - _spinnerGroup.setSelection(_spinnerGroupList.indexOf(text), false); + Dialogs.showCreateNewGroupDialog(activity, text -> { + if (text.isEmpty()) { + return; } + _groups.add(text); + // reset the selection to "No group" to work around a quirk + _spinnerGroup.setSelection(0, false); + updateGroupSpinnerList(); + _spinnerGroup.setSelection(_spinnerGroupList.indexOf(text), false); }); _spinnerGroup.setSelection(prevPosition, false); } else { diff --git a/app/src/main/res/layout/dialog_newgroup.xml b/app/src/main/res/layout/dialog_newgroup.xml new file mode 100644 index 00000000..2aefb394 --- /dev/null +++ b/app/src/main/res/layout/dialog_newgroup.xml @@ -0,0 +1,14 @@ + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 52425727..47f46827 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -139,6 +139,7 @@ All Name No group - New group + New group... Enter a group name + Group name