diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 9edfaf29ef..77c8114314 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -516,7 +516,7 @@ public class FragmentCompose extends FragmentBase { public void onFocusChange(View v, boolean hasFocus) { if (!hasFocus) try { - updateEncryption((EntityIdentity) spIdentity.getSelectedItem()); + updateEncryption((EntityIdentity) spIdentity.getSelectedItem(), false); } catch (Throwable ex) { Log.e(ex); } @@ -1382,13 +1382,14 @@ public class FragmentCompose extends FragmentBase { }.serial().execute(FragmentCompose.this, args, "compose:contact"); } - private void updateEncryption(EntityIdentity identity) { + private void updateEncryption(EntityIdentity identity, boolean selected) { if (identity == null) return; Bundle args = new Bundle(); args.putLong("id", working); args.putLong("identity", identity.id); + args.putBoolean("selected", selected); args.putString("to", etTo.getText().toString().trim()); args.putString("cc", etCc.getText().toString().trim()); args.putString("bcc", etBcc.getText().toString().trim()); @@ -1398,6 +1399,7 @@ public class FragmentCompose extends FragmentBase { protected Integer onExecute(Context context, Bundle args) { long id = args.getLong("id"); long iid = args.getLong("identity"); + boolean selected = args.getBoolean("selected"); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); boolean sign_default = prefs.getBoolean("sign_default", false); @@ -1441,7 +1443,7 @@ public class FragmentCompose extends FragmentBase { } } - if (!encrypt_auto || draft.ui_encrypt == null) { + if (selected || draft.ui_encrypt == null) { if (encrypt_default || identity.encrypt_default) draft.ui_encrypt = (identity.encrypt == 0 ? EntityMessage.PGP_SIGNENCRYPT @@ -1450,7 +1452,7 @@ public class FragmentCompose extends FragmentBase { draft.ui_encrypt = (identity.encrypt == 0 ? EntityMessage.PGP_SIGNONLY : EntityMessage.SMIME_SIGNONLY); - else + else if (selected) draft.ui_encrypt = null; } @@ -7631,7 +7633,7 @@ public class FragmentCompose extends FragmentBase { if (!Objects.equals(spIdentity.getTag(), position)) { spIdentity.setTag(position); - updateEncryption(identity); + updateEncryption(identity, true); } } @@ -7645,7 +7647,7 @@ public class FragmentCompose extends FragmentBase { setBodyPadding(); - updateEncryption(null); + updateEncryption(null, true); } };