am 8ece858f: am 02366924: am a3e8bd63: Merge "Defer spelling correction with apostrophe" into lmp-dev
* commit '8ece858ff57cbb80a99d1c4d440748c72e690b1e':
Defer spelling correction with apostrophe
diff --git a/core/java/android/widget/SpellChecker.java b/core/java/android/widget/SpellChecker.java
index f64177d..3592687 100644
--- a/core/java/android/widget/SpellChecker.java
+++ b/core/java/android/widget/SpellChecker.java
@@ -276,13 +276,19 @@
// Do not check this word if the user is currently editing it
final boolean isEditing;
+
+ // Defer spell check when typing a word with an interior apostrophe.
+ // TODO: a better solution to this would be to make the word
+ // iterator locale-sensitive and include the apostrophe in
+ // languages that use it (such as English).
+ final boolean apostrophe = (selectionStart == end + 1 && editable.charAt(end) == '\'');
if (mIsSentenceSpellCheckSupported) {
// Allow the overlap of the cursor and the first boundary of the spell check span
// no to skip the spell check of the following word because the
// following word will never be spell-checked even if the user finishes composing
- isEditing = selectionEnd <= start || selectionStart > end;
+ isEditing = !apostrophe && (selectionEnd <= start || selectionStart > end);
} else {
- isEditing = selectionEnd < start || selectionStart > end;
+ isEditing = !apostrophe && (selectionEnd < start || selectionStart > end);
}
if (start >= 0 && end > start && isEditing) {
spellCheckSpan.setSpellCheckInProgress(true);