From c380f7f68397d76c2bcf7b22fb46db87db8c0a59 Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 2 Oct 2019 13:10:39 +0200 Subject: [PATCH] Process identities per account --- .../main/java/eu/faircode/email/AdapterMessage.java | 8 ++++++-- app/src/main/java/eu/faircode/email/EntityMessage.java | 10 +++++----- .../main/java/eu/faircode/email/FragmentCompose.java | 4 ++-- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 4a891d48fc..a7b2fb34ef 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -2269,8 +2269,12 @@ public class AdapterMessage extends RecyclerView.Adapter>() { @Override protected List onExecute(Context context, Bundle args) { + TupleMessageEx message = (TupleMessageEx) args.getSerializable("message"); + if (message == null) + return null; + DB db = DB.getInstance(context); - return db.identity().getComposableIdentities(null); + return db.identity().getComposableIdentities(message.account); } @Override @@ -2281,7 +2285,7 @@ public class AdapterMessage extends RecyclerView.Adapter'; } - boolean replySelf(List identities) { + boolean replySelf(List identities, long account) { Address[] senders = (reply == null || reply.length == 0 ? from : reply); if (identities != null && senders != null) for (Address sender : senders) for (TupleIdentityEx identity : identities) - if (identity.similarAddress(sender)) + if (identity.account == account && identity.similarAddress(sender)) return true; return false; } - Address[] getAllRecipients(List identities) { + Address[] getAllRecipients(List identities, long account) { List
addresses = new ArrayList<>(); - if (to != null && !replySelf(identities)) + if (to != null && !replySelf(identities, account)) addresses.addAll(Arrays.asList(to)); if (cc != null) @@ -194,7 +194,7 @@ public class EntityMessage implements Serializable { if (identities != null) for (Address address : new ArrayList<>(addresses)) for (TupleIdentityEx identity : identities) - if (identity.similarAddress(address)) + if (identity.account == account && identity.similarAddress(address)) addresses.remove(address); return addresses.toArray(new Address[0]); diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 5423be4839..931c5f43bc 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -2088,7 +2088,7 @@ public class FragmentCompose extends FragmentBase { data.draft.to = ref.receipt_to; else { // Prevent replying to self - if (ref.replySelf(data.identities)) { + if (ref.replySelf(data.identities, ref.account)) { data.draft.from = ref.from; data.draft.to = ref.to; } else { @@ -2098,7 +2098,7 @@ public class FragmentCompose extends FragmentBase { } if ("reply_all".equals(action)) - data.draft.cc = ref.getAllRecipients(data.identities); + data.draft.cc = ref.getAllRecipients(data.identities, ref.account); else if ("receipt".equals(action)) { data.draft.receipt = true; data.draft.receipt_request = false;