From bd7461f628eae9d9a5f6eae95aa5d8c544e54762 Mon Sep 17 00:00:00 2001 From: Helium314 Date: Wed, 22 May 2024 22:55:52 +0200 Subject: [PATCH] add / to symbols layout and adjust functional key layouts for symbols layouts i remember this was requested, can't find the issue though anyway, now with fully customizable layouts this is not blocked by "people might be used to this" any more --- app/src/main/assets/layouts/azerty.json | 2 +- app/src/main/assets/layouts/bepo.txt | 2 +- app/src/main/assets/layouts/halmak.txt | 2 +- app/src/main/assets/layouts/kabyle.json | 2 +- app/src/main/assets/layouts/kaitag.txt | 2 +- app/src/main/assets/layouts/symbols.txt | 1 + .../main/assets/layouts/symbols_shifted.txt | 3 +++ app/src/main/assets/layouts/workman.txt | 2 +- .../keyboard_parser/KeyboardParser.kt | 24 ++----------------- .../keyboard_parser/floris/TextKeyData.kt | 3 +++ 10 files changed, 15 insertions(+), 28 deletions(-) diff --git a/app/src/main/assets/layouts/azerty.json b/app/src/main/assets/layouts/azerty.json index 19ae671e7..92b5a95b2 100644 --- a/app/src/main/assets/layouts/azerty.json +++ b/app/src/main/assets/layouts/azerty.json @@ -21,7 +21,7 @@ { "label": "j" }, { "label": "k" }, { "label": "l" }, - { "label": "m", "popup": { "main": { "label": "/" } } } + { "label": "m" } ], [ { "label": "w" }, diff --git a/app/src/main/assets/layouts/bepo.txt b/app/src/main/assets/layouts/bepo.txt index 0aaa74a63..de5b027f5 100644 --- a/app/src/main/assets/layouts/bepo.txt +++ b/app/src/main/assets/layouts/bepo.txt @@ -18,7 +18,7 @@ t s r n -m / +m y x diff --git a/app/src/main/assets/layouts/halmak.txt b/app/src/main/assets/layouts/halmak.txt index 22f0ad773..2b1d7007b 100644 --- a/app/src/main/assets/layouts/halmak.txt +++ b/app/src/main/assets/layouts/halmak.txt @@ -18,7 +18,7 @@ t a e o -i / +i m v diff --git a/app/src/main/assets/layouts/kabyle.json b/app/src/main/assets/layouts/kabyle.json index 948c3dca4..ccaa5a0b2 100644 --- a/app/src/main/assets/layouts/kabyle.json +++ b/app/src/main/assets/layouts/kabyle.json @@ -21,7 +21,7 @@ { "label": "j" }, { "label": "k" }, { "label": "l" }, - { "label": "m", "popup": { "main": { "label": "/" } } } + { "label": "m" } ], [ { "label": "w" }, diff --git a/app/src/main/assets/layouts/kaitag.txt b/app/src/main/assets/layouts/kaitag.txt index 51dcff3ea..a79cd8c59 100644 --- a/app/src/main/assets/layouts/kaitag.txt +++ b/app/src/main/assets/layouts/kaitag.txt @@ -19,7 +19,7 @@ о л д -ж / +ж ъ ~ я diff --git a/app/src/main/assets/layouts/symbols.txt b/app/src/main/assets/layouts/symbols.txt index 40f67d11c..00cfd1159 100644 --- a/app/src/main/assets/layouts/symbols.txt +++ b/app/src/main/assets/layouts/symbols.txt @@ -18,6 +18,7 @@ _ % ‰ + ± ( < { [ ) > } ] +/ * † ‡ ★ " diff --git a/app/src/main/assets/layouts/symbols_shifted.txt b/app/src/main/assets/layouts/symbols_shifted.txt index a3471745e..3693b6b1f 100644 --- a/app/src/main/assets/layouts/symbols_shifted.txt +++ b/app/src/main/assets/layouts/symbols_shifted.txt @@ -26,3 +26,6 @@ $$$4 % ℅ [ ] + +< !fixedColumnOrder!3 ‹ ≤ « +> !fixedColumnOrder!3 › ≥ » diff --git a/app/src/main/assets/layouts/workman.txt b/app/src/main/assets/layouts/workman.txt index ef03de511..be1d1d8e6 100644 --- a/app/src/main/assets/layouts/workman.txt +++ b/app/src/main/assets/layouts/workman.txt @@ -18,7 +18,7 @@ y n e o -i / +i z x diff --git a/app/src/main/java/helium314/keyboard/keyboard/internal/keyboard_parser/KeyboardParser.kt b/app/src/main/java/helium314/keyboard/keyboard/internal/keyboard_parser/KeyboardParser.kt index c492e8d59..d99647db8 100644 --- a/app/src/main/java/helium314/keyboard/keyboard/internal/keyboard_parser/KeyboardParser.kt +++ b/app/src/main/java/helium314/keyboard/keyboard/internal/keyboard_parser/KeyboardParser.kt @@ -218,31 +218,11 @@ class KeyboardParser(private val params: KeyboardParams, private val context: Co ) baseKeys.removeLast() } - // add those extra keys depending on layout (remove later) - val spaceIndex = functionalKeysBottom.indexOfFirst { it.label == KeyLabel.SPACE && it.width <= 0 } // 0 or -1 + // add zwnj key next to space if necessary + val spaceIndex = functionalKeysBottom.indexOfFirst { it.label == KeyLabel.SPACE && it.width <= 0 } // width could be 0 or -1 if (spaceIndex >= 0) { if (params.mLocaleKeyboardInfos.hasZwnjKey && params.mId.isAlphabetKeyboard) { - // add zwnj key next to space functionalKeysBottom.add(spaceIndex + 1, TextKeyData(label = KeyLabel.ZWNJ)) - } else if (params.mId.mElementId == KeyboardId.ELEMENT_SYMBOLS) { - // add / key next to space, todo (later): not any more, but keep it so this PR can be released without too many people complaining - functionalKeysBottom.add(spaceIndex + 1, TextKeyData(label = "/", type = KeyType.FUNCTION)) - } else if (params.mId.mElementId == KeyboardId.ELEMENT_SYMBOLS_SHIFTED) { - // add < and > keys next to space, todo (later): not any more, but keep it so this PR can be released without too many people complaining - val key1 = TextKeyData( - label = "<", - popup = SimplePopups(listOf("!fixedColumnOrder!3", "‹", "≤", "«")), - labelFlags = Key.LABEL_FLAGS_HAS_POPUP_HINT, - type = KeyType.FUNCTION - ) - val key2 = TextKeyData( - label = ">", - popup = SimplePopups(listOf("!fixedColumnOrder!3", "›", "≥", "»")), - labelFlags = Key.LABEL_FLAGS_HAS_POPUP_HINT, - type = KeyType.FUNCTION - ) - functionalKeysBottom.add(spaceIndex + 1, key2) - functionalKeysBottom.add(spaceIndex, key1) } } baseKeys.add(mutableListOf()) diff --git a/app/src/main/java/helium314/keyboard/keyboard/internal/keyboard_parser/floris/TextKeyData.kt b/app/src/main/java/helium314/keyboard/keyboard/internal/keyboard_parser/floris/TextKeyData.kt index fe8fa73d2..39f64a8ec 100644 --- a/app/src/main/java/helium314/keyboard/keyboard/internal/keyboard_parser/floris/TextKeyData.kt +++ b/app/src/main/java/helium314/keyboard/keyboard/internal/keyboard_parser/floris/TextKeyData.kt @@ -402,6 +402,9 @@ sealed interface KeyData : AbstractKeyData { KeyLabel.SHIFT -> return getShiftBackground(params) } if (type == KeyType.PLACEHOLDER) return Key.BACKGROUND_TYPE_EMPTY + if ((params.mId.mElementId == KeyboardId.ELEMENT_SYMBOLS || params.mId.mElementId == KeyboardId.ELEMENT_SYMBOLS_SHIFTED) + && (groupId == GROUP_COMMA || groupId == GROUP_PERIOD)) + return Key.BACKGROUND_TYPE_FUNCTIONAL return Key.BACKGROUND_TYPE_NORMAL }