From 6a96c508fddde10827b8f0822a7096bf4b708cf0 Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" Date: Wed, 11 Jun 2014 10:33:31 +0900 Subject: Fix logic to show suggestions Bug: 15531465 Change-Id: Ic7fe5743ad3767cdaed699e5e2d1ebcaa75e22c2 --- java/src/com/android/inputmethod/latin/LatinIME.java | 17 +++++++++++------ .../inputmethod/latin/settings/SettingsValues.java | 2 ++ 2 files changed, 13 insertions(+), 6 deletions(-) (limited to 'java/src') diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 35966bb71..8b671a94b 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -1336,9 +1336,12 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen final SettingsValues currentSettingsValues = mSettings.getCurrent(); final boolean shouldShowImportantNotice = ImportantNoticeUtils.shouldShowImportantNotice(this); + final boolean shouldShowSuggestionCandidates = + currentSettingsValues.mInputAttributes.mShouldShowSuggestions + && currentSettingsValues.isCurrentOrientationAllowingSuggestionsPerUserSettings(); final boolean shouldShowSuggestionsStripUnlessPassword = shouldShowImportantNotice || currentSettingsValues.mShowsVoiceInputKey - || currentSettingsValues.isSuggestionsRequested() + || shouldShowSuggestionCandidates || currentSettingsValues.isApplicationSpecifiedCompletionsOn(); final boolean shouldShowSuggestionsStrip = shouldShowSuggestionsStripUnlessPassword && !currentSettingsValues.mInputAttributes.mIsPasswordField; @@ -1353,14 +1356,16 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen final boolean noSuggestionsToShow = (SuggestedWords.EMPTY == suggestedWords) || suggestedWords.isPunctuationSuggestions() || isEmptyApplicationSpecifiedCompletions; - final boolean isShowingImportantNotice; if (shouldShowImportantNotice && noSuggestionsToShow) { - isShowingImportantNotice = mSuggestionStripView.maybeShowImportantNoticeTitle(); - } else { - isShowingImportantNotice = false; + if (mSuggestionStripView.maybeShowImportantNoticeTitle()) { + return; + } } - if (currentSettingsValues.isSuggestionsRequested() && !isShowingImportantNotice) { + if (currentSettingsValues.isCurrentOrientationAllowingSuggestionsPerUserSettings() + // We should clear suggestions if there is no suggestion to show. + || noSuggestionsToShow + || currentSettingsValues.isApplicationSpecifiedCompletionsOn()) { mSuggestionStripView.setSuggestions(suggestedWords, SubtypeLocaleUtils.isRtlLanguage(mSubtypeSwitcher.getCurrentSubtype())); } diff --git a/java/src/com/android/inputmethod/latin/settings/SettingsValues.java b/java/src/com/android/inputmethod/latin/settings/SettingsValues.java index 389d9a869..44104019b 100644 --- a/java/src/com/android/inputmethod/latin/settings/SettingsValues.java +++ b/java/src/com/android/inputmethod/latin/settings/SettingsValues.java @@ -85,6 +85,7 @@ public final class SettingsValues { public final int mKeyPreviewPopupDismissDelay; private final boolean mAutoCorrectEnabled; public final float mAutoCorrectionThreshold; + // TODO: Rename this to mAutoCorrectionEnabledPerUserSettings. public final boolean mAutoCorrectionEnabled; public final int mSuggestionVisibility; public final int mDisplayOrientation; @@ -193,6 +194,7 @@ public final class SettingsValues { return mInputAttributes.mApplicationSpecifiedCompletionOn; } + // TODO: Rename this to needsToLookupSuggestions(). public boolean isSuggestionsRequested() { return mInputAttributes.mShouldShowSuggestions && (mAutoCorrectionEnabled -- cgit v1.2.3-83-g751a