Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2648035b authored by Qi Wang's avatar Qi Wang
Browse files

Fix a bug in sentence detection when input is too long.

When the unchecked length of the current sentence is too long, the
spell checker should check the first MAX_SENTENCE_LGNTH characters of
the unchecked part. In this case, detectSentenceBOundary should return
[textChangesStart, textChangeStart + MAX_SENTENCE_LENGTH)

Fix: 188875278

Test: manual test
Change-Id: I31847aed2d564f7bc1ff43c83adae3bb7c99c0d1
parent 1d2868c4
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -821,7 +821,7 @@ public class SpellChecker implements SpellCheckerSessionListener {
            // The offset should be rounded up to word boundary.
            int uncheckedLength = sentenceEnd - textChangeStart;
            if (uncheckedLength > MAX_SENTENCE_LENGTH) {
                sentenceEnd = findSeparator(sequence, sentenceStart + MAX_SENTENCE_LENGTH,
                sentenceEnd = findSeparator(sequence, textChangeStart + MAX_SENTENCE_LENGTH,
                        sentenceEnd);
                sentenceStart = roundUpToWordStart(sequence, textChangeStart, sentenceStart);
            } else {
@@ -829,7 +829,7 @@ public class SpellChecker implements SpellCheckerSessionListener {
                        sentenceStart);
            }
        }
        return new Range(sentenceStart, sentenceEnd);
        return new Range<>(sentenceStart, Math.max(sentenceStart, sentenceEnd));
    }

    private int roundUpToWordStart(CharSequence sequence, int position, int frontBoundary) {