summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Qi Wang <zakwang@google.com> 2021-05-21 17:37:00 +0800
committer Qi Wang <zakwang@google.com> 2021-05-21 17:58:31 +0800
commit2648035bda58b95dfe6c9c01da2c47027aac0f1d (patch)
treee8135c734d45eda0e3433d8ea0df515ee7e1a84a
parent1d2868c45b52c68ef28b3a84b13dcc7347461c7f (diff)
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
-rw-r--r--core/java/android/widget/SpellChecker.java4
1 files changed, 2 insertions, 2 deletions
diff --git a/core/java/android/widget/SpellChecker.java b/core/java/android/widget/SpellChecker.java
index 7c04b1cc195b..2280d7cfd11c 100644
--- a/core/java/android/widget/SpellChecker.java
+++ b/core/java/android/widget/SpellChecker.java
@@ -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) {