From 8a2b1941d6d50b7c97d8f96bb602202b37c439bb Mon Sep 17 00:00:00 2001 From: bluedrink9 Date: Fri, 9 Feb 2024 17:40:56 +1300 Subject: [PATCH] Remove need to manually index layouts --- README.md | 2 +- .../thumbkey/utils/KeyboardLayout.kt | 209 +++++++++--------- 2 files changed, 108 insertions(+), 103 deletions(-) diff --git a/README.md b/README.md index 3c66045f..0469150c 100644 --- a/README.md +++ b/README.md @@ -160,7 +160,7 @@ I'd be happy to accept additions to add more languages, and layouts. To start: - Change the characters to whatever you'd like. - This file contains both a _shifted_, and _non-shifted_ keyboard, so make sure you take care of both. - You can also add or subtract columns if you want, but the layout must remain a grid. I **highly recommend** sticking with the 3x3 layout. -- Add the new keyboard to the [KeyboardLayout.kt file](https://github.com/dessalines/thumb-key/blob/main/app/src/main/java/com/dessalines/thumbkey/utils/KeyboardLayout.kt), with a new higher index. +- Add the new keyboard to the end of [KeyboardLayout.kt file](https://github.com/dessalines/thumb-key/blob/main/app/src/main/java/com/dessalines/thumbkey/utils/KeyboardLayout.kt). - Either open a pull request, or an issue, linking your new keyboard file. I'll handle the rest of the work. ## Theming guide diff --git a/app/src/main/java/com/dessalines/thumbkey/utils/KeyboardLayout.kt b/app/src/main/java/com/dessalines/thumbkey/utils/KeyboardLayout.kt index f3ff1e7f..c152714a 100644 --- a/app/src/main/java/com/dessalines/thumbkey/utils/KeyboardLayout.kt +++ b/app/src/main/java/com/dessalines/thumbkey/utils/KeyboardLayout.kt @@ -100,106 +100,111 @@ import com.dessalines.thumbkey.keyboards.KB_UK_MESSAGEEASE_SYMBOLS import com.dessalines.thumbkey.keyboards.KB_UK_RU_MESSAGEEASE_SYMBOLS import com.dessalines.thumbkey.keyboards.KB_UK_THUMBKEY -// Make sure new keyboards are added AT THE END of this list, and have a higher index. -// DO NOT CHANGE existing indexes. -enum class KeyboardLayout(val index: Int, val keyboardDefinition: KeyboardDefinition) { - ENThumbKey(0, KB_EN_THUMBKEY), - ENThumbKeyProgrammer(1, KB_EN_THUMBKEY_PROGRAMMER), - DEThumbKey(2, KB_DE_THUMBKEY), - DAThumbKey(3, KB_DA_THUMBKEY), - ESThumbKey(4, KB_ES_THUMBKEY), - EUThumbKey(5, KB_EU_THUMBKEY), - FAThumbKey(6, KB_FA_THUMBKEY), - FIThumbKey(7, KB_FI_THUMBKEY), - FRThumbKeyV1(8, KB_FR_THUMBKEY_V1), - ITThumbKey(9, KB_IT_THUMBKEY), - NLThumbKey(10, KB_NL_THUMBKEY), - PLThumbKey(11, KB_PL_THUMBKEY), - PTThumbKey(12, KB_PT_THUMBKEY), - RUThumbKey(13, KB_RU_THUMBKEY), - UKThumbKey(14, KB_UK_THUMBKEY), - ENMessageEase(15, KB_EN_MESSAGEEASE), - ENMessageEaseSymbols(16, KB_EN_MESSAGEEASE_SYMBOLS), - HEMessageEase(17, KB_HE_MESSAGEEASE), - RUThumbKeySymbols(18, KB_RU_THUMBKEY_SYMBOLS), - BYThumbKey(19, KB_BY_THUMBKEY), - BYThumbKeySymbols(20, KB_BY_THUMBKEY_SYMBOLS), - ENThumbKeySymbols(21, KB_EN_THUMBKEY_SYMBOLS), - FIThumbKeyWide(22, KB_FI_THUMBKEY_WIDE), - DEMessageEase(23, KB_DE_MESSAGEEASE), - NOThumbKey(24, KB_NO_THUMBKEY), - DEThumbKeyMultiLingual(25, KB_DE_THUMBKEY_MULTILINGUAL), - KAThumbKey(26, KB_KA_THUMBKEY), - IDThumbKeySymbolsV1(27, KB_ID_THUMBKEY_SYMBOLS_V1), - FRMessageEase(28, KB_FR_MESSAGEEASE), - RUMessageEaseSymbols(29, KB_RU_MESSAGEEASE_SYMBOLS), - T9(30, KB_T9), - JAThumbKeyHiragana(31, KB_JA_THUMBKEY_HIRAGANA), - JAThumbKeyKatakana(32, KB_JA_THUMBKEY_KATAKANA), - FRThumbKeyV2(33, KB_FR_THUMBKEY_V2), - SVThumbKey(34, KB_SV_THUMBKEY), - TRThumbKey(35, KB_TR_THUMBKEY), - ENTypeSplit(36, KB_EN_TYPESPLIT), - ESTypeSplit(37, KB_ES_TYPESPLIT), - DETypeSplit(38, KB_DE_TYPESPLIT), - FRTypeSplit(39, KB_FR_TYPESPLIT), - ITTypeSplit(40, KB_IT_TYPESPLIT), - PTTypeSplit(41, KB_PT_TYPESPLIT), - PLTypeSplit(42, KB_PL_TYPESPLIT), - ENTwoHands(43, KB_EN_TWO_HANDS), - ENThumbKeyProgrammerWide(44, KB_EN_THUMBKEY_PROGRAMMER_WIDE), - HUThumbKey(45, KB_HU_THUMBKEY), - ESEOThumbKey(46, KB_ES_EO_THUMBKEY), - ITMessageEase(47, KB_IT_MESSAGEEASE), - ENSKThumbKey(48, KB_EN_SK_THUMBKEY), - HEThumbKey(49, KB_HE_THUMBKEY), - EOENDEThumbKey(50, KB_EOENDE_THUMBKEY), - GRThumbKey(51, KB_GR_THUMBKEY), - ENCZThumbKey(52, KB_EN_CZ_THUMBKEY), - ESMessageEase(53, KB_ES_MESSAGEEASE), - RUMessageEase(54, KB_RU_MESSAGEEASE), - BGThumbKeySymbols(55, KB_BG_THUMBKEY_SYMBOLS), - HRTwoHands(56, KB_HR_TWO_HANDS), - HRThumbKey(57, KB_HR_THUMBKEY), - HRThumbKeySymbols(58, KB_HR_THUMBKEY_SYMBOLS), - FITypeSplit(59, KB_FI_TYPESPLIT), - LVLTGThumbKey(60, KB_LV_LTG_THUMBKEY), - LTThumbKey(61, KB_LT_THUMBKEY), - IDThumbKeySymbolsV2(62, KB_ID_THUMBKEY_SYMBOLS_V2), - IDThumbKeySymbolsNumeric(63, KB_ID_THUMBKEY_SYMBOLS_NUMERIC_V1), - ESCAThumbKey(64, KB_ES_CA_THUMBKEY), - ENITThumbKey(65, KB_EN_IT_THUMBKEY), - ENEOMessageEaseSymbols(66, KB_ENEO_MESSAGEEASE_SYMBOLS), - UKRUMessageEaseSymbols(67, KB_UK_RU_MESSAGEEASE_SYMBOLS), - DEMessageEaseSymbols(68, KB_DE_MESSAGEEASE_SYMBOLS), - CAThumbKey(69, KB_CA_THUMBKEY), - MATHThumbKey(70, KB_MATH_THUMBKEY), - ENEEThumbKey(71, KB_EN_EE_THUMBKEY), - SKThumbKey(72, KB_SK_THUMBKEY), - ENNOTypeSplit(73, KB_EN_NO_TYPESPLIT), - ENThumbKeyCompose(74, KB_EN_THUMBKEY_COMPOSE), - ENNOThumbKey(75, KB_EN_NO_THUMBKEY), - ENTwoHandsSymbols(76, KB_EN_TWO_HANDS_SYMBOLS), - ENTwoHandsSymbolsNumbers(77, KB_EN_TWO_HANDS_SYMBOLS_NUMBERS), - JATypeSplitHiragana(78, KB_JA_TYPESPLIT_HIRAGANA), - JATypeSplitKatakana(79, KB_JA_TYPESPLIT_KATAKANA), - EUESThumbKey(80, KB_EU_ES_THUMBKEY), - ENQwertyFour(81, KB_EN_QWERTYFOUR), - KZThumbKey(82, KB_KZ_THUMBKEY), - ENMIThumbKey(83, KB_EN_MI_THUMBKEY), - ENMIThumbKeySymbols(84, KB_EN_MI_THUMBKEY_SYMBOLS), - ESCAMessageEase(85, KB_ES_CA_MESSAGEEASE), - SVMessageEase(86, KB_SV_MESSAGEEASE), - ENDoubleSymbols(87, KB_EN_DOUBLE_SYMBOLS), - FIMessageEase(88, KB_FI_MESSAGEEASE), - ENDAThumbKeySymbols(89, KB_EN_DA_THUMBKEY_SYMBOLS), - FIEEMessageEase(90, KB_FI_EE_MESSAGEEASE_SYMBOLS), - ENPLThumbkey(91, KB_EN_PL_THUMBKEY), - BGPhoneticMessagEaseSymbols(92, KB_BG_PHONETIC_MESSAGEASE_SYMBOLS), - UKMessageEaseSymbols(93, KB_UK_MESSAGEEASE_SYMBOLS), - ENFRMessagEaseSymbols(94, KB_EN_FR_MESSAGEASE_SYMBOLS), - HEMessageEaseSymbols(95, KB_HE_MESSAGEEASE_SYMBOLS), - ENNOMessagEaseSymbols(96, KB_EN_NO_MESSAGEASE_SYMBOLS), - ENMessageEaseLeft(97, KB_EN_MESSAGEEASE_LEFT), - ENMessageEaseSymbolsLeft(98, KB_EN_MESSAGEEASE_SYMBOLS_LEFT), +// Make sure new keyboards are added AT THE END of this list. +// DO NOT add them in the middle. +enum class KeyboardLayout(val keyboardDefinition: KeyboardDefinition) { + ENThumbKey(KB_EN_THUMBKEY), + ENThumbKeyProgrammer(KB_EN_THUMBKEY_PROGRAMMER), + DEThumbKey(KB_DE_THUMBKEY), + DAThumbKey(KB_DA_THUMBKEY), + ESThumbKey(KB_ES_THUMBKEY), + EUThumbKey(KB_EU_THUMBKEY), + FAThumbKey(KB_FA_THUMBKEY), + FIThumbKey(KB_FI_THUMBKEY), + FRThumbKeyV1(KB_FR_THUMBKEY_V1), + ITThumbKey(KB_IT_THUMBKEY), + NLThumbKey(KB_NL_THUMBKEY), + PLThumbKey(KB_PL_THUMBKEY), + PTThumbKey(KB_PT_THUMBKEY), + RUThumbKey(KB_RU_THUMBKEY), + UKThumbKey(KB_UK_THUMBKEY), + ENMessageEase(KB_EN_MESSAGEEASE), + ENMessageEaseSymbols(KB_EN_MESSAGEEASE_SYMBOLS), + HEMessageEase(KB_HE_MESSAGEEASE), + RUThumbKeySymbols(KB_RU_THUMBKEY_SYMBOLS), + BYThumbKey(KB_BY_THUMBKEY), + BYThumbKeySymbols(KB_BY_THUMBKEY_SYMBOLS), + ENThumbKeySymbols(KB_EN_THUMBKEY_SYMBOLS), + FIThumbKeyWide(KB_FI_THUMBKEY_WIDE), + DEMessageEase(KB_DE_MESSAGEEASE), + NOThumbKey(KB_NO_THUMBKEY), + DEThumbKeyMultiLingual(KB_DE_THUMBKEY_MULTILINGUAL), + KAThumbKey(KB_KA_THUMBKEY), + IDThumbKeySymbolsV1(KB_ID_THUMBKEY_SYMBOLS_V1), + FRMessageEase(KB_FR_MESSAGEEASE), + RUMessageEaseSymbols(KB_RU_MESSAGEEASE_SYMBOLS), + T9(KB_T9), + JAThumbKeyHiragana(KB_JA_THUMBKEY_HIRAGANA), + JAThumbKeyKatakana(KB_JA_THUMBKEY_KATAKANA), + FRThumbKeyV2(KB_FR_THUMBKEY_V2), + SVThumbKey(KB_SV_THUMBKEY), + TRThumbKey(KB_TR_THUMBKEY), + ENTypeSplit(KB_EN_TYPESPLIT), + ESTypeSplit(KB_ES_TYPESPLIT), + DETypeSplit(KB_DE_TYPESPLIT), + FRTypeSplit(KB_FR_TYPESPLIT), + ITTypeSplit(KB_IT_TYPESPLIT), + PTTypeSplit(KB_PT_TYPESPLIT), + PLTypeSplit(KB_PL_TYPESPLIT), + ENTwoHands(KB_EN_TWO_HANDS), + ENThumbKeyProgrammerWide(KB_EN_THUMBKEY_PROGRAMMER_WIDE), + HUThumbKey(KB_HU_THUMBKEY), + ESEOThumbKey(KB_ES_EO_THUMBKEY), + ITMessageEase(KB_IT_MESSAGEEASE), + ENSKThumbKey(KB_EN_SK_THUMBKEY), + HEThumbKey(KB_HE_THUMBKEY), + EOENDEThumbKey(KB_EOENDE_THUMBKEY), + GRThumbKey(KB_GR_THUMBKEY), + ENCZThumbKey(KB_EN_CZ_THUMBKEY), + ESMessageEase(KB_ES_MESSAGEEASE), + RUMessageEase(KB_RU_MESSAGEEASE), + BGThumbKeySymbols(KB_BG_THUMBKEY_SYMBOLS), + HRTwoHands(KB_HR_TWO_HANDS), + HRThumbKey(KB_HR_THUMBKEY), + HRThumbKeySymbols(KB_HR_THUMBKEY_SYMBOLS), + FITypeSplit(KB_FI_TYPESPLIT), + LVLTGThumbKey(KB_LV_LTG_THUMBKEY), + LTThumbKey(KB_LT_THUMBKEY), + IDThumbKeySymbolsV2(KB_ID_THUMBKEY_SYMBOLS_V2), + IDThumbKeySymbolsNumeric(KB_ID_THUMBKEY_SYMBOLS_NUMERIC_V1), + ESCAThumbKey(KB_ES_CA_THUMBKEY), + ENITThumbKey(KB_EN_IT_THUMBKEY), + ENEOMessageEaseSymbols(KB_ENEO_MESSAGEEASE_SYMBOLS), + UKRUMessageEaseSymbols(KB_UK_RU_MESSAGEEASE_SYMBOLS), + DEMessageEaseSymbols(KB_DE_MESSAGEEASE_SYMBOLS), + CAThumbKey(KB_CA_THUMBKEY), + MATHThumbKey(KB_MATH_THUMBKEY), + ENEEThumbKey(KB_EN_EE_THUMBKEY), + SKThumbKey(KB_SK_THUMBKEY), + ENNOTypeSplit(KB_EN_NO_TYPESPLIT), + ENThumbKeyCompose(KB_EN_THUMBKEY_COMPOSE), + ENNOThumbKey(KB_EN_NO_THUMBKEY), + ENTwoHandsSymbols(KB_EN_TWO_HANDS_SYMBOLS), + ENTwoHandsSymbolsNumbers(KB_EN_TWO_HANDS_SYMBOLS_NUMBERS), + JATypeSplitHiragana(KB_JA_TYPESPLIT_HIRAGANA), + JATypeSplitKatakana(KB_JA_TYPESPLIT_KATAKANA), + EUESThumbKey(KB_EU_ES_THUMBKEY), + ENQwertyFour(KB_EN_QWERTYFOUR), + KZThumbKey(KB_KZ_THUMBKEY), + ENMIThumbKey(KB_EN_MI_THUMBKEY), + ENMIThumbKeySymbols(KB_EN_MI_THUMBKEY_SYMBOLS), + ESCAMessageEase(KB_ES_CA_MESSAGEEASE), + SVMessageEase(KB_SV_MESSAGEEASE), + ENDoubleSymbols(KB_EN_DOUBLE_SYMBOLS), + FIMessageEase(KB_FI_MESSAGEEASE), + ENDAThumbKeySymbols(KB_EN_DA_THUMBKEY_SYMBOLS), + FIEEMessageEase(KB_FI_EE_MESSAGEEASE_SYMBOLS), + ENPLThumbkey(KB_EN_PL_THUMBKEY), + BGPhoneticMessagEaseSymbols(KB_BG_PHONETIC_MESSAGEASE_SYMBOLS), + UKMessageEaseSymbols(KB_UK_MESSAGEEASE_SYMBOLS), + ENFRMessagEaseSymbols(KB_EN_FR_MESSAGEASE_SYMBOLS), + HEMessageEaseSymbols(KB_HE_MESSAGEEASE_SYMBOLS), + ENNOMessagEaseSymbols(KB_EN_NO_MESSAGEASE_SYMBOLS), + ENMessageEaseLeft(KB_EN_MESSAGEEASE_LEFT), + ENMessageEaseSymbolsLeft(KB_EN_MESSAGEEASE_SYMBOLS_LEFT), + + ; + + val index: Int + get() = ordinal }