From 092cac529fff0df56b05daff268a83877d7089ee Mon Sep 17 00:00:00 2001 From: Helium314 Date: Tue, 14 Jan 2025 22:19:44 +0100 Subject: [PATCH] add setting to autocorrect shortcuts fixes #1287 --- .../keyboard/latin/SuggestedWords.java | 3 +- .../keyboard/latin/settings/Settings.java | 1 + .../latin/settings/SettingsValues.java | 2 + app/src/main/res/values/strings.xml | 4 ++ .../main/res/xml/prefs_screen_correction.xml | 7 +++ .../helium314/keyboard/latin/SuggestTest.kt | 49 +++++++++++++++++-- 6 files changed, 61 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/helium314/keyboard/latin/SuggestedWords.java b/app/src/main/java/helium314/keyboard/latin/SuggestedWords.java index a6eae098..df9b8837 100644 --- a/app/src/main/java/helium314/keyboard/latin/SuggestedWords.java +++ b/app/src/main/java/helium314/keyboard/latin/SuggestedWords.java @@ -14,6 +14,7 @@ import androidx.annotation.Nullable; import helium314.keyboard.latin.common.StringUtils; import helium314.keyboard.latin.define.DebugFlags; +import helium314.keyboard.latin.settings.Settings; import java.util.ArrayList; import java.util.Arrays; @@ -345,7 +346,7 @@ public class SuggestedWords { public boolean isAppropriateForAutoCorrection() { return (mKindAndFlags & KIND_FLAG_APPROPRIATE_FOR_AUTO_CORRECTION) != 0 - || isKindOf(KIND_SHORTCUT); + || (isKindOf(KIND_SHORTCUT) && Settings.getInstance().getCurrent().mAutoCorrectShortcuts); } public void setDebugString(final String str) { diff --git a/app/src/main/java/helium314/keyboard/latin/settings/Settings.java b/app/src/main/java/helium314/keyboard/latin/settings/Settings.java index a612ae79..0f9d1411 100644 --- a/app/src/main/java/helium314/keyboard/latin/settings/Settings.java +++ b/app/src/main/java/helium314/keyboard/latin/settings/Settings.java @@ -94,6 +94,7 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang public static final String PREF_AUTO_CORRECTION = "auto_correction"; public static final String PREF_MORE_AUTO_CORRECTION = "more_auto_correction"; public static final String PREF_AUTO_CORRECTION_CONFIDENCE = "auto_correction_confidence"; + public static final String PREF_AUTOCORRECT_SHORTCUTS = "autocorrect_shortcuts"; public static final String PREF_CENTER_SUGGESTION_TEXT_TO_ENTER = "center_suggestion_text_to_enter"; public static final String PREF_SHOW_SUGGESTIONS = "show_suggestions"; public static final String PREF_ALWAYS_SHOW_SUGGESTIONS = "always_show_suggestions"; diff --git a/app/src/main/java/helium314/keyboard/latin/settings/SettingsValues.java b/app/src/main/java/helium314/keyboard/latin/settings/SettingsValues.java index 39a34c14..eae7b375 100644 --- a/app/src/main/java/helium314/keyboard/latin/settings/SettingsValues.java +++ b/app/src/main/java/helium314/keyboard/latin/settings/SettingsValues.java @@ -132,6 +132,7 @@ public class SettingsValues { public final boolean mAutoCorrectEnabled; public final float mAutoCorrectionThreshold; public final int mScoreLimitForAutocorrect; + public final boolean mAutoCorrectShortcuts; private final boolean mSuggestionsEnabledPerUserSettings; private final boolean mOverrideShowingSuggestions; public final boolean mSuggestClipboardContent; @@ -190,6 +191,7 @@ public class SettingsValues { : AUTO_CORRECTION_DISABLED_THRESHOLD; mScoreLimitForAutocorrect = (mAutoCorrectionThreshold < 0) ? 600000 // very aggressive : (mAutoCorrectionThreshold < 0.07 ? 800000 : 950000); // aggressive or modest + mAutoCorrectShortcuts = prefs.getBoolean(Settings.PREF_AUTOCORRECT_SHORTCUTS, true); mBigramPredictionEnabled = readBigramPredictionEnabled(prefs, res); mSuggestClipboardContent = readSuggestClipboardContent(prefs, res); mDoubleSpacePeriodTimeout = res.getInteger(R.integer.config_double_space_period_timeout); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 64937dba..6e20f49a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -120,6 +120,10 @@ Auto-correct even when not explicitly requested by the input field Auto-correction confidence + + Auto-correct shortcuts + + When enabled shortcuts might be expanded by autocorrect Off diff --git a/app/src/main/res/xml/prefs_screen_correction.xml b/app/src/main/res/xml/prefs_screen_correction.xml index ab505cac..44372086 100644 --- a/app/src/main/res/xml/prefs_screen_correction.xml +++ b/app/src/main/res/xml/prefs_screen_correction.xml @@ -39,6 +39,13 @@ android:defaultValue="true" android:persistent="true" /> + +