Stop auto-correcting non-whitelisted one-char strings

Bug: 7134017
Change-Id: I75cf474dedafda3e1683dd8f7740c13aafdcf5ab
This commit is contained in:
Jean Chalard 2012-09-10 14:19:41 +09:00
parent 2935276110
commit 8c06a468e0
2 changed files with 7 additions and 5 deletions

View file

@ -73,11 +73,11 @@ public class AutoCorrection {
return maxFreq;
}
// Returns true if this isn't in any dictionary.
public static boolean isNotAWord(
// Returns true if this is in any of the dictionaries.
public static boolean isInTheDictionary(
final ConcurrentHashMap<String, Dictionary> dictionaries,
final CharSequence word, final boolean ignoreCase) {
return !isValidWord(dictionaries, word, ignoreCase);
return isValidWord(dictionaries, word, ignoreCase);
}
public static boolean suggestionExceedsAutoCorrectionThreshold(SuggestedWordInfo suggestion,

View file

@ -214,10 +214,12 @@ public class Suggest {
whitelistedWord = suggestionsSet.first().mWord;
}
// The word can be auto-corrected if it has a whitelist entry that is not itself,
// or if it's a 2+ characters non-word (i.e. it's not in the dictionary).
final boolean allowsToBeAutoCorrected = (null != whitelistedWord
&& !whitelistedWord.equals(consideredWord))
|| AutoCorrection.isNotAWord(mDictionaries, consideredWord,
wordComposer.isFirstCharCapitalized());
|| (consideredWord.length() > 1 && !AutoCorrection.isInTheDictionary(mDictionaries,
consideredWord, wordComposer.isFirstCharCapitalized()));
final boolean hasAutoCorrection;
// TODO: using isCorrectionEnabled here is not very good. It's probably useless, because