hasKeycodeLocked() also checks usage codes
Key map can use both scan code and usage code.
Adding usage code check to avoid misjudgment.
Bug: 275526611
Test:
In Android TV, pairing a BT RCU with keylayout which
has usage page/id for DPAD. In PlayStore app search
box, make sure user can move focus to search result
by pressing dpad DOWN key.
Change-Id: I70687d308899537e457192458176b1553c350f14
diff --git a/services/inputflinger/reader/EventHub.cpp b/services/inputflinger/reader/EventHub.cpp
index 20baa42..39beed3 100644
--- a/services/inputflinger/reader/EventHub.cpp
+++ b/services/inputflinger/reader/EventHub.cpp
@@ -461,6 +461,11 @@
}
}
+ std::vector<int32_t> usageCodes = keyMap.keyLayoutMap->findUsageCodesForKey(keycode);
+ if (usageCodes.size() > 0 && mscBitmask.test(MSC_SCAN)) {
+ return true;
+ }
+
return false;
}