Fix logic to show suggestions

Bug: 15531465
Change-Id: Ic7fe5743ad3767cdaed699e5e2d1ebcaa75e22c2
This commit is contained in:
Tadashi G. Takaoka 2014-06-11 10:33:31 +09:00
parent 6b655de1a6
commit 6a96c508fd
2 changed files with 13 additions and 6 deletions

View file

@ -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()));
}

View file

@ -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