From 2cc701f481f859d02b6a42fd4668cc5a58a13c2d Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 29 Sep 2019 11:58:51 +0200 Subject: [PATCH] Default identity selection --- .../eu/faircode/email/FragmentMessages.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index f90ae747c8..db23242d5b 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -759,7 +759,11 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. .putExtra("account", account) ); else { + Bundle args = new Bundle(); + args.putLong("account", account); + FragmentDialogIdentity fragment = new FragmentDialogIdentity(); + fragment.setArguments(args); fragment.show(getFragmentManager(), "messages:identities"); } } @@ -4690,6 +4694,23 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. AdapterIdentitySelect iadapter = new AdapterIdentitySelect(getContext(), identities); spIdentity.setAdapter(iadapter); + Integer fallback = null; + long account = getArguments().getLong("account"); + for (int pos = 0; pos < identities.size(); pos++) { + EntityIdentity identity = identities.get(pos); + if (identity.account.equals(account)) { + if (identity.primary) { + fallback = null; + spIdentity.setSelection(pos); + break; + } + if (fallback == null) + fallback = pos; + } + } + if (fallback != null) + spIdentity.setSelection(fallback); + grpIdentities.setVisibility(identities.size() > 0 ? View.VISIBLE : View.GONE); grpNoIdentities.setVisibility(identities.size() > 0 ? View.GONE : View.VISIBLE); }