Collect re:s for count

pull/194/merge
M66B 3 years ago
parent 2f1273e725
commit 171d734c83

@ -321,25 +321,42 @@ public class EntityMessage implements Serializable {
} }
static int getReplies(Context context, String language, String subject) { static int getReplies(Context context, String language, String subject) {
boolean found = false; int count = 0;
List<String> res = new ArrayList<>(); List<String> res = new ArrayList<>();
res.addAll(Arrays.asList(Helper.getStrings(context, language, R.string.title_subject_reply, ""))); res.addAll(Arrays.asList(Helper.getStrings(context, language, R.string.title_subject_reply, "")));
res.addAll(Arrays.asList(Helper.getStrings(context, language, R.string.title_subject_reply_alt, ""))); res.addAll(Arrays.asList(Helper.getStrings(context, language, R.string.title_subject_reply_alt, "")));
for (String re : res) {
Matcher m = getPattern(re.trim()).matcher(subject); subject = subject.trim();
if (m.matches()) { while (true) {
found = true; boolean found = false;
if (re.trim().endsWith(":")) for (String re : res) {
try { Matcher m = getPattern(re.trim()).matcher(subject);
String n = m.group(2); if (m.matches()) {
if (n != null) found = true;
return Integer.parseInt(n.substring(1, n.length() - 1)); subject = m.group(m.groupCount()).trim();
} catch (NumberFormatException ex) {
Log.e(ex); if (re.trim().endsWith(":"))
} try {
String n = m.group(2);
if (n == null)
count++;
else
count += Integer.parseInt(n.substring(1, n.length() - 1));
} catch (NumberFormatException ex) {
Log.e(ex);
count++;
}
else
count++;
break;
}
} }
if (!found)
break;
} }
return (found ? 1 : 0); return count;
} }
static String collapsePrefixes(Context context, String language, String subject, boolean forward) { static String collapsePrefixes(Context context, String language, String subject, boolean forward) {
@ -361,10 +378,12 @@ public class EntityMessage implements Serializable {
Matcher m = getPattern(prefix.first.trim()).matcher(subject); Matcher m = getPattern(prefix.first.trim()).matcher(subject);
if (m.matches()) { if (m.matches()) {
found = true; found = true;
subject = m.group(m.groupCount()).trim();
int count = scanned.size(); int count = scanned.size();
if (!prefix.second.equals(count == 0 ? forward : scanned.get(count - 1))) if (!prefix.second.equals(count == 0 ? forward : scanned.get(count - 1)))
scanned.add(prefix.second); scanned.add(prefix.second);
subject = m.group(m.groupCount());
break; break;
} }
} }

Loading…
Cancel
Save