diff options
| author | 2025-02-27 15:26:26 -0800 | |
|---|---|---|
| committer | 2025-02-27 15:26:26 -0800 | |
| commit | 818783174fe4053e5932a8dfb723333d74e88f6a (patch) | |
| tree | b6206c584174c2aef940a01d3d20fb6472afa0b6 /libs/input/KeyCharacterMap.cpp | |
| parent | 72782217cefc24c7f4374b45bcab7e6bd50d964d (diff) | |
| parent | 98bdc04b7658fde0a99403fc052d1d18e7d48ea6 (diff) | |
Merge "Merge 25Q1 (ab/12770256) to aosp-main-future" into aosp-main-future
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; |