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
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user