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 00b203a71..815a7fe6a 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 @@ -20,6 +20,8 @@ import android.text.InputType; import android.util.Log; import android.view.inputmethod.EditorInfo; +import androidx.core.view.inputmethod.EditorInfoCompat; + import org.dslul.openboard.inputmethod.latin.common.StringUtils; import org.dslul.openboard.inputmethod.latin.utils.InputTypeUtils; @@ -104,9 +106,9 @@ public final class InputAttributes { // TODO: Have a helper method in InputTypeUtils // Make sure that passwords are not displayed in {@link SuggestionStripView}. final boolean shouldSuppressSuggestions = mIsPasswordField - || InputTypeUtils.isEmailVariation(variation) - || InputType.TYPE_TEXT_VARIATION_URI == variation - || InputType.TYPE_TEXT_VARIATION_FILTER == variation + //|| InputTypeUtils.isEmailVariation(variation) + //|| InputType.TYPE_TEXT_VARIATION_URI == variation + //|| InputType.TYPE_TEXT_VARIATION_FILTER == variation //|| flagNoSuggestions || flagAutoComplete; mShouldShowSuggestions = !shouldSuppressSuggestions; @@ -142,7 +144,8 @@ public final class InputAttributes { && InputType.TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS != variation && InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD != variation; - mNoLearning = (editorInfo.imeOptions & EditorInfo.IME_FLAG_NO_PERSONALIZED_LEARNING) != 0; + + mNoLearning = flagNoSuggestions || (editorInfo.imeOptions & EditorInfo.IME_FLAG_NO_PERSONALIZED_LEARNING) != 0; } public boolean isTypeNull() { diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/inputlogic/InputLogic.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/inputlogic/InputLogic.java index c68f7e3d6..5af4e72af 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/inputlogic/InputLogic.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/inputlogic/InputLogic.java @@ -1425,7 +1425,9 @@ public final class InputLogic { // If correction is not enabled, we don't add words to the user history dictionary. // That's to avoid unintended additions in some sensitive fields, or fields that // expect to receive non-words. - if (!settingsValues.mAutoCorrectionEnabledPerUserSettings) return; + if (!settingsValues.mAutoCorrectionEnabledPerUserSettings + || settingsValues.mIncognitoModeEnabled) + return; if (mConnection.hasSlowInputConnection()) { // Since we don't unlearn when the user backspaces on a slow InputConnection, // turn off learning to guard against adding typos that the user later deletes. 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 ca6210335..c80241a14 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 @@ -106,6 +106,7 @@ public class SettingsValues { public final float mPlausibilityThreshold; public final boolean mAutoCorrectionEnabledPerUserSettings; private final boolean mSuggestionsEnabledPerUserSettings; + public final boolean mIncognitoModeEnabled; private final AsyncResultHolder mAppWorkarounds; // Debug settings @@ -181,10 +182,11 @@ public class SettingsValues { null /* default */); mGestureFloatingPreviewTextEnabled = !mInputAttributes.mDisableGestureFloatingPreviewText && prefs.getBoolean(Settings.PREF_GESTURE_FLOATING_PREVIEW_TEXT, true); - mAutoCorrectionEnabledPerUserSettings = mAutoCorrectEnabled - && !mInputAttributes.mInputTypeNoAutoCorrect; - mSuggestionsEnabledPerUserSettings = !mInputAttributes.mNoLearning && + mAutoCorrectionEnabledPerUserSettings = mAutoCorrectEnabled; + //&& !mInputAttributes.mInputTypeNoAutoCorrect; + mSuggestionsEnabledPerUserSettings = !mInputAttributes.mIsPasswordField && readSuggestionsEnabled(prefs); + mIncognitoModeEnabled = mInputAttributes.mNoLearning; mIsInternal = Settings.isInternal(prefs); mHasCustomKeyPreviewAnimationParams = prefs.getBoolean( DebugSettings.PREF_HAS_CUSTOM_KEY_PREVIEW_ANIMATION_PARAMS, false);