From e78a63314c36549a71554c049b50a70b1bd7088e Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 10 Jan 2022 08:12:51 +0100 Subject: [PATCH] Skip matching text in encrypted messages --- app/src/main/java/eu/faircode/email/Core.java | 10 +++++----- app/src/main/java/eu/faircode/email/EntityRule.java | 11 ++++++++--- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index b5bff4ace8..0a5b532e50 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -2859,7 +2859,7 @@ class Core { // No MX check // No blocklist - boolean needsHeaders = EntityRule.needsHeaders(rules); + boolean needsHeaders = EntityRule.needsHeaders(message, rules); List
headers = (needsHeaders ? helper.getAllHeaders() : null); String body = parts.getHtml(context); @@ -3922,8 +3922,8 @@ class Core { } } - boolean needsHeaders = EntityRule.needsHeaders(rules); - boolean needsBody = EntityRule.needsBody(rules); + boolean needsHeaders = EntityRule.needsHeaders(message, rules); + boolean needsBody = EntityRule.needsBody(message, rules); if (needsHeaders || needsBody) Log.i(folder.name + " needs headers=" + needsHeaders + " body=" + needsBody); List
headers = (needsHeaders ? helper.getAllHeaders() : null); @@ -4188,8 +4188,8 @@ class Core { } if (update || process) { - boolean needsHeaders = EntityRule.needsHeaders(rules); - boolean needsBody = EntityRule.needsBody(rules); + boolean needsHeaders = EntityRule.needsHeaders(message, rules); + boolean needsBody = EntityRule.needsBody(message, rules); if (needsHeaders || needsBody) Log.i(folder.name + " needs headers=" + needsHeaders + " body=" + needsBody); List
headers = (needsHeaders ? helper.getAllHeaders() : null); diff --git a/app/src/main/java/eu/faircode/email/EntityRule.java b/app/src/main/java/eu/faircode/email/EntityRule.java index 18b8916e8f..c823d9d544 100644 --- a/app/src/main/java/eu/faircode/email/EntityRule.java +++ b/app/src/main/java/eu/faircode/email/EntityRule.java @@ -125,11 +125,13 @@ public class EntityRule { private static ExecutorService executor = Helper.getBackgroundExecutor(1, "rule"); - static boolean needsHeaders(List rules) { + static boolean needsHeaders(EntityMessage message, List rules) { return needs(rules, "header"); } - static boolean needsBody(List rules) { + static boolean needsBody(EntityMessage message, List rules) { + if (message.encrypt != null && !EntityMessage.ENCRYPT_NONE.equals(message.encrypt)) + return false; return needs(rules, "body"); } @@ -334,7 +336,10 @@ public class EntityRule { } // Body - JSONObject jbody = jcondition.optJSONObject("body"); + JSONObject jbody = null; + if (message.encrypt == null || + EntityMessage.ENCRYPT_NONE.equals(message.encrypt)) + jbody = jcondition.optJSONObject("body"); if (jbody != null) { String value = jbody.getString("value"); boolean regex = jbody.getBoolean("regex");