From 5338428ddbe662283bf88171c7ca361d51d78da8 Mon Sep 17 00:00:00 2001 From: Jeff Brown Date: Mon, 20 Aug 2012 20:16:01 -0700 Subject: Plumb the switch code into Dalvik. Bug: 6548391 Change-Id: If0e918669ba27ca0e6561930d4abc427c34de42d --- .../com/android/server/input/InputManagerService.java | 8 ++++++-- .../com_android_server_input_InputManagerService.cpp | 17 ++++++----------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/services/java/com/android/server/input/InputManagerService.java b/services/java/com/android/server/input/InputManagerService.java index 21100e2..0b8ff62 100644 --- a/services/java/com/android/server/input/InputManagerService.java +++ b/services/java/com/android/server/input/InputManagerService.java @@ -1218,8 +1218,12 @@ public class InputManagerService extends IInputManager.Stub implements Watchdog. } // Native callback. - private void notifyLidSwitchChanged(long whenNanos, boolean lidOpen) { - mCallbacks.notifyLidSwitchChanged(whenNanos, lidOpen); + private void notifySwitch(long whenNanos, int switchCode, int switchValue) { + switch (switchCode) { + case SW_LID: + mCallbacks.notifyLidSwitchChanged(whenNanos, switchValue == 0); + break; + } } // Native callback. diff --git a/services/jni/com_android_server_input_InputManagerService.cpp b/services/jni/com_android_server_input_InputManagerService.cpp index 701b15a..495d4ab 100644 --- a/services/jni/com_android_server_input_InputManagerService.cpp +++ b/services/jni/com_android_server_input_InputManagerService.cpp @@ -63,7 +63,7 @@ static const float POINTER_SPEED_EXPONENT = 1.0f / 4; static struct { jmethodID notifyConfigurationChanged; jmethodID notifyInputDevicesChanged; - jmethodID notifyLidSwitchChanged; + jmethodID notifySwitch; jmethodID notifyInputChannelBroken; jmethodID notifyANR; jmethodID filterInputEvent; @@ -578,14 +578,9 @@ void NativeInputManager::notifySwitch(nsecs_t when, int32_t switchCode, JNIEnv* env = jniEnv(); - switch (switchCode) { - case SW_LID: - // When switch value is set indicates lid is closed. - env->CallVoidMethod(mServiceObj, gServiceClassInfo.notifyLidSwitchChanged, - when, switchValue == 0 /*lidOpen*/); - checkAndClearExceptionFromCallback(env, "notifyLidSwitchChanged"); - break; - } + env->CallVoidMethod(mServiceObj, gServiceClassInfo.notifySwitch, + when, switchCode, switchValue); + checkAndClearExceptionFromCallback(env, "notifySwitch"); } void NativeInputManager::notifyConfigurationChanged(nsecs_t when) { @@ -1410,8 +1405,8 @@ int register_android_server_InputManager(JNIEnv* env) { GET_METHOD_ID(gServiceClassInfo.notifyInputDevicesChanged, clazz, "notifyInputDevicesChanged", "([Landroid/view/InputDevice;)V"); - GET_METHOD_ID(gServiceClassInfo.notifyLidSwitchChanged, clazz, - "notifyLidSwitchChanged", "(JZ)V"); + GET_METHOD_ID(gServiceClassInfo.notifySwitch, clazz, + "notifySwitch", "(JII)V"); GET_METHOD_ID(gServiceClassInfo.notifyInputChannelBroken, clazz, "notifyInputChannelBroken", "(Lcom/android/server/input/InputWindowHandle;)V"); -- cgit v1.1