aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2012-01-16 22:53:17 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2012-01-16 22:53:17 -0800
commita8843c746558bac4621c35fa65e19249787c69f6 (patch)
tree071965a8f84ead8e673eb4d09f9798a70071aec6
parent76916e94b508b7966191754e15a3e4156ce7a20d (diff)
parentaed5819a84d0d0500de9e6d8dc6c7fad6f0c4edf (diff)
downloadlatinime-a8843c746558bac4621c35fa65e19249787c69f6.tar.gz
latinime-a8843c746558bac4621c35fa65e19249787c69f6.tar.xz
latinime-a8843c746558bac4621c35fa65e19249787c69f6.zip
am aed5819a: Merge "Fix a bug where suggestion would restart at a bad time"
* commit 'aed5819a84d0d0500de9e6d8dc6c7fad6f0c4edf': Fix a bug where suggestion would restart at a bad time
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java19
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);