Files
wekeyT9/app/src/main/java/net/mezimmah/wkt9/keypad/KeyCodeMapping.kt
2023-08-30 12:56:26 +02:00

51 lines
1.2 KiB
Kotlin

package net.mezimmah.wkt9.keypad
import java.util.Properties
class KeyCodeMapping(
private val keyMap: Map<Int, Key>,
) {
fun key(keyCode: Int): Key? {
return keyMap[keyCode]
}
companion object {
val basic = mapOf(
4 to Key.BACK,
7 to Key.N0,
8 to Key.N1,
9 to Key.N2,
10 to Key.N3,
11 to Key.N4,
12 to Key.N5,
13 to Key.N6,
14 to Key.N7,
15 to Key.N8,
16 to Key.N9,
17 to Key.STAR,
18 to Key.POUND,
82 to Key.FN,
19 to Key.UP,
20 to Key.DOWN,
21 to Key.LEFT,
22 to Key.RIGHT,
23 to Key.SELECT
)
fun fromProperties(props: Properties): KeyCodeMapping {
val keyMap = HashMap<Int, Key>()
this.basic.forEach {
val keyCode = props.getProperty("key.${it.value.name}")?.toInt() ?: it.key
keyMap[keyCode] = it.value
}
return KeyCodeMapping(keyMap)
}
fun default(): KeyCodeMapping {
return KeyCodeMapping(basic)
}
}
}