From c5787c311b70ddf807145ca7db4af084adf34f66 Mon Sep 17 00:00:00 2001 From: Matt Van Horn <455140+mvanhorn@users.noreply.github.com> Date: Thu, 2 Jul 2026 03:09:41 -0700 Subject: [PATCH] feat: add toggle to disable long-press hint dots on toolbar keys --- .../main/java/helium314/keyboard/latin/settings/Defaults.kt | 1 + .../java/helium314/keyboard/latin/settings/Settings.java | 1 + .../java/helium314/keyboard/latin/utils/ToolbarUtils.kt | 6 +++++- .../helium314/keyboard/settings/screens/ToolbarScreen.kt | 6 ++++++ app/src/main/res/values/strings.xml | 4 ++++ 5 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/helium314/keyboard/latin/settings/Defaults.kt b/app/src/main/java/helium314/keyboard/latin/settings/Defaults.kt index 56bd6d074..2c31642be 100644 --- a/app/src/main/java/helium314/keyboard/latin/settings/Defaults.kt +++ b/app/src/main/java/helium314/keyboard/latin/settings/Defaults.kt @@ -184,6 +184,7 @@ object Defaults { const val PREF_TOOLBAR_MODE = "EXPANDABLE" const val PREF_TOOLBAR_HIDING_GLOBAL = true const val PREF_QUICK_PIN_TOOLBAR_KEYS = true + const val PREF_TOOLBAR_LONG_PRESS_HINT = true val PREF_PINNED_TOOLBAR_KEYS = defaultPinnedToolbarPref val PREF_TOOLBAR_KEYS = defaultToolbarPref const val PREF_AUTO_SHOW_TOOLBAR = false 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 285e145a6..fb92e4743 100644 --- a/app/src/main/java/helium314/keyboard/latin/settings/Settings.java +++ b/app/src/main/java/helium314/keyboard/latin/settings/Settings.java @@ -189,6 +189,7 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang public static final String PREF_URL_DETECTION = "url_detection"; public static final String PREF_DONT_SHOW_MISSING_DICTIONARY_DIALOG = "dont_show_missing_dict_dialog"; public static final String PREF_QUICK_PIN_TOOLBAR_KEYS = "quick_pin_toolbar_keys"; + public static final String PREF_TOOLBAR_LONG_PRESS_HINT = "toolbar_long_press_hint"; public static final String PREF_DISABLE_NETWORK = "disable_network"; public static final String PREF_PINNED_TOOLBAR_KEYS = "pinned_toolbar_keys"; public static final String PREF_TOOLBAR_KEYS = "toolbar_keys"; diff --git a/app/src/main/java/helium314/keyboard/latin/utils/ToolbarUtils.kt b/app/src/main/java/helium314/keyboard/latin/utils/ToolbarUtils.kt index 8256f1dc2..ccd89bd70 100644 --- a/app/src/main/java/helium314/keyboard/latin/utils/ToolbarUtils.kt +++ b/app/src/main/java/helium314/keyboard/latin/utils/ToolbarUtils.kt @@ -80,7 +80,11 @@ fun createToolbarKey(context: Context, key: ToolbarKey): ImageButton { KeyboardIconsSet.instance.getNewDrawable(key.name, context) } - val finalDrawable = if (rawDrawable != null && getCodeForToolbarKeyLongClick(key) != KeyCode.UNSPECIFIED) { + val showLongPressHint = context.prefs() + .getBoolean(Settings.PREF_TOOLBAR_LONG_PRESS_HINT, Defaults.PREF_TOOLBAR_LONG_PRESS_HINT) + val finalDrawable = if (rawDrawable != null && showLongPressHint + && getCodeForToolbarKeyLongClick(key) != KeyCode.UNSPECIFIED + ) { LongPressHintDrawable(rawDrawable) } else { rawDrawable diff --git a/app/src/main/java/helium314/keyboard/settings/screens/ToolbarScreen.kt b/app/src/main/java/helium314/keyboard/settings/screens/ToolbarScreen.kt index 7053f8b7c..6afbefe77 100644 --- a/app/src/main/java/helium314/keyboard/settings/screens/ToolbarScreen.kt +++ b/app/src/main/java/helium314/keyboard/settings/screens/ToolbarScreen.kt @@ -76,6 +76,7 @@ fun ToolbarScreen( if (!isSplitToolbar) Settings.PREF_PINNED_TOOLBAR_KEYS else null, Settings.PREF_CLIPBOARD_TOOLBAR_KEYS, Settings.PREF_TOOLBAR_CUSTOM_KEY_CODES, + Settings.PREF_TOOLBAR_LONG_PRESS_HINT, if (toolbarMode == ToolbarMode.EXPANDABLE && !isSplitToolbar) Settings.PREF_QUICK_PIN_TOOLBAR_KEYS else null, if (toolbarMode == ToolbarMode.EXPANDABLE && !isSplitToolbar) Settings.PREF_AUTO_SHOW_TOOLBAR else null, if (toolbarMode == ToolbarMode.EXPANDABLE && !isSplitToolbar) Settings.PREF_AUTO_SHOW_TOOLBAR_ON_SELECT else null, @@ -145,6 +146,11 @@ fun createToolbarSettings(context: Context): List { { SwitchPreference(it, Defaults.PREF_QUICK_PIN_TOOLBAR_KEYS) { KeyboardSwitcher.getInstance().setThemeNeedsReload() } }, + Setting(context, Settings.PREF_TOOLBAR_LONG_PRESS_HINT, + R.string.toolbar_long_press_hint, R.string.toolbar_long_press_hint_summary) + { + SwitchPreference(it, Defaults.PREF_TOOLBAR_LONG_PRESS_HINT) { KeyboardSwitcher.getInstance().setThemeNeedsReload() } + }, Setting(context, Settings.PREF_AUTO_SHOW_TOOLBAR, R.string.auto_show_toolbar_open, R.string.auto_show_toolbar_summary) { SwitchPreference(it, Defaults.PREF_AUTO_SHOW_TOOLBAR) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7b3795d19..a04936453 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -629,6 +629,10 @@ Pin toolbar key on long press This will disable other long press actions for toolbar keys that are not pinned + + Show long-press hint dots + + Show dots on toolbar keys that have a long-press action Show functional hints