diff --git a/app/src/main/java/eu/faircode/email/EntityMessage.java b/app/src/main/java/eu/faircode/email/EntityMessage.java index e3fbde52cd..44ca70e4b7 100644 --- a/app/src/main/java/eu/faircode/email/EntityMessage.java +++ b/app/src/main/java/eu/faircode/email/EntityMessage.java @@ -160,10 +160,19 @@ public class EntityMessage implements Serializable { return sb.toString(); } + boolean replySelf(String via) { + Address[] replying = (reply == null || reply.length == 0 ? from : reply); + if (replying == null || replying.length != 1) + return false; + + String recipient = MessageHelper.canonicalAddress(((InternetAddress) replying[0]).getAddress()); + return recipient.equals(via); + } + Address[] getAllRecipients(String via) { List
addresses = new ArrayList<>(); - if (to != null) + if (!replySelf(via) && to != null) addresses.addAll(Arrays.asList(to)); if (cc != null) diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index e3771c0942..13c3192610 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -2050,16 +2050,11 @@ public class FragmentCompose extends FragmentBase { draft.to = ref.receipt_to; else { // Prevent replying to self - String to = null; - Address[] replying = (ref.reply == null || ref.reply.length == 0 ? ref.from : ref.reply); - if (replying != null && replying.length == 1) - to = MessageHelper.canonicalAddress(((InternetAddress) replying[0]).getAddress()); - - if (to != null && to.equals(via)) { + if (ref.replySelf(via)) { draft.to = ref.to; draft.from = ref.from; } else - draft.to = replying; + draft.to = (ref.reply == null || ref.reply.length == 0 ? ref.from : ref.reply); } if ("reply_all".equals(action))