diff --git a/app/src/main/java/eu/faircode/email/MessageClassifier.java b/app/src/main/java/eu/faircode/email/MessageClassifier.java index 7602295411..0da2dcce13 100644 --- a/app/src/main/java/eu/faircode/email/MessageClassifier.java +++ b/app/src/main/java/eu/faircode/email/MessageClassifier.java @@ -54,6 +54,8 @@ public class MessageClassifier { private static final Map> classMessages = new HashMap<>(); private static final Map>> wordClassFrequency = new HashMap<>(); + private static final int MAX_WORDS = 1000; + static void classify(EntityMessage message, EntityFolder folder, EntityFolder target, Context context) { try { if (!isEnabled(context)) @@ -184,6 +186,8 @@ public class MessageClassifier { for (int end = boundary.next(); end != java.text.BreakIterator.DONE; end = boundary.next()) { String word = text.substring(start, end); processWord(account, added, word, state); + if (state.words.size() >= MAX_WORDS) + break; start = end; } } else { @@ -194,6 +198,8 @@ public class MessageClassifier { for (int end = boundary.next(); end != android.icu.text.BreakIterator.DONE; end = boundary.next()) { String word = text.substring(start, end); processWord(account, added, word, state); + if (state.words.size() >= MAX_WORDS) + break; start = end; } }