From e241522132b116641f19b041e98b50250581e427 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 19 Sep 2022 15:35:26 +0200 Subject: [PATCH] Refactoring --- app/src/main/java/eu/faircode/email/Core.java | 17 +--------------- .../java/eu/faircode/email/EntityMessage.java | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index 491fe6355f..5e3e7735b3 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -4308,27 +4308,12 @@ class Core { boolean check_blocklist = prefs.getBoolean("check_blocklist", false); if (check_blocklist) { - boolean notJunk = false; - if (message.from != null) - for (Address from : message.from) { - String email = ((InternetAddress) from).getAddress(); - if (TextUtils.isEmpty(email)) - continue; - EntityContact contact = db.contact().getContact(message.account, EntityContact.TYPE_NO_JUNK, email); - if (contact != null) { - contact.times_contacted++; - contact.last_contacted = new Date().getTime(); - db.contact().updateContact(contact); - notJunk = true; - } - } - if (!have && !EntityFolder.isOutgoing(folder.type) && !EntityFolder.ARCHIVE.equals(folder.type) && !EntityFolder.TRASH.equals(folder.type) && !EntityFolder.JUNK.equals(folder.type) && - !notJunk && + !message.isNotJunk(context) && !Arrays.asList(message.keywords).contains(MessageHelper.FLAG_NOT_JUNK)) try { message.blocklist = DnsBlockList.isJunk(context, diff --git a/app/src/main/java/eu/faircode/email/EntityMessage.java b/app/src/main/java/eu/faircode/email/EntityMessage.java index cf51d27d59..cfc8df6ada 100644 --- a/app/src/main/java/eu/faircode/email/EntityMessage.java +++ b/app/src/main/java/eu/faircode/email/EntityMessage.java @@ -373,6 +373,26 @@ public class EntityMessage implements Serializable { !EntityMessage.SMIME_SIGNENCRYPT.equals(encrypt)); } + boolean isNotJunk(Context context) { + DB db = DB.getInstance(context); + + boolean notJunk = false; + for (Address sender : from) { + String email = ((InternetAddress) sender).getAddress(); + if (TextUtils.isEmpty(email)) + continue; + + EntityContact contact = db.contact().getContact(account, EntityContact.TYPE_NO_JUNK, email); + if (contact != null) { + contact.times_contacted++; + contact.last_contacted = new Date().getTime(); + db.contact().updateContact(contact); + notJunk = true; + } + } + return notJunk; + } + String[] checkFromDomain(Context context) { return MessageHelper.equalRootDomain(context, from, smtp_from); }