diff options
Diffstat (limited to 'java/src')
4 files changed, 35 insertions, 46 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 6570f7a2f..9f5931de9 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -931,8 +931,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar false /* typedWordValid */, false /* hasAutoCorrectionCandidate */, false /* allowsToBeAutoCorrected */, - false /* isPunctuationSuggestions */, - false /* shouldBlockAutoCorrectionBySafetyNet */); + false /* isPunctuationSuggestions */); // When in fullscreen mode, show completions generated by the application final boolean isAutoCorrection = false; setSuggestions(suggestedWords, isAutoCorrection); @@ -1794,8 +1793,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar false /* typedWordValid */, false /* hasAutoCorrectionCandidate */, false /* allowsToBeAutoCorrected */, - false /* isPunctuationSuggestions */, - false /* shouldBlockAutoCorrectionBySafetyNet */); + false /* isPunctuationSuggestions */); showSuggestions(obsoleteSuggestedWords, typedWord); } } diff --git a/java/src/com/android/inputmethod/latin/SettingsValues.java b/java/src/com/android/inputmethod/latin/SettingsValues.java index d88047c32..d12b9c428 100644 --- a/java/src/com/android/inputmethod/latin/SettingsValues.java +++ b/java/src/com/android/inputmethod/latin/SettingsValues.java @@ -187,8 +187,7 @@ public class SettingsValues { false /* typedWordValid */, false /* hasAutoCorrectionCandidate */, false /* allowsToBeAutoCorrected */, - true /* isPunctuationSuggestions */, - false /* shouldBlockAutoCorrectionBySafetyNet */); + true /* isPunctuationSuggestions */); } private static SuggestedWords createSuggestPuncOutputTextList(final String[] puncs) { @@ -209,8 +208,7 @@ public class SettingsValues { false /* typedWordValid */, false /* hasAutoCorrectionCandidate */, false /* allowsToBeAutoCorrected */, - true /* isPunctuationSuggestions */, - false /* shouldBlockAutoCorrectionBySafetyNet */); + true /* isPunctuationSuggestions */); } private static String createWordSeparators(final String weakSpaceStrippers, diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java index 7ac00a34e..3089625e7 100644 --- a/java/src/com/android/inputmethod/latin/Suggest.java +++ b/java/src/com/android/inputmethod/latin/Suggest.java @@ -273,8 +273,7 @@ public class Suggest implements Dictionary.WordCallback { false /* typedWordValid */, false /* hasAutoCorrectionCandidate */, false /* allowsToBeAutoCorrected */, - false /* isPunctuationSuggestions */, - false /* shouldBlockAutoCorrectionBySafetyNet */); + false /* isPunctuationSuggestions */); } // TODO: cleanup dictionaries looking up and suggestions building with SuggestedWords.Builder @@ -344,21 +343,22 @@ public class Suggest implements Dictionary.WordCallback { } } else if (wordComposer.size() > 1) { + final WordComposer wordComposerForLookup; + if (mTrailingSingleQuotesCount > 0) { + wordComposerForLookup = new WordComposer(wordComposer); + for (int i = mTrailingSingleQuotesCount - 1; i >= 0; --i) { + wordComposerForLookup.deleteLast(); + } + } else { + wordComposerForLookup = wordComposer; + } // At second character typed, search the unigrams (scores being affected by bigrams) for (final String key : mUnigramDictionaries.keySet()) { // Skip UserUnigramDictionary and WhitelistDictionary to lookup if (key.equals(DICT_KEY_USER_UNIGRAM) || key.equals(DICT_KEY_WHITELIST)) continue; final Dictionary dictionary = mUnigramDictionaries.get(key); - if (mTrailingSingleQuotesCount > 0) { - final WordComposer tmpWordComposer = new WordComposer(wordComposer); - for (int i = mTrailingSingleQuotesCount - 1; i >= 0; --i) { - tmpWordComposer.deleteLast(); - } - dictionary.getWords(tmpWordComposer, this, proximityInfo); - } else { - dictionary.getWords(wordComposer, this, proximityInfo); - } + dictionary.getWords(wordComposerForLookup, this, proximityInfo); } } @@ -392,41 +392,36 @@ public class Suggest implements Dictionary.WordCallback { mSuggestions.add(0, typedWord); StringUtils.removeDupes(mSuggestions); - final ArrayList<SuggestedWords.SuggestedWordInfo> scoreInfoList; + final ArrayList<SuggestedWords.SuggestedWordInfo> suggestionsList; if (DBG) { // TODO: this doesn't take into account the fact that removing dupes from mSuggestions // may have made mScores[] and mSuggestions out of sync. final CharSequence autoCorrectionSuggestion = mSuggestions.get(0); - final int autoCorrectionSuggestionScore = mScores[0]; double normalizedScore = BinaryDictionary.calcNormalizedScore( - typedWord, autoCorrectionSuggestion.toString(), - autoCorrectionSuggestionScore); - scoreInfoList = new ArrayList<SuggestedWords.SuggestedWordInfo>(); - scoreInfoList.add(new SuggestedWords.SuggestedWordInfo(autoCorrectionSuggestion, "+", + typedWord, autoCorrectionSuggestion.toString(), mScores[0]); + suggestionsList = new ArrayList<SuggestedWords.SuggestedWordInfo>(); + suggestionsList.add(new SuggestedWords.SuggestedWordInfo(autoCorrectionSuggestion, "+", false)); final int suggestionsSize = mSuggestions.size(); // Note: i here is the index in mScores[], but the index in mSuggestions is one more // than i because we added the typed word to mSuggestions without touching mScores. for (int i = 0; i < mScores.length && i < suggestionsSize - 1; ++i) { + final String scoreInfoString; if (normalizedScore > 0) { - final String scoreThreshold = String.format("%d (%4.2f)", mScores[i], - normalizedScore); - scoreInfoList.add( - new SuggestedWords.SuggestedWordInfo(mSuggestions.get(i + 1), - scoreThreshold, false)); + scoreInfoString = String.format("%d (%4.2f)", mScores[i], normalizedScore); normalizedScore = 0.0; } else { - final String score = Integer.toString(mScores[i]); - scoreInfoList.add(new SuggestedWords.SuggestedWordInfo(mSuggestions.get(i + 1), - score, false)); + scoreInfoString = Integer.toString(mScores[i]); } + suggestionsList.add(new SuggestedWords.SuggestedWordInfo(mSuggestions.get(i + 1), + scoreInfoString, false)); } for (int i = mScores.length; i < suggestionsSize; ++i) { - scoreInfoList.add(new SuggestedWords.SuggestedWordInfo(mSuggestions.get(i), + suggestionsList.add(new SuggestedWords.SuggestedWordInfo(mSuggestions.get(i), "--", false)); } } else { - scoreInfoList = SuggestedWords.getFromCharSequenceList(mSuggestions); + suggestionsList = SuggestedWords.getFromCharSequenceList(mSuggestions); } boolean autoCorrectionAvailable = hasAutoCorrection; @@ -437,19 +432,19 @@ public class Suggest implements Dictionary.WordCallback { // Don't auto-correct words with multiple capital letter autoCorrectionAvailable &= !wordComposer.isMostlyCaps(); final boolean shouldBlockAutoCorrectionBySatefyNet; - if (allowsToBeAutoCorrected && scoreInfoList.size() > 1 && mAutoCorrectionThreshold > 0 + if (allowsToBeAutoCorrected && suggestionsList.size() > 1 && mAutoCorrectionThreshold > 0 && Suggest.shouldBlockAutoCorrectionBySafetyNet(typedWord, - scoreInfoList.get(1).mWord)) { + suggestionsList.get(1).mWord)) { shouldBlockAutoCorrectionBySatefyNet = true; } else { shouldBlockAutoCorrectionBySatefyNet = false; } - return new SuggestedWords(scoreInfoList, + return new SuggestedWords(suggestionsList, !allowsToBeAutoCorrected /* typedWordValid */, - autoCorrectionAvailable /* hasAutoCorrectionCandidate */, + autoCorrectionAvailable & !shouldBlockAutoCorrectionBySatefyNet + /* hasAutoCorrectionCandidate */, allowsToBeAutoCorrected /* allowsToBeAutoCorrected */, - false /* isPunctuationSuggestions */, - shouldBlockAutoCorrectionBySatefyNet); + false /* isPunctuationSuggestions */); } @Override diff --git a/java/src/com/android/inputmethod/latin/SuggestedWords.java b/java/src/com/android/inputmethod/latin/SuggestedWords.java index 7ce1049d7..201e0f410 100644 --- a/java/src/com/android/inputmethod/latin/SuggestedWords.java +++ b/java/src/com/android/inputmethod/latin/SuggestedWords.java @@ -25,7 +25,7 @@ import java.util.List; public class SuggestedWords { public static final SuggestedWords EMPTY = new SuggestedWords( - Collections.<SuggestedWordInfo>emptyList(), false, false, false, false, false); + Collections.<SuggestedWordInfo>emptyList(), false, false, false, false); public final boolean mTypedWordValid; public final boolean mHasAutoCorrectionCandidate; @@ -37,12 +37,10 @@ public class SuggestedWords { final boolean typedWordValid, final boolean hasAutoCorrectionCandidate, final boolean allowsToBeAutoCorrected, - final boolean isPunctuationSuggestions, - final boolean shouldBlockAutoCorrectionBySafetyNet) { + final boolean isPunctuationSuggestions) { mSuggestedWordInfoList = suggestedWordInfoList; mTypedWordValid = typedWordValid; - mHasAutoCorrectionCandidate = hasAutoCorrectionCandidate - && !shouldBlockAutoCorrectionBySafetyNet; + mHasAutoCorrectionCandidate = hasAutoCorrectionCandidate; mAllowsToBeAutoCorrected = allowsToBeAutoCorrected; mIsPunctuationSuggestions = isPunctuationSuggestions; } |