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