Update Xbox BT controller mapping to support upcoming controller firmware update

The Xbox controller (product id 0x2fd) is going to have a new firmware update this fall that sends a different keycode (316/BUTTON_MODE) for the Xbox button.  The goal is to enable the Xbox button to make it to apps on all Android versions -- with our without a controller-specific key mapping file.

Unfortunately, the new Vendor_045e_Product_02fd.kl key mapping file that was added to Android Q maps the pre-firmware-update Xbox key code (172) to BUTTON_MODE, yet it makes no mention of key 316.  This results in apps getting a raw 316 scan code instead of a BUTTON_MODE KeyEvent when using a controller with the latest firmware on Android Q.

The fix is to add an additional key mapping for 316 that *also* maps to BUTTON_MODE.  With both mappings in place, both pre and post firmware-updated controllers will get the correct behavior for the Xbox button on Android Q.

Test: AFAIK, no CTS tests exist for Xbox controller key mappings; we'll need to add some at a later date.  I was unable to test this change because I'm unable to write to the system directory on any of my devices, but I know that mapping 316 to BUTTON_MODE will fix the issue.

Change-Id: I8600ea79a0aa8557267d6ca712e5d56680e7a98b
Signed-off-by: Jared Henderson <jaredh.microsoft@gmail.com>

Bug: 139372370
This commit is contained in:
Jared Henderson
2019-08-21 15:37:59 -07:00
committed by Siarhei Vishniakou
parent 2214ede1ec
commit f829b5df5e

View File

@@ -53,5 +53,10 @@ key 158 BUTTON_SELECT
# Hamburger - 3 parallel lines
key 315 BUTTON_START
# Xbox key
# There are at least two versions of firmware out for this controller.
# They send different linux keys for the "Xbox" button.
# Xbox key (original firmware)
key 172 BUTTON_MODE
# Xbox key (newer firmware)
key 316 BUTTON_MODE