diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index dc700afaf0..e78a5c08ec 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -71,6 +71,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.nio.charset.Charset; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.Date; @@ -748,8 +749,24 @@ public class FragmentCompose extends FragmentEx { draft.replying = ref.id; draft.to = (ref.reply == null || ref.reply.length == 0 ? ref.from : ref.reply); draft.from = ref.to; - if ("reply_all".equals(action)) - draft.cc = ref.cc; + + if ("reply_all".equals(action)) { + List
addresses = new ArrayList<>(); + if (ref.to != null) + addresses.addAll(Arrays.asList(ref.to)); + if (ref.cc != null) + addresses.addAll(Arrays.asList(ref.cc)); + List identities = db.identity().getIdentities(); + for (Address address : new ArrayList<>(addresses)) { + String cc = Helper.canonicalAddress(((InternetAddress) address).getAddress()); + for (EntityIdentity identity : identities) { + String email = Helper.canonicalAddress(identity.email); + if (cc.equals(email)) + addresses.remove(address); + } + } + draft.cc = addresses.toArray(new Address[0]); + } } else if ("forward".equals(action)) { //msg.replying = ref.id; diff --git a/app/src/main/java/eu/faircode/email/FragmentMessage.java b/app/src/main/java/eu/faircode/email/FragmentMessage.java index 2206bf64f6..6087d0823c 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessage.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessage.java @@ -574,7 +574,7 @@ public class FragmentMessage extends FragmentEx { menu.findItem(R.id.menu_show_headers).setChecked(headers); menu.findItem(R.id.menu_show_headers).setEnabled(message.uid != null); menu.findItem(R.id.menu_show_headers).setVisible(!free); - menu.findItem(R.id.menu_reply_all).setVisible(message.cc != null && !inOutbox); + menu.findItem(R.id.menu_reply_all).setVisible(!inOutbox); menu.findItem(R.id.menu_decrypt).setVisible(!inOutbox); }