diff options
| author | 2025-03-10 09:50:35 -0700 | |
|---|---|---|
| committer | 2025-03-10 09:50:35 -0700 | |
| commit | 376c3cd45e7af8eeb8a4c13b4a01d65b44069c5d (patch) | |
| tree | be5796e7b3cc6383caf7987ab194e8d4a2ce9c20 /libs/input/KeyCharacterMap.cpp | |
| parent | 67b445a490a71e01b870186315f54344b1f96466 (diff) | |
| parent | 32ab7738564ffb5f327d2e70f7a8286584f7153f (diff) | |
Merge "Merge 25Q1 (ab/BP1A.250305.020) to AOSP main" into main
Diffstat (limited to 'libs/input/KeyCharacterMap.cpp')
| -rw-r--r-- | libs/input/KeyCharacterMap.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/libs/input/KeyCharacterMap.cpp b/libs/input/KeyCharacterMap.cpp index b0563abaf7..90d29dd190 100644 --- a/libs/input/KeyCharacterMap.cpp +++ b/libs/input/KeyCharacterMap.cpp @@ -84,15 +84,15 @@ static String8 toString(const char16_t* chars, size_t numChars) { KeyCharacterMap::KeyCharacterMap(const std::string& filename) : mLoadFileName(filename) {} -base::Result<std::shared_ptr<KeyCharacterMap>> KeyCharacterMap::load(const std::string& filename, +base::Result<std::unique_ptr<KeyCharacterMap>> KeyCharacterMap::load(const std::string& filename, Format format) { Tokenizer* tokenizer; status_t status = Tokenizer::open(String8(filename.c_str()), &tokenizer); if (status) { return Errorf("Error {} opening key character map file {}.", status, filename.c_str()); } - std::shared_ptr<KeyCharacterMap> map = - std::shared_ptr<KeyCharacterMap>(new KeyCharacterMap(filename)); + std::unique_ptr<KeyCharacterMap> map = + std::unique_ptr<KeyCharacterMap>(new KeyCharacterMap(filename)); if (!map.get()) { ALOGE("Error allocating key character map."); return Errorf("Error allocating key character map."); @@ -365,6 +365,17 @@ int32_t KeyCharacterMap::applyKeyRemapping(int32_t fromKeyCode) const { return toKeyCode; } +std::vector<int32_t> KeyCharacterMap::findKeyCodesMappedToKeyCode(int32_t toKeyCode) const { + std::vector<int32_t> fromKeyCodes; + + for (const auto& [from, to] : mKeyRemapping) { + if (toKeyCode == to) { + fromKeyCodes.push_back(from); + } + } + return fromKeyCodes; +} + std::pair<int32_t, int32_t> KeyCharacterMap::applyKeyBehavior(int32_t fromKeyCode, int32_t fromMetaState) const { int32_t toKeyCode = fromKeyCode; |