From aab3de3dd2305bb77f028fc54958b7a15670bcec Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 28 Apr 2024 19:49:22 +0200 Subject: [PATCH] Skip storing no-reply addresses --- .../java/eu/faircode/email/EntityContact.java | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/EntityContact.java b/app/src/main/java/eu/faircode/email/EntityContact.java index cdbfdecfd8..4bfcf53f40 100644 --- a/app/src/main/java/eu/faircode/email/EntityContact.java +++ b/app/src/main/java/eu/faircode/email/EntityContact.java @@ -39,7 +39,6 @@ import org.json.JSONObject; import java.io.Serializable; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -156,21 +155,32 @@ public class EntityContact implements Serializable { if (type == TYPE_FROM) { if (message.reply == null || message.reply.length == 0) { if (message.from != null) - addresses.addAll(Arrays.asList(message.from)); + addresses.addAll(filterAddresses(message.from)); } else - addresses.addAll(Arrays.asList(message.reply)); + addresses.addAll(filterAddresses(message.reply)); } else if (type == TYPE_TO) { if (message.to != null) - addresses.addAll(Arrays.asList(message.to)); + addresses.addAll(filterAddresses(message.to)); if (message.cc != null) - addresses.addAll(Arrays.asList(message.cc)); + addresses.addAll(filterAddresses(message.cc)); if (message.bcc != null) - addresses.addAll(Arrays.asList(message.bcc)); + addresses.addAll(filterAddresses(message.bcc)); } update(context, folder.account, message.identity, addresses.toArray(new Address[0]), type, message.received); } + private static List
filterAddresses(Address[] addresses) { + List
result = new ArrayList<>(); + + if (addresses != null) + for (Address address : addresses) + if (!MessageHelper.isNoReply(address)) + result.add(address); + + return result; + } + public static void update(Context context, long account, Long identity, Address[] addresses, int type, long time) { update(context, account, identity, addresses, null, type, time); }