mirror of
https://github.com/Helium314/HeliBoard.git
synced 2025-05-21 01:10:24 +00:00
update key labels
remove emoji label, not necessary any more as it's a toolbar key access toolbar labels via enum map allow CLIPBOARD_CUT key(code)
This commit is contained in:
parent
61cff40d3c
commit
3eafce9265
5 changed files with 16 additions and 12 deletions
|
@ -19,10 +19,12 @@ import helium314.keyboard.latin.utils.POPUP_KEYS_LAYOUT
|
||||||
import helium314.keyboard.latin.utils.POPUP_KEYS_NUMBER
|
import helium314.keyboard.latin.utils.POPUP_KEYS_NUMBER
|
||||||
import helium314.keyboard.latin.utils.ScriptUtils
|
import helium314.keyboard.latin.utils.ScriptUtils
|
||||||
import helium314.keyboard.latin.utils.ScriptUtils.script
|
import helium314.keyboard.latin.utils.ScriptUtils.script
|
||||||
|
import helium314.keyboard.latin.utils.ToolbarKey
|
||||||
import helium314.keyboard.latin.utils.removeFirst
|
import helium314.keyboard.latin.utils.removeFirst
|
||||||
import helium314.keyboard.latin.utils.replaceFirst
|
import helium314.keyboard.latin.utils.replaceFirst
|
||||||
import helium314.keyboard.latin.utils.splitAt
|
import helium314.keyboard.latin.utils.splitAt
|
||||||
import helium314.keyboard.latin.utils.sumOf
|
import helium314.keyboard.latin.utils.sumOf
|
||||||
|
import helium314.keyboard.latin.utils.toolbarKeyStrings
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Abstract parser class that handles creation of keyboard from [KeyData] arranged in rows,
|
* Abstract parser class that handles creation of keyboard from [KeyData] arranged in rows,
|
||||||
|
@ -199,7 +201,7 @@ class KeyboardParser(private val params: KeyboardParams, private val context: Co
|
||||||
if (!Settings.getInstance().current.mHasCustomFunctionalLayout) {
|
if (!Settings.getInstance().current.mHasCustomFunctionalLayout) {
|
||||||
// remove keys that should only exist on specific layouts or depend on setting (emoji, numpad, language switch)
|
// remove keys that should only exist on specific layouts or depend on setting (emoji, numpad, language switch)
|
||||||
if (!Settings.getInstance().current.mShowsEmojiKey || !params.mId.isAlphabetKeyboard)
|
if (!Settings.getInstance().current.mShowsEmojiKey || !params.mId.isAlphabetKeyboard)
|
||||||
functionalKeysBottom.removeFirst { it.label == KeyLabel.EMOJI }
|
functionalKeysBottom.removeFirst { it.label == toolbarKeyStrings[ToolbarKey.EMOJI] }
|
||||||
if (!Settings.getInstance().current.isLanguageSwitchKeyEnabled || !params.mId.isAlphabetKeyboard)
|
if (!Settings.getInstance().current.isLanguageSwitchKeyEnabled || !params.mId.isAlphabetKeyboard)
|
||||||
functionalKeysBottom.removeFirst { it.label == KeyLabel.LANGUAGE_SWITCH }
|
functionalKeysBottom.removeFirst { it.label == KeyLabel.LANGUAGE_SWITCH }
|
||||||
if (params.mId.mElementId != KeyboardId.ELEMENT_SYMBOLS)
|
if (params.mId.mElementId != KeyboardId.ELEMENT_SYMBOLS)
|
||||||
|
|
|
@ -144,7 +144,7 @@ object KeyCode {
|
||||||
fun Int.checkAndConvertCode(): Int = if (this > 0) this else when (this) {
|
fun Int.checkAndConvertCode(): Int = if (this > 0) this else when (this) {
|
||||||
// working
|
// working
|
||||||
CURRENCY_SLOT_1, CURRENCY_SLOT_2, CURRENCY_SLOT_3, CURRENCY_SLOT_4, CURRENCY_SLOT_5, CURRENCY_SLOT_6,
|
CURRENCY_SLOT_1, CURRENCY_SLOT_2, CURRENCY_SLOT_3, CURRENCY_SLOT_4, CURRENCY_SLOT_5, CURRENCY_SLOT_6,
|
||||||
VOICE_INPUT, LANGUAGE_SWITCH, SETTINGS, DELETE, ALPHA, SYMBOL, EMOJI, CLIPBOARD,
|
VOICE_INPUT, LANGUAGE_SWITCH, SETTINGS, DELETE, ALPHA, SYMBOL, EMOJI, CLIPBOARD, CLIPBOARD_CUT,
|
||||||
UNDO, REDO, ARROW_DOWN, ARROW_UP, ARROW_RIGHT, ARROW_LEFT, CLIPBOARD_COPY, CLIPBOARD_SELECT_ALL,
|
UNDO, REDO, ARROW_DOWN, ARROW_UP, ARROW_RIGHT, ARROW_LEFT, CLIPBOARD_COPY, CLIPBOARD_SELECT_ALL,
|
||||||
CLIPBOARD_SELECT_WORD, TOGGLE_INCOGNITO_MODE, TOGGLE_AUTOCORRECT, MOVE_START_OF_LINE, MOVE_END_OF_LINE,
|
CLIPBOARD_SELECT_WORD, TOGGLE_INCOGNITO_MODE, TOGGLE_AUTOCORRECT, MOVE_START_OF_LINE, MOVE_END_OF_LINE,
|
||||||
SHIFT, CAPS_LOCK, MULTIPLE_CODE_POINTS, UNSPECIFIED, CTRL, ALT, FN, CLIPBOARD_CLEAR_HISTORY,
|
SHIFT, CAPS_LOCK, MULTIPLE_CODE_POINTS, UNSPECIFIED, CTRL, ALT, FN, CLIPBOARD_CLEAR_HISTORY,
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
package helium314.keyboard.keyboard.internal.keyboard_parser.floris
|
package helium314.keyboard.keyboard.internal.keyboard_parser.floris
|
||||||
|
|
||||||
import helium314.keyboard.keyboard.internal.KeyboardParams
|
import helium314.keyboard.keyboard.internal.KeyboardParams
|
||||||
|
import helium314.keyboard.latin.utils.ToolbarKey
|
||||||
|
import helium314.keyboard.latin.utils.toolbarKeyStrings
|
||||||
|
|
||||||
/** labels for functional / special keys */
|
/** labels for functional / special keys */
|
||||||
object KeyLabel {
|
object KeyLabel {
|
||||||
const val EMOJI = "emoji"
|
|
||||||
const val COM = "com"
|
const val COM = "com"
|
||||||
const val LANGUAGE_SWITCH = "language_switch"
|
const val LANGUAGE_SWITCH = "language_switch"
|
||||||
const val ACTION = "action"
|
const val ACTION = "action"
|
||||||
|
@ -38,8 +39,8 @@ object KeyLabel {
|
||||||
"view_numeric_advanced" -> NUMPAD
|
"view_numeric_advanced" -> NUMPAD
|
||||||
"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 // phone symbols
|
"view_phone2" -> SYMBOL // phone symbols
|
||||||
"ime_ui_mode_media" -> EMOJI
|
"ime_ui_mode_media" -> toolbarKeyStrings[ToolbarKey.EMOJI]!!
|
||||||
"ime_ui_mode_clipboard" -> "clipboard" // todo: is this supported? when yes -> add to readme, and add a test
|
"ime_ui_mode_clipboard" -> toolbarKeyStrings[ToolbarKey.CLIPBOARD]!!
|
||||||
"ime_ui_mode_text" -> ALPHA
|
"ime_ui_mode_text" -> ALPHA
|
||||||
"currency_slot_1" -> CURRENCY
|
"currency_slot_1" -> CURRENCY
|
||||||
"currency_slot_2" -> CURRENCY1
|
"currency_slot_2" -> CURRENCY1
|
||||||
|
|
|
@ -427,8 +427,8 @@ sealed interface KeyData : AbstractKeyData {
|
||||||
// functional keys
|
// functional keys
|
||||||
when (label) { // or use code?
|
when (label) { // or use code?
|
||||||
KeyLabel.SYMBOL_ALPHA, KeyLabel.SYMBOL, KeyLabel.ALPHA, KeyLabel.COMMA, KeyLabel.PERIOD, KeyLabel.DELETE,
|
KeyLabel.SYMBOL_ALPHA, KeyLabel.SYMBOL, KeyLabel.ALPHA, KeyLabel.COMMA, KeyLabel.PERIOD, KeyLabel.DELETE,
|
||||||
KeyLabel.EMOJI, KeyLabel.COM, KeyLabel.LANGUAGE_SWITCH, KeyLabel.NUMPAD, KeyLabel.CTRL, KeyLabel.ALT,
|
KeyLabel.COM, KeyLabel.LANGUAGE_SWITCH, KeyLabel.NUMPAD, KeyLabel.CTRL, KeyLabel.ALT,
|
||||||
KeyLabel.FN, KeyLabel.META -> return Key.BACKGROUND_TYPE_FUNCTIONAL
|
KeyLabel.FN, KeyLabel.META, toolbarKeyStrings[ToolbarKey.EMOJI] -> return Key.BACKGROUND_TYPE_FUNCTIONAL
|
||||||
KeyLabel.SPACE, KeyLabel.ZWNJ -> return Key.BACKGROUND_TYPE_SPACEBAR
|
KeyLabel.SPACE, KeyLabel.ZWNJ -> return Key.BACKGROUND_TYPE_SPACEBAR
|
||||||
KeyLabel.ACTION -> return Key.BACKGROUND_TYPE_ACTION
|
KeyLabel.ACTION -> return Key.BACKGROUND_TYPE_ACTION
|
||||||
KeyLabel.SHIFT -> return getShiftBackground(params)
|
KeyLabel.SHIFT -> return getShiftBackground(params)
|
||||||
|
@ -465,7 +465,7 @@ sealed interface KeyData : AbstractKeyData {
|
||||||
KeyLabel.ACTION -> "${getActionKeyLabel(params)}|${getActionKeyCode(params)}"
|
KeyLabel.ACTION -> "${getActionKeyLabel(params)}|${getActionKeyCode(params)}"
|
||||||
KeyLabel.DELETE -> "!icon/delete_key|!code/key_delete"
|
KeyLabel.DELETE -> "!icon/delete_key|!code/key_delete"
|
||||||
KeyLabel.SHIFT -> "${getShiftLabel(params)}|!code/key_shift"
|
KeyLabel.SHIFT -> "${getShiftLabel(params)}|!code/key_shift"
|
||||||
KeyLabel.EMOJI -> "!icon/emoji_normal_key|!code/key_emoji"
|
// KeyLabel.EMOJI -> "!icon/emoji_normal_key|!code/key_emoji"
|
||||||
// todo (later): label and popupKeys for .com should be in localeKeyTexts, handled similar to currency key
|
// todo (later): label and popupKeys for .com should be in localeKeyTexts, handled similar to currency key
|
||||||
KeyLabel.COM -> ".com"
|
KeyLabel.COM -> ".com"
|
||||||
KeyLabel.LANGUAGE_SWITCH -> "!icon/language_switch_key|!code/key_language_switch"
|
KeyLabel.LANGUAGE_SWITCH -> "!icon/language_switch_key|!code/key_language_switch"
|
||||||
|
@ -480,7 +480,7 @@ sealed interface KeyData : AbstractKeyData {
|
||||||
KeyLabel.CTRL, KeyLabel.ALT, KeyLabel.FN, KeyLabel.META -> label.uppercase(Locale.US)
|
KeyLabel.CTRL, KeyLabel.ALT, KeyLabel.FN, KeyLabel.META -> label.uppercase(Locale.US)
|
||||||
KeyLabel.TAB -> "!icon/tab_key|"
|
KeyLabel.TAB -> "!icon/tab_key|"
|
||||||
else -> {
|
else -> {
|
||||||
if (label in toolbarKeyStrings) {
|
if (label in toolbarKeyStrings.values) {
|
||||||
"!icon/$label|"
|
"!icon/$label|"
|
||||||
} else label
|
} else label
|
||||||
}
|
}
|
||||||
|
@ -498,7 +498,7 @@ sealed interface KeyData : AbstractKeyData {
|
||||||
KeyLabel.META -> KeyCode.META
|
KeyLabel.META -> KeyCode.META
|
||||||
KeyLabel.TAB -> KeyCode.TAB
|
KeyLabel.TAB -> KeyCode.TAB
|
||||||
else -> {
|
else -> {
|
||||||
if (label in toolbarKeyStrings) {
|
if (label in toolbarKeyStrings.values) {
|
||||||
getCodeForToolbarKey(ToolbarKey.valueOf(label.uppercase(Locale.US)))
|
getCodeForToolbarKey(ToolbarKey.valueOf(label.uppercase(Locale.US)))
|
||||||
} else code
|
} else code
|
||||||
}
|
}
|
||||||
|
@ -519,7 +519,7 @@ sealed interface KeyData : AbstractKeyData {
|
||||||
}
|
}
|
||||||
KeyLabel.SPACE -> if (params.mId.isNumberLayout) Key.LABEL_FLAGS_ALIGN_ICON_TO_BOTTOM else 0
|
KeyLabel.SPACE -> if (params.mId.isNumberLayout) Key.LABEL_FLAGS_ALIGN_ICON_TO_BOTTOM else 0
|
||||||
KeyLabel.SHIFT -> Key.LABEL_FLAGS_PRESERVE_CASE or if (!params.mId.isAlphabetKeyboard) Key.LABEL_FLAGS_FOLLOW_FUNCTIONAL_TEXT_COLOR else 0
|
KeyLabel.SHIFT -> Key.LABEL_FLAGS_PRESERVE_CASE or if (!params.mId.isAlphabetKeyboard) Key.LABEL_FLAGS_FOLLOW_FUNCTIONAL_TEXT_COLOR else 0
|
||||||
KeyLabel.EMOJI -> KeyboardTheme.getThemeActionAndEmojiKeyLabelFlags(params.mThemeId)
|
toolbarKeyStrings[ToolbarKey.EMOJI] -> KeyboardTheme.getThemeActionAndEmojiKeyLabelFlags(params.mThemeId)
|
||||||
KeyLabel.COM -> Key.LABEL_FLAGS_AUTO_X_SCALE or Key.LABEL_FLAGS_FONT_NORMAL or Key.LABEL_FLAGS_HAS_POPUP_HINT or Key.LABEL_FLAGS_PRESERVE_CASE
|
KeyLabel.COM -> Key.LABEL_FLAGS_AUTO_X_SCALE or Key.LABEL_FLAGS_FONT_NORMAL or Key.LABEL_FLAGS_HAS_POPUP_HINT or Key.LABEL_FLAGS_PRESERVE_CASE
|
||||||
KeyLabel.ZWNJ -> Key.LABEL_FLAGS_HAS_POPUP_HINT
|
KeyLabel.ZWNJ -> Key.LABEL_FLAGS_HAS_POPUP_HINT
|
||||||
KeyLabel.CURRENCY -> Key.LABEL_FLAGS_FOLLOW_KEY_LETTER_RATIO
|
KeyLabel.CURRENCY -> Key.LABEL_FLAGS_FOLLOW_KEY_LETTER_RATIO
|
||||||
|
|
|
@ -14,6 +14,7 @@ import helium314.keyboard.keyboard.internal.keyboard_parser.floris.KeyCode
|
||||||
import helium314.keyboard.latin.R
|
import helium314.keyboard.latin.R
|
||||||
import helium314.keyboard.latin.settings.Settings
|
import helium314.keyboard.latin.settings.Settings
|
||||||
import helium314.keyboard.latin.utils.ToolbarKey.*
|
import helium314.keyboard.latin.utils.ToolbarKey.*
|
||||||
|
import java.util.EnumMap
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
|
|
||||||
fun createToolbarKey(context: Context, keyboardAttr: TypedArray, key: ToolbarKey): ImageButton {
|
fun createToolbarKey(context: Context, keyboardAttr: TypedArray, key: ToolbarKey): ImageButton {
|
||||||
|
@ -114,7 +115,7 @@ enum class ToolbarKey {
|
||||||
FULL_LEFT, FULL_RIGHT, INCOGNITO, AUTOCORRECT, CLEAR_CLIPBOARD, CLOSE_HISTORY, EMOJI
|
FULL_LEFT, FULL_RIGHT, INCOGNITO, AUTOCORRECT, CLEAR_CLIPBOARD, CLOSE_HISTORY, EMOJI
|
||||||
}
|
}
|
||||||
|
|
||||||
val toolbarKeyStrings: Set<String> = entries.mapTo(HashSet()) { it.toString().lowercase(Locale.US) }
|
val toolbarKeyStrings = entries.associateWithTo(EnumMap(ToolbarKey::class.java)) { it.toString().lowercase(Locale.US) }
|
||||||
|
|
||||||
val defaultToolbarPref = entries.filterNot { it == CLOSE_HISTORY }.joinToString(";") {
|
val defaultToolbarPref = entries.filterNot { it == CLOSE_HISTORY }.joinToString(";") {
|
||||||
when (it) {
|
when (it) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue