Skip to content

Commit bf68a02

Browse files
Jeff BrownAndroid (Google) Code Review
authored andcommitted
Merge "HID usage should take precedence over scan code."
2 parents a3fab1c + cc11698 commit bf68a02

File tree

2 files changed

+23
-19
lines changed

2 files changed

+23
-19
lines changed

libs/androidfw/KeyLayoutMap.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -103,18 +103,18 @@ status_t KeyLayoutMap::mapKey(int32_t scanCode, int32_t usageCode,
103103
}
104104

105105
const KeyLayoutMap::Key* KeyLayoutMap::getKey(int32_t scanCode, int32_t usageCode) const {
106-
if (scanCode) {
107-
ssize_t index = mKeysByScanCode.indexOfKey(scanCode);
108-
if (index >= 0) {
109-
return &mKeysByScanCode.valueAt(index);
110-
}
111-
}
112106
if (usageCode) {
113107
ssize_t index = mKeysByUsageCode.indexOfKey(usageCode);
114108
if (index >= 0) {
115109
return &mKeysByUsageCode.valueAt(index);
116110
}
117111
}
112+
if (scanCode) {
113+
ssize_t index = mKeysByScanCode.indexOfKey(scanCode);
114+
if (index >= 0) {
115+
return &mKeysByScanCode.valueAt(index);
116+
}
117+
}
118118
return NULL;
119119
}
120120

services/input/tests/InputReader_test.cpp

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -480,19 +480,7 @@ class FakeEventHub : public EventHubInterface {
480480
int32_t* outKeycode, uint32_t* outFlags) const {
481481
Device* device = getDevice(deviceId);
482482
if (device) {
483-
const KeyInfo* key = NULL;
484-
if (scanCode) {
485-
ssize_t index = device->keysByScanCode.indexOfKey(scanCode);
486-
if (index >= 0) {
487-
key = &device->keysByScanCode.valueAt(index);
488-
}
489-
}
490-
if (!key && usageCode) {
491-
ssize_t index = device->keysByUsageCode.indexOfKey(usageCode);
492-
if (index >= 0) {
493-
key = &device->keysByUsageCode.valueAt(index);
494-
}
495-
}
483+
const KeyInfo* key = getKey(device, scanCode, usageCode);
496484
if (key) {
497485
if (outKeycode) {
498486
*outKeycode = key->keyCode;
@@ -506,6 +494,22 @@ class FakeEventHub : public EventHubInterface {
506494
return NAME_NOT_FOUND;
507495
}
508496

497+
const KeyInfo* getKey(Device* device, int32_t scanCode, int32_t usageCode) const {
498+
if (usageCode) {
499+
ssize_t index = device->keysByUsageCode.indexOfKey(usageCode);
500+
if (index >= 0) {
501+
return &device->keysByUsageCode.valueAt(index);
502+
}
503+
}
504+
if (scanCode) {
505+
ssize_t index = device->keysByScanCode.indexOfKey(scanCode);
506+
if (index >= 0) {
507+
return &device->keysByScanCode.valueAt(index);
508+
}
509+
}
510+
return NULL;
511+
}
512+
509513
virtual status_t mapAxis(int32_t deviceId, int32_t scanCode,
510514
AxisInfo* outAxisInfo) const {
511515
return NAME_NOT_FOUND;

0 commit comments

Comments
 (0)