switch from start / stop one-handed mode key codes to a toggle code

mainly so there is no awkward state-dependent key code on the toolbar key
This commit is contained in:
Helium314 2025-01-26 09:48:21 +01:00
parent 5afb1e3a0c
commit 419c0d847b
8 changed files with 18 additions and 19 deletions

View file

@ -52,8 +52,9 @@ public final class KeyboardCodesSet {
"key_emoji", "key_emoji",
"key_unspecified", "key_unspecified",
"key_clipboard", "key_clipboard",
"key_start_onehanded", "key_toggle_onehanded",
"key_stop_onehanded", "key_start_onehanded", // keep name to avoid breaking custom layouts
"key_stop_onehanded", // keep name to avoid breaking custom layouts
"key_switch_onehanded" "key_switch_onehanded"
}; };
@ -77,8 +78,9 @@ public final class KeyboardCodesSet {
KeyCode.EMOJI, KeyCode.EMOJI,
KeyCode.NOT_SPECIFIED, KeyCode.NOT_SPECIFIED,
KeyCode.CLIPBOARD, KeyCode.CLIPBOARD,
KeyCode.START_ONE_HANDED_MODE, KeyCode.TOGGLE_ONE_HANDED_MODE,
KeyCode.STOP_ONE_HANDED_MODE, KeyCode.TOGGLE_ONE_HANDED_MODE,
KeyCode.TOGGLE_ONE_HANDED_MODE,
KeyCode.SWITCH_ONE_HANDED_MODE KeyCode.SWITCH_ONE_HANDED_MODE
}; };

View file

@ -808,10 +808,8 @@ public final class KeyboardState {
toggleNumpad(false, autoCapsFlags, recapitalizeMode, false, true); toggleNumpad(false, autoCapsFlags, recapitalizeMode, false, true);
} else if (code == KeyCode.SYMBOL) { } else if (code == KeyCode.SYMBOL) {
setSymbolsKeyboard(); setSymbolsKeyboard();
} else if (code == KeyCode.START_ONE_HANDED_MODE) { } else if (code == KeyCode.TOGGLE_ONE_HANDED_MODE) {
setOneHandedModeEnabled(true); setOneHandedModeEnabled(!Settings.getInstance().getCurrent().mOneHandedModeEnabled);
} else if (code == KeyCode.STOP_ONE_HANDED_MODE) {
setOneHandedModeEnabled(false);
} else if (code == KeyCode.SWITCH_ONE_HANDED_MODE) { } else if (code == KeyCode.SWITCH_ONE_HANDED_MODE) {
switchOneHandedMode(); switchOneHandedMode();
} }

View file

@ -125,8 +125,8 @@ object KeyCode {
// heliboard only codes // heliboard only codes
const val SYMBOL_ALPHA = -10001 const val SYMBOL_ALPHA = -10001
const val START_ONE_HANDED_MODE = -10002 const val TOGGLE_ONE_HANDED_MODE = -10002
const val STOP_ONE_HANDED_MODE = -10003 const val TOGGLE_ONE_HANDED_MODE_2 = -10003 // does the same as TOGGLE_ONE_HANDED_MODE (used to be start & stop)
const val SWITCH_ONE_HANDED_MODE = -10004 const val SWITCH_ONE_HANDED_MODE = -10004
const val SHIFT_ENTER = -10005 const val SHIFT_ENTER = -10005
const val ACTION_NEXT = -10006 const val ACTION_NEXT = -10006
@ -179,7 +179,7 @@ object KeyCode {
FN, CLIPBOARD_CLEAR_HISTORY, NUMPAD, FN, CLIPBOARD_CLEAR_HISTORY, NUMPAD,
// heliboard only // heliboard only
SYMBOL_ALPHA, START_ONE_HANDED_MODE, STOP_ONE_HANDED_MODE, SWITCH_ONE_HANDED_MODE, SHIFT_ENTER, SYMBOL_ALPHA, TOGGLE_ONE_HANDED_MODE, SWITCH_ONE_HANDED_MODE, SHIFT_ENTER,
ACTION_NEXT, ACTION_PREVIOUS, NOT_SPECIFIED, CLIPBOARD_COPY_ALL, WORD_LEFT, WORD_RIGHT, PAGE_UP, ACTION_NEXT, ACTION_PREVIOUS, NOT_SPECIFIED, CLIPBOARD_COPY_ALL, WORD_LEFT, WORD_RIGHT, PAGE_UP,
PAGE_DOWN, META, TAB, ESCAPE, INSERT, SLEEP, MEDIA_PLAY, MEDIA_PAUSE, MEDIA_PLAY_PAUSE, MEDIA_NEXT, PAGE_DOWN, META, TAB, ESCAPE, INSERT, SLEEP, MEDIA_PLAY, MEDIA_PAUSE, MEDIA_PLAY_PAUSE, MEDIA_NEXT,
MEDIA_PREVIOUS, VOL_UP, VOL_DOWN, MUTE, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, BACK MEDIA_PREVIOUS, VOL_UP, VOL_DOWN, MUTE, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, BACK
@ -189,6 +189,7 @@ object KeyCode {
IME_UI_MODE_TEXT -> ALPHA IME_UI_MODE_TEXT -> ALPHA
VIEW_PHONE -> ALPHA // phone keyboard is treated like alphabet, just with different layout VIEW_PHONE -> ALPHA // phone keyboard is treated like alphabet, just with different layout
VIEW_PHONE2 -> SYMBOL VIEW_PHONE2 -> SYMBOL
TOGGLE_ONE_HANDED_MODE_2 -> TOGGLE_ONE_HANDED_MODE
else -> throw IllegalStateException("key code $this not yet supported") else -> throw IllegalStateException("key code $this not yet supported")
} }

View file

@ -127,7 +127,7 @@ sealed interface KeyData : AbstractKeyData {
if (!params.mId.mLanguageSwitchKeyEnabled && !params.mId.isNumberLayout && RichInputMethodManager.canSwitchLanguage()) if (!params.mId.mLanguageSwitchKeyEnabled && !params.mId.isNumberLayout && RichInputMethodManager.canSwitchLanguage())
keys.add("!icon/language_switch_key|!code/key_language_switch") keys.add("!icon/language_switch_key|!code/key_language_switch")
if (!params.mId.mOneHandedModeEnabled) if (!params.mId.mOneHandedModeEnabled)
keys.add("!icon/start_onehanded_mode_key|!code/key_start_onehanded") keys.add("!icon/start_onehanded_mode_key|!code/key_toggle_onehanded")
if (!params.mId.mDeviceLocked) if (!params.mId.mDeviceLocked)
keys.add("!icon/settings_key|!code/key_settings") keys.add("!icon/settings_key|!code/key_settings")
return keys return keys

View file

@ -84,8 +84,7 @@ class KeyboardWrapperView @JvmOverloads constructor(
if (newScale == oldScale) return@setOnTouchListener true if (newScale == oldScale) return@setOnTouchListener true
Settings.getInstance().writeOneHandedModeScale(newScale) Settings.getInstance().writeOneHandedModeScale(newScale)
oneHandedModeEnabled = false // intentionally putting wrong value, so KeyboardSwitcher.setOneHandedModeEnabled does actually reload oneHandedModeEnabled = false // intentionally putting wrong value, so KeyboardSwitcher.setOneHandedModeEnabled does actually reload
keyboardActionListener?.onCodeInput(KeyCode.START_ONE_HANDED_MODE, KeyboardSwitcher.getInstance().setOneHandedModeEnabled(true)
Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE, false)
} }
else -> x = 0f else -> x = 0f
} }
@ -119,7 +118,7 @@ class KeyboardWrapperView @JvmOverloads constructor(
override fun onClick(view: View) { override fun onClick(view: View) {
if (view === stopOneHandedModeBtn) { if (view === stopOneHandedModeBtn) {
keyboardActionListener?.onCodeInput(KeyCode.STOP_ONE_HANDED_MODE, keyboardActionListener?.onCodeInput(KeyCode.TOGGLE_ONE_HANDED_MODE,
Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE,
false /* isKeyRepeat */) false /* isKeyRepeat */)
} else if (view === switchOneHandedModeBtn) { } else if (view === switchOneHandedModeBtn) {

View file

@ -224,8 +224,7 @@ public final class Constants {
case CODE_TAB: return "tab"; case CODE_TAB: return "tab";
case CODE_ENTER: return "enter"; case CODE_ENTER: return "enter";
case CODE_SPACE: return "space"; case CODE_SPACE: return "space";
case KeyCode.START_ONE_HANDED_MODE: return "startOneHandedMode"; case KeyCode.TOGGLE_ONE_HANDED_MODE: return "toggleOneHandedMode";
case KeyCode.STOP_ONE_HANDED_MODE: return "stopOneHandedMode";
case KeyCode.SWITCH_ONE_HANDED_MODE: return "switchOneHandedMode"; case KeyCode.SWITCH_ONE_HANDED_MODE: return "switchOneHandedMode";
case KeyCode.NUMPAD: return "numpad"; case KeyCode.NUMPAD: return "numpad";
default: default:

View file

@ -779,7 +779,7 @@ public final class InputLogic {
// We need to switch to the shortcut IME. This is handled by LatinIME since the // We need to switch to the shortcut IME. This is handled by LatinIME since the
// input logic has no business with IME switching. // input logic has no business with IME switching.
case KeyCode.CAPS_LOCK, KeyCode.SYMBOL_ALPHA, KeyCode.ALPHA, KeyCode.SYMBOL, KeyCode.NUMPAD, KeyCode.EMOJI, case KeyCode.CAPS_LOCK, KeyCode.SYMBOL_ALPHA, KeyCode.ALPHA, KeyCode.SYMBOL, KeyCode.NUMPAD, KeyCode.EMOJI,
KeyCode.START_ONE_HANDED_MODE, KeyCode.STOP_ONE_HANDED_MODE, KeyCode.SWITCH_ONE_HANDED_MODE, KeyCode.TOGGLE_ONE_HANDED_MODE, KeyCode.SWITCH_ONE_HANDED_MODE,
KeyCode.CTRL, KeyCode.ALT, KeyCode.FN, KeyCode.META: KeyCode.CTRL, KeyCode.ALT, KeyCode.FN, KeyCode.META:
break; break;
default: default:

View file

@ -60,7 +60,7 @@ fun getCodeForToolbarKey(key: ToolbarKey) = Settings.getInstance().getCustomTool
COPY -> KeyCode.CLIPBOARD_COPY COPY -> KeyCode.CLIPBOARD_COPY
CUT -> KeyCode.CLIPBOARD_CUT CUT -> KeyCode.CLIPBOARD_CUT
PASTE -> KeyCode.CLIPBOARD_PASTE PASTE -> KeyCode.CLIPBOARD_PASTE
ONE_HANDED -> if (Settings.getInstance().current.mOneHandedModeEnabled) KeyCode.STOP_ONE_HANDED_MODE else KeyCode.START_ONE_HANDED_MODE ONE_HANDED -> KeyCode.TOGGLE_ONE_HANDED_MODE
INCOGNITO -> KeyCode.TOGGLE_INCOGNITO_MODE INCOGNITO -> KeyCode.TOGGLE_INCOGNITO_MODE
AUTOCORRECT -> KeyCode.TOGGLE_AUTOCORRECT AUTOCORRECT -> KeyCode.TOGGLE_AUTOCORRECT
CLEAR_CLIPBOARD -> KeyCode.CLIPBOARD_CLEAR_HISTORY CLEAR_CLIPBOARD -> KeyCode.CLIPBOARD_CLEAR_HISTORY