diff --git a/app/src/main/java/eu/faircode/email/EntityMessage.java b/app/src/main/java/eu/faircode/email/EntityMessage.java index 02c6293de2..86d7552645 100644 --- a/app/src/main/java/eu/faircode/email/EntityMessage.java +++ b/app/src/main/java/eu/faircode/email/EntityMessage.java @@ -320,6 +320,8 @@ public class EntityMessage implements Serializable { return MessageHelper.equalDomain(context, reply, from); } + private static String SUBJECT_COUNT = "((\\[\\d+\\])|(\\(\\d+\\)))?"; + static String collapsePrefixes(Context context, String language, String subject, boolean forward) { List> prefixes = new ArrayList<>(); for (String re : Helper.getStrings(context, language, R.string.title_subject_reply, "")) @@ -331,15 +333,13 @@ public class EntityMessage implements Serializable { for (String fwd : Helper.getStrings(context, language, R.string.title_subject_forward_alt, "")) prefixes.add(new Pair<>(fwd.trim().toLowerCase(), true)); - String counts = "((\\[\\d+\\])|(\\(\\d+\\)))?"; - List scanned = new ArrayList<>(); subject = subject.trim(); while (true) { boolean found = false; for (Pair prefix : prefixes) { String pre = prefix.first.endsWith(":") - ? "(^" + Pattern.quote(prefix.first.substring(0, prefix.first.length() - 1)) + counts + ":)" + ? "(^" + Pattern.quote(prefix.first.substring(0, prefix.first.length() - 1)) + SUBJECT_COUNT + ":)" : "(^" + Pattern.quote(prefix.first) + ")"; Pattern p = Pattern.compile(pre + "(\\s*)(.*)", Pattern.CASE_INSENSITIVE); Matcher m = p.matcher(subject);