Skip to content
Snippets Groups Projects
Commit f3df63a9 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Update suggestions if user typed word is found in dictionary

This change aslo eliminates duplicate suggestion from past
suggestions.  And call setTypedWordVaild to past suggestions.

Bug: 3367722

Change-Id: I7ffaa2f7e4e30b3951b6c2df002d269671c9d654
parent dbc61779
No related branches found
No related tags found
No related merge requests found
......@@ -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 {
......
......@@ -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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment