Merge "Optimization & Simplification" into jb-mr1-dev

This commit is contained in:
Jean Chalard 2012-08-10 03:17:28 -07:00 committed by Android (Google) Code Review
commit 58040e7df9
2 changed files with 12 additions and 17 deletions

View file

@ -75,17 +75,10 @@ public class AutoCorrection {
return maxFreq;
}
// Returns true if this is a whitelist entry, or it isn't in any dictionary.
public static boolean isWhitelistedOrNotAWord(
// Returns true if this isn't in any dictionary.
public static boolean isNotAWord(
final ConcurrentHashMap<String, Dictionary> dictionaries,
final CharSequence word, final boolean ignoreCase) {
final WhitelistDictionary whitelistDictionary =
(WhitelistDictionary)dictionaries.get(Dictionary.TYPE_WHITELIST);
// If "word" is in the whitelist dictionary, it should not be auto corrected.
if (whitelistDictionary != null
&& whitelistDictionary.shouldForciblyAutoCorrectFrom(word)) {
return true;
}
return !isValidWord(dictionaries, word, ignoreCase);
}

View file

@ -208,14 +208,6 @@ public class Suggest {
wordComposerForLookup, prevWordForBigram, proximityInfo));
}
// TODO: Change this scheme - a boolean is not enough. A whitelisted word may be "valid"
// but still autocorrected from - in the case the whitelist only capitalizes the word.
// The whitelist should be case-insensitive, so it's not possible to be consistent with
// a boolean flag. Right now this is handled with a slight hack in
// WhitelistDictionary#shouldForciblyAutoCorrectFrom.
final boolean allowsToBeAutoCorrected = AutoCorrection.isWhitelistedOrNotAWord(
mDictionaries, consideredWord, wordComposer.isFirstCharCapitalized());
final CharSequence whitelistedWord =
mWhiteListDictionary.getWhitelistedWord(consideredWord);
if (whitelistedWord != null) {
@ -225,6 +217,16 @@ public class Suggest {
Dictionary.TYPE_WHITELIST));
}
// TODO: Change this scheme - a boolean is not enough. A whitelisted word may be "valid"
// but still autocorrected from - in the case the whitelist only capitalizes the word.
// The whitelist should be case-insensitive, so it's not possible to be consistent with
// a boolean flag. Right now this is handled with a slight hack in
// WhitelistDictionary#shouldForciblyAutoCorrectFrom.
final boolean allowsToBeAutoCorrected = (null != whitelistedWord
&& !whitelistedWord.equals(consideredWord))
|| AutoCorrection.isNotAWord(mDictionaries, consideredWord,
wordComposer.isFirstCharCapitalized());
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