fixed IndexOutOfBounds when rendering quotes

This commit is contained in:
Daniel Gultsch 2021-10-31 10:20:34 +01:00
parent 226eb739bd
commit ba4a47204b
2 changed files with 24 additions and 26 deletions

View file

@ -370,9 +370,7 @@ public class MessageAdapter extends ArrayAdapter<Message> {
char current = body.length() > i ? body.charAt(i) : '\n'; char current = body.length() > i ? body.charAt(i) : '\n';
if (lineStart == -1) { if (lineStart == -1) {
if (previous == '\n') { if (previous == '\n') {
if ( if (i < body.length() && QuoteHelper.isPositionQuoteStart(body, i)) {
QuoteHelper.isPositionQuoteStart(body, i)
) {
// Line start with quote // Line start with quote
lineStart = i; lineStart = i;
if (quoteStart == -1) quoteStart = i; if (quoteStart == -1) quoteStart = i;

View file

@ -38,13 +38,13 @@ public class QuoteHelper {
} }
// 'Prequote' means anything we require or can accept in front of a QuoteChar // 'Prequote' means anything we require or can accept in front of a QuoteChar
public static boolean isPositionPrecededByPrequote(CharSequence body, int pos){ public static boolean isPositionPrecededByPreQuote(CharSequence body, int pos) {
return UIHelper.isPositionPrecededByLineStart(body, pos); return UIHelper.isPositionPrecededByLineStart(body, pos);
} }
public static boolean isPositionQuoteStart(CharSequence body, int pos) { public static boolean isPositionQuoteStart(CharSequence body, int pos) {
return (isPositionQuoteCharacter(body, pos) return (isPositionQuoteCharacter(body, pos)
&& isPositionPrecededByPrequote(body, pos) && isPositionPrecededByPreQuote(body, pos)
&& (UIHelper.isPositionFollowedByQuoteableCharacter(body, pos) && (UIHelper.isPositionFollowedByQuoteableCharacter(body, pos)
|| isPositionFollowedByQuoteChar(body, pos))); || isPositionFollowedByQuoteChar(body, pos)));
} }