diff --git a/app/src/main/java/eu/faircode/email/AdapterIdentity.java b/app/src/main/java/eu/faircode/email/AdapterIdentity.java
index 0821dcf69c..ee7f02cd6d 100644
--- a/app/src/main/java/eu/faircode/email/AdapterIdentity.java
+++ b/app/src/main/java/eu/faircode/email/AdapterIdentity.java
@@ -241,6 +241,7 @@ public class AdapterIdentity extends RecyclerView.Adapter.
+
+ Copyright 2018-2023 by Marcel Bokhorst (M66B)
+*/
+
+import static android.app.Activity.RESULT_OK;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.os.Bundle;
+import android.view.KeyEvent;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.inputmethod.EditorInfo;
+import android.widget.Button;
+import android.widget.CheckBox;
+import android.widget.EditText;
+import android.widget.ImageButton;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AlertDialog;
+
+public class FragmentDialogAlias extends FragmentDialogBase {
+ @NonNull
+ @Override
+ public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
+ final Context context = getContext();
+ View view = LayoutInflater.from(context).inflate(R.layout.dialog_alias, null);
+ final EditText etName = view.findViewById(R.id.etName);
+ final EditText etEmail = view.findViewById(R.id.etEmail);
+ final ImageButton ibInfo = view.findViewById(R.id.ibInfo);
+
+ Bundle args = getArguments();
+ etName.setText(args.getString("name"));
+ etEmail.setText(args.getString("email"));
+
+ etEmail.setOnEditorActionListener(new TextView.OnEditorActionListener() {
+ @Override
+ public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
+ if (actionId != EditorInfo.IME_ACTION_DONE)
+ return false;
+ AlertDialog dialog = (AlertDialog) getDialog();
+ if (dialog == null)
+ return false;
+ Button btnOk = dialog.getButton(AlertDialog.BUTTON_POSITIVE);
+ if (btnOk == null)
+ return false;
+ btnOk.performClick();
+ return true;
+ }
+ });
+
+ ibInfo.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Helper.viewFAQ(v.getContext(), 9);
+ }
+ });
+
+ return new AlertDialog.Builder(context)
+ .setView(view)
+ .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ args.putString("name", etName.getText().toString());
+ args.putString("email", etEmail.getText().toString());
+
+ new SimpleTask() {
+ @Override
+ protected EntityIdentity onExecute(Context context, Bundle args) throws Throwable {
+ long id = args.getLong("id");
+ String name = args.getString("name");
+ String email = args.getString("email");
+
+ DB db = DB.getInstance(context);
+
+ EntityIdentity identity = db.identity().getIdentity(id);
+ if (identity == null)
+ return null;
+
+ identity.id = null;
+ identity.name = name;
+ identity.email = email;
+ identity.primary = false;
+ identity.sign_key = null;
+ identity.sign_key_alias = null;
+ identity.error = null;
+ identity.last_connected = null;
+ identity.id = db.identity().insertIdentity(identity);
+
+ return identity;
+ }
+
+ @Override
+ protected void onException(Bundle args, Throwable ex) {
+ Log.unexpectedError(getParentFragmentManager(), ex);
+ }
+ }.execute(FragmentDialogAlias.this, args, "create:alias");
+
+ sendResult(RESULT_OK);
+ }
+ })
+ .setNegativeButton(android.R.string.cancel, null)
+ .create();
+ }
+}
diff --git a/app/src/main/res/layout/dialog_alias.xml b/app/src/main/res/layout/dialog_alias.xml
new file mode 100644
index 0000000000..0cd9259895
--- /dev/null
+++ b/app/src/main/res/layout/dialog_alias.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 0ae1c9681f..fe86634776 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1063,6 +1063,7 @@
Never favorite
Edit name
+ Create alias
Create folder
Folder name