mirror of
https://github.com/Helium314/HeliBoard.git
synced 2025-04-20 06:09:09 +00:00
remove label processing from KeyboardParser
This commit is contained in:
parent
1a630821db
commit
6bf29ffc16
2 changed files with 8 additions and 14 deletions
|
@ -103,14 +103,13 @@ class KeyboardParser(private val params: KeyboardParams, private val context: Co
|
|||
val functionalKeysFromBottom = functionalKeysBottom.getOrNull(i - bottomIndexOffset) ?: emptyList()
|
||||
functionalKeys.add(getFunctionalKeysBySide(functionalKeysFromTop, functionalKeysFromBottom))
|
||||
|
||||
row.mapNotNull { key ->
|
||||
row.map { key ->
|
||||
val extraFlags = if (key.label.length > 2 && key.label.codePointCount(0, key.label.length) > 2 && !isEmoji(key.label))
|
||||
Key.LABEL_FLAGS_AUTO_X_SCALE
|
||||
else 0
|
||||
val keyData = key.processFunctionalKeys() ?: return@mapNotNull null // all keys could actually be functional keys...
|
||||
if (DebugFlags.DEBUG_ENABLED)
|
||||
Log.d(TAG, "adding key ${keyData.label}, ${keyData.code}")
|
||||
keyData.toKeyParams(params, defaultLabelFlags or extraFlags)
|
||||
Log.d(TAG, "adding key ${key.label}, ${key.code}")
|
||||
key.toKeyParams(params, defaultLabelFlags or extraFlags)
|
||||
}
|
||||
}
|
||||
return setReasonableWidths(baseKeyParams, functionalKeys)
|
||||
|
@ -256,18 +255,11 @@ class KeyboardParser(private val params: KeyboardParams, private val context: Co
|
|||
// functional keys from top rows are the outermost, if there are some in the same row
|
||||
functionalKeysFromTopLeft.addAll(functionalKeysFromBottomLeft)
|
||||
functionalKeysFromBottomRight.addAll(functionalKeysFromTopRight)
|
||||
val functionalKeysLeft = functionalKeysFromTopLeft.mapNotNull { it.processFunctionalKeys()?.toKeyParams(params) }
|
||||
val functionalKeysRight = functionalKeysFromBottomRight.mapNotNull { it.processFunctionalKeys()?.toKeyParams(params) }
|
||||
val functionalKeysLeft = functionalKeysFromTopLeft.map { it.toKeyParams(params) }
|
||||
val functionalKeysRight = functionalKeysFromBottomRight.map { it.toKeyParams(params) }
|
||||
return functionalKeysLeft to functionalKeysRight
|
||||
}
|
||||
|
||||
// todo: try moving defaultLabelFlags and layoutInfo into KeyboardParams
|
||||
private fun KeyData.processFunctionalKeys(): KeyData? = when (label) {
|
||||
// todo: why defaultLabelFlags exactly here? is this for armenian or bengali period labels? try removing also check in holo theme
|
||||
KeyLabel.PERIOD -> copy(newLabelFlags = labelFlags or defaultLabelFlags)
|
||||
else -> this
|
||||
}
|
||||
|
||||
private fun addNumberRowOrPopupKeys(baseKeys: MutableList<MutableList<KeyData>>) {
|
||||
if (!params.mId.mNumberRowEnabled && params.mId.mElementId == KeyboardId.ELEMENT_SYMBOLS) {
|
||||
// replace first symbols row with number row, but use the labels as popupKeys
|
||||
|
|
|
@ -459,7 +459,9 @@ sealed interface KeyData : AbstractKeyData {
|
|||
private fun getAdditionalLabelFlags(params: KeyboardParams): Int {
|
||||
return when (label) {
|
||||
KeyLabel.ALPHA, KeyLabel.SYMBOL_ALPHA, KeyLabel.SYMBOL -> Key.LABEL_FLAGS_PRESERVE_CASE or Key.LABEL_FLAGS_FOLLOW_FUNCTIONAL_TEXT_COLOR
|
||||
KeyLabel.PERIOD, KeyLabel.COMMA -> Key.LABEL_FLAGS_HAS_POPUP_HINT // todo: period also has defaultLabelFlags -> when is this relevant?
|
||||
KeyLabel.COMMA -> Key.LABEL_FLAGS_HAS_POPUP_HINT
|
||||
// essentially this only changes the appearance of the armenian period key in holo theme
|
||||
KeyLabel.PERIOD -> Key.LABEL_FLAGS_HAS_POPUP_HINT and if (params.mId.isAlphabetKeyboard) params.mLocaleKeyboardInfos.labelFlags else 0
|
||||
KeyLabel.ACTION -> {
|
||||
Key.LABEL_FLAGS_PRESERVE_CASE or Key.LABEL_FLAGS_AUTO_X_SCALE or
|
||||
Key.LABEL_FLAGS_FOLLOW_KEY_LABEL_RATIO or Key.LABEL_FLAGS_FOLLOW_FUNCTIONAL_TEXT_COLOR or
|
||||
|
|
Loading…
Add table
Reference in a new issue