From 8601b841f2fbd13f34d479f3841bba02f55ef539 Mon Sep 17 00:00:00 2001 From: Helium314 Date: Sun, 21 Jan 2024 19:02:40 +0100 Subject: [PATCH] fix issues with looking up suggestions when it should not happen was introduced in e8e4354600242e2eb5f0b1f70d9fc9b4b542981c --- .../dslul/openboard/inputmethod/latin/InputAttributes.java | 3 +++ .../inputmethod/latin/settings/SettingsValues.java | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/InputAttributes.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/InputAttributes.java index da16e0ce7..0f722989c 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/InputAttributes.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/InputAttributes.java @@ -30,6 +30,7 @@ public final class InputAttributes { final public boolean mInputTypeNoAutoCorrect; final public boolean mIsPasswordField; final public boolean mShouldShowSuggestions; + final public boolean mMayOverrideShowingSuggestions; final public boolean mApplicationSpecifiedCompletionOn; final public boolean mShouldInsertSpacesAutomatically; final public boolean mShouldShowVoiceInputKey; @@ -71,6 +72,7 @@ public final class InputAttributes { + " imeOptions=0x%08x", inputType, editorInfo.imeOptions)); } mShouldShowSuggestions = false; + mMayOverrideShowingSuggestions = false; mInputTypeNoAutoCorrect = false; mApplicationSpecifiedCompletionOn = false; mShouldInsertSpacesAutomatically = false; @@ -90,6 +92,7 @@ public final class InputAttributes { // TODO: Have a helper method in InputTypeUtils // Make sure that passwords are not displayed in {@link SuggestionStripView}. mShouldShowSuggestions = !mIsPasswordField && !flagNoSuggestions; + mMayOverrideShowingSuggestions = !mIsPasswordField; mShouldInsertSpacesAutomatically = InputTypeUtils.isAutoSpaceFriendlyType(inputType); diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsValues.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsValues.java index 4ec969f41..3115a40af 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsValues.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SettingsValues.java @@ -118,6 +118,7 @@ public class SettingsValues { public final int mScoreLimitForAutocorrect; public final boolean mAutoCorrectionEnabledPerUserSettings; private final boolean mSuggestionsEnabledPerUserSettings; + private final boolean mOverrideShowingSuggestions; public final SettingsValuesForSuggestion mSettingsValuesForSuggestion; public final boolean mIncognitoModeEnabled; private final AsyncResultHolder mAppWorkarounds; @@ -188,8 +189,9 @@ public class SettingsValues { && prefs.getBoolean(Settings.PREF_GESTURE_FLOATING_PREVIEW_TEXT, true); mAutoCorrectionEnabledPerUserSettings = mAutoCorrectEnabled; //&& !mInputAttributes.mInputTypeNoAutoCorrect; // follow that request or not? + mOverrideShowingSuggestions = mInputAttributes.mMayOverrideShowingSuggestions && readSuggestionsOverrideEnabled(prefs); mSuggestionsEnabledPerUserSettings = (mInputAttributes.mShouldShowSuggestions && readSuggestionsEnabled(prefs)) - || (!mInputAttributes.mIsPasswordField && readSuggestionsOverrideEnabled(prefs)); + || mOverrideShowingSuggestions; mIncognitoModeEnabled = Settings.readAlwaysIncognitoMode(prefs) || mInputAttributes.mNoLearning || mInputAttributes.mIsPasswordField; mKeyboardHeightScale = prefs.getFloat(Settings.PREF_KEYBOARD_HEIGHT_SCALE, DEFAULT_SIZE_SCALE); @@ -248,7 +250,8 @@ public class SettingsValues { } public boolean needsToLookupSuggestions() { - return mAutoCorrectionEnabledPerUserSettings || isSuggestionsEnabledPerUserSettings(); + return (mInputAttributes.mShouldShowSuggestions || mOverrideShowingSuggestions) + && (mAutoCorrectionEnabledPerUserSettings || isSuggestionsEnabledPerUserSettings()); } public boolean isSuggestionsEnabledPerUserSettings() {