Skip to content

Commit 7864307

Browse files
committed
refactor: use MaxKeyCode for scanCode offset
refactor: don't offset negative scanCode
1 parent 51de39d commit 7864307

File tree

3 files changed

+12
-4
lines changed

3 files changed

+12
-4
lines changed

app/src/main/java/io/github/sds100/keymapper/mappings/keymaps/trigger/BaseConfigTriggerViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,7 @@ abstract class BaseConfigTriggerViewModel(
456456
// need to be dismissed before it is added.
457457
config.addKeyCodeTriggerKey(key.keyCode, key.device, key.detectionSource)
458458

459-
if (key.keyCode >= InputEventUtils.KEYCODE_TO_SCANCODE_OFFSET) {
459+
if (key.keyCode >= InputEventUtils.KEYCODE_TO_SCANCODE_OFFSET || key.keyCode < 0) {
460460
if (onboarding.shownKeyCodeToScanCodeTriggerExplanation) {
461461
return
462462
}

app/src/main/java/io/github/sds100/keymapper/system/accessibility/BaseAccessibilityServiceController.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,10 +304,17 @@ abstract class BaseAccessibilityServiceController(
304304
// Guard to ignore processing when not applicable
305305
if (event.keyCode != KeyEvent.KEYCODE_UNKNOWN) return event
306306

307+
// Don't offset negative values
308+
val scanCodeOffset: Int = if (event.scanCode >= 0) {
309+
InputEventUtils.KEYCODE_TO_SCANCODE_OFFSET
310+
} else {
311+
0
312+
}
313+
307314
val eventProxy = event.copy(
308315
// Fallback to scanCode when keyCode is unknown as it's typically more unique
309316
// Add offset to go past possible keyCode values
310-
keyCode = event.scanCode + InputEventUtils.KEYCODE_TO_SCANCODE_OFFSET,
317+
keyCode = event.scanCode + scanCodeOffset,
311318
)
312319

313320
return eventProxy

app/src/main/java/io/github/sds100/keymapper/system/inputevents/InputEventUtils.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -689,14 +689,15 @@ object InputEventUtils {
689689
/**
690690
* Used for keyCode to scanCode fallback to go past possible keyCode values
691691
*/
692-
const val KEYCODE_TO_SCANCODE_OFFSET: Int = 1000
692+
val KEYCODE_TO_SCANCODE_OFFSET: Int
693+
get() = KeyEvent.getMaxKeyCode() + 1
693694

694695
/**
695696
* Create a text representation of a key event. E.g if the control key was pressed,
696697
* "Ctrl" will be returned
697698
*/
698699
fun keyCodeToString(keyCode: Int): String = NON_CHARACTER_KEY_LABELS[keyCode].let {
699-
if (keyCode >= KEYCODE_TO_SCANCODE_OFFSET) {
700+
if (keyCode >= KEYCODE_TO_SCANCODE_OFFSET || keyCode < 0) {
700701
"scancode $keyCode"
701702
} else {
702703
it ?: "unknown keycode $keyCode"

0 commit comments

Comments
 (0)