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/libs/input/KeyLayoutMap.cpp b/libs/input/KeyLayoutMap.cpp
index d6b4579..250c0dd 100644
--- a/libs/input/KeyLayoutMap.cpp
+++ b/libs/input/KeyLayoutMap.cpp
@@ -230,6 +230,16 @@
     return scanCodes;
 }
 
+std::vector<int32_t> KeyLayoutMap::findUsageCodesForKey(int32_t keyCode) const {
+    std::vector<int32_t> usageCodes;
+    for (const auto& [usageCode, key] : mKeysByUsageCode) {
+        if (keyCode == key.keyCode) {
+            usageCodes.push_back(usageCode);
+        }
+    }
+    return usageCodes;
+}
+
 std::optional<AxisInfo> KeyLayoutMap::mapAxis(int32_t scanCode) const {
     auto it = mAxes.find(scanCode);
     if (it == mAxes.end()) {