diff options
author | 2011-01-20 22:56:26 -0800 | |
---|---|---|
committer | 2011-01-20 22:56:26 -0800 | |
commit | 14355b786fa3d118027ed5f8eddceec32dfcb880 (patch) | |
tree | 8750b29c7c19ad99d428be227b5a7cb811d54680 /java/src | |
parent | f7b2ddb9f82487f4c2cb030abc73f2b793334b81 (diff) | |
parent | f3df63a93a8f623e2aca5895ee749bd297b58d12 (diff) | |
download | latinime-14355b786fa3d118027ed5f8eddceec32dfcb880.tar.gz latinime-14355b786fa3d118027ed5f8eddceec32dfcb880.tar.xz latinime-14355b786fa3d118027ed5f8eddceec32dfcb880.zip |
am f3df63a9: Update suggestions if user typed word is found in dictionary
* commit 'f3df63a93a8f623e2aca5895ee749bd297b58d12':
Update suggestions if user typed word is found in dictionary
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinIME.java | 9 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/SuggestedWords.java | 13 |
2 files changed, 16 insertions, 6 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 053bf6c1a..04cb89177 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -1535,10 +1535,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen // Basically, we update the suggestion strip only when suggestion count > 1. However, // there is an exception: We update the suggestion strip whenever typed word's length - // is 1, regardless of suggestion count. Actually, in most cases, suggestion count is 1 - // when typed word's length is 1, but we do always need to clear the previous state when - // the user starts typing a word (i.e. typed word's length == 1). - if (typedWord.length() == 1 || builder.size() > 1 + // is 1 or typed word is found in dictionary, regardless of suggestion count. Actually, + // in most cases, suggestion count is 1 when typed word's length is 1, but we do always + // need to clear the previous state when the user starts typing a word (i.e. typed word's + // length == 1). + if (builder.size() > 1 || typedWord.length() == 1 || typedWordValid || mCandidateView.isShowingAddToDictionaryHint()) { builder.setTypedWordValid(typedWordValid).setHasMinimalSuggestion(correctionAvailable); } else { diff --git a/java/src/com/android/inputmethod/latin/SuggestedWords.java b/java/src/com/android/inputmethod/latin/SuggestedWords.java index 4407e5b31..f774ce3a5 100644 --- a/java/src/com/android/inputmethod/latin/SuggestedWords.java +++ b/java/src/com/android/inputmethod/latin/SuggestedWords.java @@ -20,6 +20,7 @@ import android.view.inputmethod.CompletionInfo; import java.util.ArrayList; import java.util.Collections; +import java.util.HashSet; import java.util.List; public class SuggestedWords { @@ -128,10 +129,18 @@ public class SuggestedWords { SuggestedWords previousSuggestions) { mWords.clear(); mSuggestedWordInfoList.clear(); + final HashSet<String> alreadySeen = new HashSet<String>(); addWord(typedWord, null, false); + alreadySeen.add(typedWord.toString()); final int previousSize = previousSuggestions.size(); - for (int pos = 1; pos < previousSize; pos++) - addWord(previousSuggestions.getWord(pos), null, true); + for (int pos = 1; pos < previousSize; pos++) { + final String prevWord = previousSuggestions.getWord(pos).toString(); + // Filter out duplicate suggestion. + if (!alreadySeen.contains(prevWord)) { + addWord(prevWord, null, true); + alreadySeen.add(prevWord); + } + } mIsCompletions = false; mTypedWordValid = false; mHasMinimalSuggestion = false; |