Merge "Fix a bug with suggestion behavior (A81)"

This commit is contained in:
Jean Chalard 2012-07-10 02:24:36 -07:00 committed by Android (Google) Code Review
commit 50d1b7902f

View file

@ -174,7 +174,7 @@ public class Suggest {
: typedWord; : typedWord;
LatinImeLogger.onAddSuggestedWord(typedWord, Dictionary.TYPE_USER_TYPED); LatinImeLogger.onAddSuggestedWord(typedWord, Dictionary.TYPE_USER_TYPED);
if (wordComposer.size() <= 1 && isCorrectionEnabled) { if (wordComposer.size() <= 1) {
// At first character typed, search only the bigrams // At first character typed, search only the bigrams
if (!TextUtils.isEmpty(prevWordForBigram)) { if (!TextUtils.isEmpty(prevWordForBigram)) {
for (final String key : mDictionaries.keySet()) { for (final String key : mDictionaries.keySet()) {
@ -182,7 +182,7 @@ public class Suggest {
suggestionsSet.addAll(dictionary.getBigrams(wordComposer, prevWordForBigram)); suggestionsSet.addAll(dictionary.getBigrams(wordComposer, prevWordForBigram));
} }
} }
} else if (wordComposer.size() > 1) { } else {
final WordComposer wordComposerForLookup; final WordComposer wordComposerForLookup;
if (trailingSingleQuotesCount > 0) { if (trailingSingleQuotesCount > 0) {
wordComposerForLookup = new WordComposer(wordComposer); wordComposerForLookup = new WordComposer(wordComposer);
@ -216,6 +216,11 @@ public class Suggest {
mWhiteListDictionary.getWhitelistedWord(consideredWord); mWhiteListDictionary.getWhitelistedWord(consideredWord);
final boolean hasAutoCorrection; final boolean hasAutoCorrection;
// TODO: using isCorrectionEnabled here is not very good. It's probably useless, because
// any attempt to do auto-correction is already shielded with a test for this flag; at the
// same time, it feels wrong that the SuggestedWord object includes information about
// the current settings. It may also be useful to know, when the setting is off, whether
// the word *would* have been auto-corrected.
if (!isCorrectionEnabled || !allowsToBeAutoCorrected || wordComposer.isMostlyCaps() if (!isCorrectionEnabled || !allowsToBeAutoCorrected || wordComposer.isMostlyCaps()
|| wordComposer.isResumed() || !hasMainDictionary()) { || wordComposer.isResumed() || !hasMainDictionary()) {
// If we don't have a main dictionary, we never want to auto-correct. The reason for // If we don't have a main dictionary, we never want to auto-correct. The reason for