diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index e1fcf178cf..d328aa7731 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -2163,7 +2163,7 @@ class Core { message.ui_ignored = false; message.ui_browsed = false; - if (MessageHelper.equal(message.submitter, message.from)) + if (MessageHelper.equalEmail(message.submitter, message.from)) message.submitter = null; if (message.size == null && message.total != null) @@ -2863,7 +2863,7 @@ class Core { if (message.flagged) message.color = color; - if (MessageHelper.equal(message.submitter, message.from)) + if (MessageHelper.equalEmail(message.submitter, message.from)) message.submitter = null; // Borrow reply name from sender name diff --git a/app/src/main/java/eu/faircode/email/MessageHelper.java b/app/src/main/java/eu/faircode/email/MessageHelper.java index 9eaefbcc2c..7a451066e8 100644 --- a/app/src/main/java/eu/faircode/email/MessageHelper.java +++ b/app/src/main/java/eu/faircode/email/MessageHelper.java @@ -2707,6 +2707,23 @@ public class MessageHelper { return Objects.equals(email1, email2); } + static boolean equalEmail(Address[] a1, Address[] a2) { + if (a1 == null && a2 == null) + return true; + + if (a1 == null || a2 == null) + return false; + + if (a1.length != a2.length) + return false; + + for (int i = 0; i < a1.length; i++) + if (!equalEmail(a1[i], a2[i])) + return false; + + return true; + } + static boolean equal(Address[] a1, Address[] a2) { if (a1 == null && a2 == null) return true;