Skip to content

Commit

Permalink
Remove need to manually index layouts
Browse files Browse the repository at this point in the history
  • Loading branch information
bluedrink9 committed Feb 9, 2024
1 parent 0538733 commit 8a2b194
Show file tree
Hide file tree
Showing 2 changed files with 108 additions and 103 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
209 changes: 107 additions & 102 deletions app/src/main/java/com/dessalines/thumbkey/utils/KeyboardLayout.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

0 comments on commit 8a2b194

Please sign in to comment.