diff options
author | 2012-01-16 22:51:23 -0800 | |
---|---|---|
committer | 2012-01-16 22:51:23 -0800 | |
commit | aed5819a84d0d0500de9e6d8dc6c7fad6f0c4edf (patch) | |
tree | 071965a8f84ead8e673eb4d09f9798a70071aec6 /java/src | |
parent | ddf4166815b9e72fc7fe8091d664f9b12a9cbcad (diff) | |
parent | fbd1ac80838abb47bca25203f05de3a364356f27 (diff) | |
download | latinime-aed5819a84d0d0500de9e6d8dc6c7fad6f0c4edf.tar.gz latinime-aed5819a84d0d0500de9e6d8dc6c7fad6f0c4edf.tar.xz latinime-aed5819a84d0d0500de9e6d8dc6c7fad6f0c4edf.zip |
Merge "Fix a bug where suggestion would restart at a bad time"
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinIME.java | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 02391da9c..32e933064 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -2093,10 +2093,23 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar && !mSettingsValues.isWordSeparator(textAfterCursor.charAt(0))) return; // Bail out if word before cursor is 0-length or a single non letter (like an apostrophe) - // Example: " '|" gets rejected here but "I'|" and "I|" are okay - final CharSequence word = EditingUtils.getWordAtCursor(ic, mSettingsValues.mWordSeparators); + // Example: " -|" gets rejected here but "e-|" and "e|" are okay + CharSequence word = EditingUtils.getWordAtCursor(ic, mSettingsValues.mWordSeparators); + // We don't suggest on leading single quotes, so we have to remove them from the word if + // it starts with single quotes. + while (!TextUtils.isEmpty(word) && Keyboard.CODE_SINGLE_QUOTE == word.charAt(0)) { + word = word.subSequence(1, word.length()); + } if (TextUtils.isEmpty(word)) return; - if (word.length() == 1 && !Character.isLetter(word.charAt(0))) return; + final char firstChar = word.charAt(0); // we just tested that word is not empty + if (word.length() == 1 && !Character.isLetter(firstChar)) return; + + // We only suggest on words that start with a letter or a symbol that is excluded from + // word separators (see #handleCharacterWhileInBatchEdit). + if (!(isAlphabet(firstChar) + || mSettingsValues.isSymbolExcludedFromWordSeparators(firstChar))) { + return; + } // Okay, we are at the end of a word. Restart suggestions. restartSuggestionsOnWordBeforeCursor(ic, word); |