From 27a45dcc926ca4728214a86a8779da7115b262e8 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 30 Dec 2024 14:48:12 +0100 Subject: [PATCH] Added select default address extra button --- .../java/eu/faircode/email/ActivitySetup.java | 19 ++++++++-------- .../eu/faircode/email/FragmentCompose.java | 14 +++++++----- .../java/eu/faircode/email/FragmentSetup.java | 22 ++++++++++++++++++- app/src/main/res/layout/fragment_setup.xml | 15 ++++++++++++- 4 files changed, 53 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ActivitySetup.java b/app/src/main/java/eu/faircode/email/ActivitySetup.java index a0cb9b87aa..55028c1a99 100644 --- a/app/src/main/java/eu/faircode/email/ActivitySetup.java +++ b/app/src/main/java/eu/faircode/email/ActivitySetup.java @@ -88,15 +88,16 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac static final int REQUEST_IMPORT_CERTIFICATE = 6; static final int REQUEST_OAUTH = 7; static final int REQUEST_STILL = 8; - static final int REQUEST_SELECT_IDENTITY = 9; - static final int REQUEST_EDIT_SIGNATURE = 10; - static final int REQUEST_CHANGE_PASSWORD = 11; - static final int REQUEST_EDIT_ACCOUNT_COLOR = 12; - static final int REQUEST_DELETE_ACCOUNT = 13; - static final int REQUEST_EDIT_IDENITY_COLOR = 14; - static final int REQUEST_IMPORT_PROVIDERS = 15; - static final int REQUEST_GRAPH_CONTACTS = 16; - static final int REQUEST_GRAPH_CONTACTS_OAUTH = 17; + static final int REQUEST_DEFAULT_IDENTITY = 9; + static final int REQUEST_SELECT_IDENTITY = 10; + static final int REQUEST_EDIT_SIGNATURE = 11; + static final int REQUEST_CHANGE_PASSWORD = 12; + static final int REQUEST_EDIT_ACCOUNT_COLOR = 13; + static final int REQUEST_DELETE_ACCOUNT = 14; + static final int REQUEST_EDIT_IDENITY_COLOR = 15; + static final int REQUEST_IMPORT_PROVIDERS = 16; + static final int REQUEST_GRAPH_CONTACTS = 17; + static final int REQUEST_GRAPH_CONTACTS_OAUTH = 18; static final int REQUEST_DEBUG_INFO = 7000; static final int PI_CONNECTION = 1; diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index f7fcf34e21..847df68974 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -128,6 +128,7 @@ import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; import androidx.lifecycle.Lifecycle; +import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.Observer; import androidx.localbroadcastmanager.content.LocalBroadcastManager; import androidx.preference.PreferenceManager; @@ -3426,7 +3427,7 @@ public class FragmentCompose extends FragmentBase { break; case REQUEST_SELECT_IDENTITY: if (resultCode == RESULT_OK && data != null) - onSelectIdentity(data.getBundleExtra("args")); + onSelectIdentity(getContext(), getViewLifecycleOwner(), getParentFragmentManager(), data.getBundleExtra("args")); break; case REQUEST_PRINT: if (resultCode == RESULT_OK && data != null) @@ -5003,10 +5004,11 @@ public class FragmentCompose extends FragmentBase { }.serial().execute(this, args, "compose:picked"); } - private void onSelectIdentity(Bundle args) { + static void onSelectIdentity(Context context, LifecycleOwner owner, FragmentManager fm, Bundle args) { long id = args.getLong("id"); + Log.i("MMM id="+id); if (id < 0) { - getContext().startActivity(new Intent(getContext(), ActivitySetup.class) + context.startActivity(new Intent(context, ActivitySetup.class) .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK) .putExtra("manual", true) .putExtra("scroll", true)); @@ -5041,14 +5043,14 @@ public class FragmentCompose extends FragmentBase { @Override protected void onExecuted(Bundle args, EntityIdentity identity) { - ToastEx.makeText(getContext(), R.string.title_completed, Toast.LENGTH_LONG).show(); + ToastEx.makeText(context, R.string.title_completed, Toast.LENGTH_LONG).show(); } @Override protected void onException(Bundle args, Throwable ex) { - Log.unexpectedError(getParentFragmentManager(), ex); + Log.unexpectedError(fm, ex); } - }.serial().execute(this, args, "select:identity"); + }.serial().execute(context, owner, args, "select:identity"); } private void onPrint(Bundle args) { diff --git a/app/src/main/java/eu/faircode/email/FragmentSetup.java b/app/src/main/java/eu/faircode/email/FragmentSetup.java index 0b552b161c..8f58ea65ac 100644 --- a/app/src/main/java/eu/faircode/email/FragmentSetup.java +++ b/app/src/main/java/eu/faircode/email/FragmentSetup.java @@ -148,6 +148,7 @@ public class FragmentSetup extends FragmentBase implements SharedPreferences.OnS private CardView cardExtra; private TextView tvExtra; private Button btnNotification; + private Button btnDefaultIdentity; private Button btnSignature; private Button btnReorderAccounts; private Button btnReorderFolders; @@ -244,6 +245,7 @@ public class FragmentSetup extends FragmentBase implements SharedPreferences.OnS cardExtra = view.findViewById(R.id.cardExtra); tvExtra = view.findViewById(R.id.tvExtra); btnNotification = view.findViewById(R.id.btnNotification); + btnDefaultIdentity = view.findViewById(R.id.btnDefaultIdentity); btnSignature = view.findViewById(R.id.btnSignature); btnReorderAccounts = view.findViewById(R.id.btnReorderAccounts); btnReorderFolders = view.findViewById(R.id.btnReorderFolders); @@ -765,13 +767,23 @@ public class FragmentSetup extends FragmentBase implements SharedPreferences.OnS } }); + btnDefaultIdentity.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + FragmentDialogSelectIdentity fragment = new FragmentDialogSelectIdentity(); + fragment.setArguments(new Bundle()); + fragment.setTargetFragment(FragmentSetup.this, ActivitySetup.REQUEST_DEFAULT_IDENTITY); + fragment.show(getParentFragmentManager(), "select:identity:default"); + } + }); + btnSignature.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { FragmentDialogSelectIdentity fragment = new FragmentDialogSelectIdentity(); fragment.setArguments(new Bundle()); fragment.setTargetFragment(FragmentSetup.this, ActivitySetup.REQUEST_SELECT_IDENTITY); - fragment.show(getParentFragmentManager(), "select:identity"); + fragment.show(getParentFragmentManager(), "select:identity:signature"); } }); @@ -1141,6 +1153,10 @@ public class FragmentSetup extends FragmentBase implements SharedPreferences.OnS try { switch (requestCode) { + case ActivitySetup.REQUEST_DEFAULT_IDENTITY: + if (resultCode == RESULT_OK && data != null) + onSelectDefaultIdentity(data.getBundleExtra("args")); + break; case ActivitySetup.REQUEST_SELECT_IDENTITY: if (resultCode == RESULT_OK && data != null) onSelectIdentity(data.getBundleExtra("args")); @@ -1226,6 +1242,10 @@ public class FragmentSetup extends FragmentBase implements SharedPreferences.OnS btnPermissions.setText(all ? R.string.title_setup_manage : R.string.title_setup_grant); } + private void onSelectDefaultIdentity(Bundle args) { + FragmentCompose.onSelectIdentity(getContext(), getViewLifecycleOwner(), getParentFragmentManager(), args); + } + private void onSelectIdentity(Bundle args) { Intent intent = new Intent(getContext(), ActivitySignature.class); intent.putExtra("id", args.getLong("id")); diff --git a/app/src/main/res/layout/fragment_setup.xml b/app/src/main/res/layout/fragment_setup.xml index 59321b7f11..09d226e1d7 100644 --- a/app/src/main/res/layout/fragment_setup.xml +++ b/app/src/main/res/layout/fragment_setup.xml @@ -1111,6 +1111,19 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/btnNotification" /> +