summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jeff Brown <jeffbrown@google.com> 2011-11-15 17:48:10 -0800
committer Jeff Brown <jeffbrown@google.com> 2011-11-15 18:00:10 -0800
commit882b0a59d834be5b595713079f31a2389c32fdda (patch)
tree95df7ee1d334a713e06f38cda8c8161661019ddf
parent4d38d2538e39e7041d8e2dd8081fd2f0b153423e (diff)
Eliminate hw.keyboards system properties.
Stop using system properties to publish information about the key character map path. Instead, we can retrieve it on demand by asking the window manager. It was possible to exhaust the supply of system properties when repeatedly adding and removing input devices. Bug: 5532806 Change-Id: Idd361a24ad7db2edc185c8546db7fb05f9c28669
-rw-r--r--include/ui/Input.h4
-rw-r--r--include/ui/KeyCharacterMap.h1
-rw-r--r--include/ui/Keyboard.h18
-rw-r--r--libs/ui/KeyCharacterMap.cpp11
-rw-r--r--libs/ui/Keyboard.cpp44
5 files changed, 4 insertions, 74 deletions
diff --git a/include/ui/Input.h b/include/ui/Input.h
index 438a1a0351..c2cbe1d6e8 100644
--- a/include/ui/Input.h
+++ b/include/ui/Input.h
@@ -826,6 +826,9 @@ public:
inline void setKeyboardType(int32_t keyboardType) { mKeyboardType = keyboardType; }
inline int32_t getKeyboardType() const { return mKeyboardType; }
+ inline void setKeyCharacterMapFile(const String8& value) { mKeyCharacterMapFile = value; }
+ inline const String8& getKeyCharacterMapFile() const { return mKeyCharacterMapFile; }
+
inline const Vector<MotionRange>& getMotionRanges() const {
return mMotionRanges;
}
@@ -835,6 +838,7 @@ private:
String8 mName;
uint32_t mSources;
int32_t mKeyboardType;
+ String8 mKeyCharacterMapFile;
Vector<MotionRange> mMotionRanges;
};
diff --git a/include/ui/KeyCharacterMap.h b/include/ui/KeyCharacterMap.h
index 10a38109d5..be14432ae5 100644
--- a/include/ui/KeyCharacterMap.h
+++ b/include/ui/KeyCharacterMap.h
@@ -53,7 +53,6 @@ public:
~KeyCharacterMap();
static status_t load(const String8& filename, KeyCharacterMap** outMap);
- static status_t loadByDeviceId(int32_t deviceId, KeyCharacterMap** outMap);
/* Gets the keyboard type. */
int32_t getKeyboardType() const;
diff --git a/include/ui/Keyboard.h b/include/ui/Keyboard.h
index 609f319913..274f5264f4 100644
--- a/include/ui/Keyboard.h
+++ b/include/ui/Keyboard.h
@@ -81,24 +81,6 @@ extern bool isEligibleBuiltInKeyboard(const InputDeviceIdentifier& deviceIdentif
const PropertyMap* deviceConfiguration, const KeyMap* keyMap);
/**
- * Sets keyboard system properties.
- */
-extern void setKeyboardProperties(int32_t deviceId, const InputDeviceIdentifier& deviceIdentifier,
- const String8& keyLayoutFile, const String8& keyCharacterMapFile);
-
-/**
- * Clears keyboard system properties.
- */
-extern void clearKeyboardProperties(int32_t deviceId);
-
-/**
- * Gets the key character map filename for a device using inspecting system properties
- * and then falling back on a default key character map if necessary.
- * Returns a NAME_NOT_FOUND if none found.
- */
-extern status_t getKeyCharacterMapFile(int32_t deviceId, String8& outKeyCharacterMapFile);
-
-/**
* Gets a key code by its short form label, eg. "HOME".
* Returns 0 if unknown.
*/
diff --git a/libs/ui/KeyCharacterMap.cpp b/libs/ui/KeyCharacterMap.cpp
index 2decfe9321..77f18dec5c 100644
--- a/libs/ui/KeyCharacterMap.cpp
+++ b/libs/ui/KeyCharacterMap.cpp
@@ -124,17 +124,6 @@ status_t KeyCharacterMap::load(const String8& filename, KeyCharacterMap** outMap
return status;
}
-status_t KeyCharacterMap::loadByDeviceId(int32_t deviceId, KeyCharacterMap** outMap) {
- *outMap = NULL;
-
- String8 filename;
- status_t result = getKeyCharacterMapFile(deviceId, filename);
- if (!result) {
- result = load(filename, outMap);
- }
- return result;
-}
-
int32_t KeyCharacterMap::getKeyboardType() const {
return mType;
}
diff --git a/libs/ui/Keyboard.cpp b/libs/ui/Keyboard.cpp
index 600a951d5f..10bb39c575 100644
--- a/libs/ui/Keyboard.cpp
+++ b/libs/ui/Keyboard.cpp
@@ -173,50 +173,6 @@ bool isEligibleBuiltInKeyboard(const InputDeviceIdentifier& deviceIdentifier,
return strstr(deviceIdentifier.name.string(), "-keypad");
}
-void setKeyboardProperties(int32_t deviceId,
- const InputDeviceIdentifier& deviceIdentifier,
- const String8& keyLayoutFile, const String8& keyCharacterMapFile) {
- char propName[PROPERTY_KEY_MAX];
- snprintf(propName, sizeof(propName), "hw.keyboards.%u.devname", deviceId);
- property_set(propName, deviceIdentifier.name.string());
- snprintf(propName, sizeof(propName), "hw.keyboards.%u.klfile", deviceId);
- property_set(propName, keyLayoutFile.string());
- snprintf(propName, sizeof(propName), "hw.keyboards.%u.kcmfile", deviceId);
- property_set(propName, keyCharacterMapFile.string());
-}
-
-void clearKeyboardProperties(int32_t deviceId) {
- char propName[PROPERTY_KEY_MAX];
- snprintf(propName, sizeof(propName), "hw.keyboards.%u.devname", deviceId);
- property_set(propName, "");
- snprintf(propName, sizeof(propName), "hw.keyboards.%u.klfile", deviceId);
- property_set(propName, "");
- snprintf(propName, sizeof(propName), "hw.keyboards.%u.kcmfile", deviceId);
- property_set(propName, "");
-}
-
-status_t getKeyCharacterMapFile(int32_t deviceId, String8& outKeyCharacterMapFile) {
- if (deviceId != DEVICE_ID_VIRTUAL_KEYBOARD) {
- char propName[PROPERTY_KEY_MAX];
- char fn[PROPERTY_VALUE_MAX];
- snprintf(propName, sizeof(propName), "hw.keyboards.%u.kcmfile", deviceId);
- if (property_get(propName, fn, "") > 0) {
- outKeyCharacterMapFile.setTo(fn);
- return OK;
- }
- }
-
- // Default to Virtual since the keyboard does not appear to be installed.
- outKeyCharacterMapFile.setTo(getInputDeviceConfigurationFilePathByName(String8("Virtual"),
- INPUT_DEVICE_CONFIGURATION_FILE_TYPE_KEY_CHARACTER_MAP));
- if (!outKeyCharacterMapFile.isEmpty()) {
- return OK;
- }
-
- LOGE("Can't find any key character map files including the Virtual key map!");
- return NAME_NOT_FOUND;
-}
-
static int lookupValueByLabel(const char* literal, const KeycodeLabel *list) {
while (list->literal) {
if (strcmp(literal, list->literal) == 0) {