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 015d3320..30a5f42f 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 @@ -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>) { if (!params.mId.mNumberRowEnabled && params.mId.mElementId == KeyboardId.ELEMENT_SYMBOLS) { // replace first symbols row with number row, but use the labels as popupKeys 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 931ed393..5c5e66e0 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 @@ -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