diff options
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java | 25 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinIME.java | 19 |
2 files changed, 31 insertions, 13 deletions
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java index fb9517220..8a8a45f35 100644 --- a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java +++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorForSuggest.java @@ -44,6 +44,10 @@ import java.util.concurrent.TimeUnit; public class DictionaryFacilitatorForSuggest { public static final String TAG = DictionaryFacilitatorForSuggest.class.getSimpleName(); + // HACK: This threshold is being used when adding a capitalized entry in the User History + // dictionary. + private static final int CAPITALIZED_FORM_MAX_PROBABILITY_FOR_INSERT = 140; + private final Context mContext; public final Locale mLocale; @@ -389,7 +393,26 @@ public class DictionaryFacilitatorForSuggest { if (maxFreq == 0) { return; } - final String secondWord = wasAutoCapitalized ? suggestion.toLowerCase(mLocale) : suggestion; + final String suggestionLowerCase = suggestion.toLowerCase(mLocale); + final String secondWord; + if (wasAutoCapitalized) { + secondWord = suggestionLowerCase; + } else { + // HACK: We'd like to avoid adding the capitalized form of common words to the User + // History dictionary in order to avoid suggesting them until the dictionary + // consolidation is done. + // TODO: Remove this hack when ready. + final int lowerCasefreqInMainDict = mMainDictionary != null ? + mMainDictionary.getFrequency(suggestionLowerCase) : + Dictionary.NOT_A_PROBABILITY; + if (maxFreq < lowerCasefreqInMainDict + && lowerCasefreqInMainDict >= CAPITALIZED_FORM_MAX_PROBABILITY_FOR_INSERT) { + // Use lower cased word as the word can be a distracter of the popular word. + secondWord = suggestionLowerCase; + } else { + secondWord = suggestion; + } + } // We demote unrecognized words (frequency < 0, below) by specifying them as "invalid". // We don't add words with 0-frequency (assuming they would be profanity etc.). final boolean isValid = maxFreq > 0; diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index c2483eba2..944fa73c8 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -1011,8 +1011,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen false /* isObsoleteSuggestions */, false /* isPrediction */); // When in fullscreen mode, show completions generated by the application - setSuggestedWords(suggestedWords); - setSuggestionStripShown(true); + setSuggestedWords(suggestedWords, true /* shouldShow */); if (ProductionFlag.USES_DEVELOPMENT_ONLY_DIAGNOSTICS) { ResearchLogger.latinIME_onDisplayCompletions(applicationSpecifiedCompletions); } @@ -1035,10 +1034,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen } } - private void setSuggestionStripShown(final boolean shown) { - setSuggestionStripShownInternal(shown, /* needsInputViewShown */true); - } - private int getAdjustedBackingViewHeight() { final int currentHeight = mKeyPreviewBackingView.getHeight(); if (currentHeight > 0) { @@ -1330,7 +1325,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen } // TODO[IL]: Define a clear interface for this - public void setSuggestedWords(final SuggestedWords words) { + public void setSuggestedWords(final SuggestedWords words, final boolean shouldShow) { if (mSuggestionStripView != null) { mSuggestionStripView.setSuggestions( words, SubtypeLocaleUtils.isRtlLanguage(mSubtypeSwitcher.getCurrentSubtype())); @@ -1350,6 +1345,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen // the practice. mInputLogic.mConnection.setComposingText(textWithUnderline, 1); } + setSuggestionStripShownInternal(shouldShow, true /* needsInputViewShown */); } // TODO[IL]: Move this out of LatinIME. @@ -1438,8 +1434,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen if (SuggestedWords.EMPTY != suggestedWords) { mInputLogic.mWordComposer.setAutoCorrection(autoCorrection); } - setSuggestedWords(suggestedWords); - setSuggestionStripShown(isSuggestionsStripVisible()); + setSuggestedWords(suggestedWords, isSuggestionsStripVisible()); // Cache the auto-correction in accessibility code so we can speak it if the user // touches a key that will insert it. AccessibilityUtils.getInstance().setAutoCorrection(suggestedWords, typedWord); @@ -1552,11 +1547,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen public void setNeutralSuggestionStrip() { final SettingsValues currentSettings = mSettings.getCurrent(); if (currentSettings.mBigramPredictionEnabled) { - setSuggestedWords(SuggestedWords.EMPTY); + setSuggestedWords(SuggestedWords.EMPTY, isSuggestionsStripVisible()); } else { - setSuggestedWords(currentSettings.mSpacingAndPunctuations.mSuggestPuncList); + setSuggestedWords(currentSettings.mSpacingAndPunctuations.mSuggestPuncList, + isSuggestionsStripVisible()); } - setSuggestionStripShown(isSuggestionsStripVisible()); } public void unsetIsAutoCorrectionIndicatorOnAndCallShowSuggestionStrip( |