From 08e65f60ed6d016f0195910cdeee4959bf3251b1 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 29 Aug 2019 20:24:30 +0200 Subject: [PATCH] Better recognition of complex messages --- .../main/java/eu/faircode/email/HtmlHelper.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/HtmlHelper.java b/app/src/main/java/eu/faircode/email/HtmlHelper.java index c3f7a83eb1..bf3ddf78f4 100644 --- a/app/src/main/java/eu/faircode/email/HtmlHelper.java +++ b/app/src/main/java/eu/faircode/email/HtmlHelper.java @@ -89,6 +89,11 @@ public class HtmlHelper { Executors.newSingleThreadExecutor(Helper.backgroundThreadFactory); static String sanitize(Context context, String html, boolean show_images) { + if (html.length() > MAX_SIZE) { + Log.i("Message size=" + html.length()); + return "" + context.getString(R.string.title_hint_too_complex) + ""; + } + Document parsed = Jsoup.parse(html); // MAX_SIZE || links > MAX_LINKS) { - Log.i("Message size=" + size + " links=" + links); + if (links > MAX_LINKS) { + Log.i("Message links=" + links); return "" + context.getString(R.string.title_hint_too_complex) + ""; } @@ -279,7 +283,7 @@ public class HtmlHelper { @Override public void head(Node node, int depth) { - if (node instanceof TextNode) { + if (alinks < MAX_LINKS && node instanceof TextNode) { TextNode tnode = (TextNode) node; String text = tnode.text(); @@ -305,7 +309,7 @@ public class HtmlHelper { " " + matcher.start() + "..." + matcher.end() + "/" + text.length() + " linked=" + linked + " email=" + email); - if (linked || alinks >= MAX_LINKS) + if (linked) span.appendText(text.substring(pos, matcher.end())); else { span.appendText(text.substring(pos, matcher.start())); @@ -319,7 +323,7 @@ public class HtmlHelper { } pos = matcher.end(); - } while (matcher.find()); + } while (alinks < MAX_LINKS && matcher.find()); span.appendText(text.substring(pos));