Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6a96c508 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Fix logic to show suggestions

Bug: 15531465
Change-Id: Ic7fe5743ad3767cdaed699e5e2d1ebcaa75e22c2
parent 6b655de1
Loading
Loading
Loading
Loading
+11 −6
Original line number Diff line number Diff line
@@ -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()));
        }
+2 −0
Original line number Diff line number Diff line
@@ -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