diff options
author | Mike Lockwood <lockwood@android.com> | 2009-07-16 11:11:18 -0400 |
---|---|---|
committer | Mike Lockwood <lockwood@android.com> | 2009-07-16 11:51:42 -0400 |
commit | 1d9dfc5dcf459e85cffcb762ffdb9b9a4abbfd67 (patch) | |
tree | 64e951c1690a7859c67cbc3421ca41a326e3d744 /services/jni | |
parent | d0c0e46a4408b22599bc588ea423d9102bcee6bf (diff) | |
download | frameworks_base-1d9dfc5dcf459e85cffcb762ffdb9b9a4abbfd67.zip frameworks_base-1d9dfc5dcf459e85cffcb762ffdb9b9a4abbfd67.tar.gz frameworks_base-1d9dfc5dcf459e85cffcb762ffdb9b9a4abbfd67.tar.bz2 |
EventHub: Add support for excluding devices from being opened by as a keyboard.
This will be used to avoid unnecessarily listening to data from sensors
that function as event devices.
Signed-off-by: Mike Lockwood <lockwood@android.com>
Diffstat (limited to 'services/jni')
-rw-r--r-- | services/jni/com_android_server_KeyInputQueue.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/services/jni/com_android_server_KeyInputQueue.cpp b/services/jni/com_android_server_KeyInputQueue.cpp index afca1f7..f27596c 100644 --- a/services/jni/com_android_server_KeyInputQueue.cpp +++ b/services/jni/com_android_server_KeyInputQueue.cpp @@ -110,6 +110,23 @@ android_server_KeyInputQueue_getDeviceName(JNIEnv* env, jobject clazz, return NULL; } +static void +android_server_KeyInputQueue_addExcludedDevice(JNIEnv* env, jobject clazz, + jstring deviceName) +{ + gLock.lock(); + sp<EventHub> hub = gHub; + if (hub == NULL) { + hub = new EventHub; + gHub = hub; + } + gLock.unlock(); + + const char* nameStr = env->GetStringUTFChars(deviceName, NULL); + gHub->addExcludedDevice(nameStr); + env->ReleaseStringUTFChars(deviceName, nameStr); +} + static jboolean android_server_KeyInputQueue_getAbsoluteInfo(JNIEnv* env, jobject clazz, jint deviceId, jint axis, @@ -255,6 +272,8 @@ static JNINativeMethod gInputMethods[] = { (void*) android_server_KeyInputQueue_getDeviceClasses }, { "getDeviceName", "(I)Ljava/lang/String;", (void*) android_server_KeyInputQueue_getDeviceName }, + { "addExcludedDevice", "(Ljava/lang/String;)V", + (void*) android_server_KeyInputQueue_addExcludedDevice }, { "getAbsoluteInfo", "(IILcom/android/server/InputDevice$AbsoluteInfo;)Z", (void*) android_server_KeyInputQueue_getAbsoluteInfo }, { "getSwitchState", "(I)I", |