summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2012-04-09 11:05:16 -0700
committerJeff Brown <jeffbrown@google.com>2012-04-09 11:22:12 -0700
commit27fd3420ac0498ff5086f71023f443966541aa04 (patch)
treedc29332ba544ec0d8da9503d9205e6ef753c0e56
parenteca3cf58c096d5a4ba4ae80318f72266c21a9a6d (diff)
downloadframeworks_base-27fd3420ac0498ff5086f71023f443966541aa04.zip
frameworks_base-27fd3420ac0498ff5086f71023f443966541aa04.tar.gz
frameworks_base-27fd3420ac0498ff5086f71023f443966541aa04.tar.bz2
Fix lid switch interpretation.
Also remove unnecessary permission check for method that is only called internally. Change-Id: I32f63fc3e96b06709d18b046ee2d3c8f310de70d
-rw-r--r--services/java/com/android/server/wm/WindowManagerService.java11
-rw-r--r--services/jni/com_android_server_input_InputManagerService.cpp3
2 files changed, 7 insertions, 7 deletions
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java
index 6f7852d..a7af8fb 100644
--- a/services/java/com/android/server/wm/WindowManagerService.java
+++ b/services/java/com/android/server/wm/WindowManagerService.java
@@ -4807,10 +4807,13 @@ public class WindowManagerService extends IWindowManager.Stub
final int SW_LID = 0x00;
int sw = mInputManager.getSwitchState(-1, InputDevice.SOURCE_ANY, SW_LID);
if (sw > 0) {
- return LID_OPEN;
- } else if (sw == 0) {
+ // Switch state: AKEY_STATE_DOWN or AKEY_STATE_VIRTUAL.
return LID_CLOSED;
+ } else if (sw == 0) {
+ // Switch state: AKEY_STATE_UP.
+ return LID_OPEN;
} else {
+ // Switch state: AKEY_STATE_UNKNOWN.
return LID_ABSENT;
}
}
@@ -4818,10 +4821,6 @@ public class WindowManagerService extends IWindowManager.Stub
// Called by window manager policy. Not exposed externally.
@Override
public InputChannel monitorInput(String inputChannelName) {
- if (!checkCallingPermission(android.Manifest.permission.READ_INPUT_STATE,
- "monitorInput()")) {
- throw new SecurityException("Requires READ_INPUT_STATE permission");
- }
return mInputManager.monitorInput(inputChannelName);
}
diff --git a/services/jni/com_android_server_input_InputManagerService.cpp b/services/jni/com_android_server_input_InputManagerService.cpp
index 75c20f3..c137a78 100644
--- a/services/jni/com_android_server_input_InputManagerService.cpp
+++ b/services/jni/com_android_server_input_InputManagerService.cpp
@@ -510,8 +510,9 @@ void NativeInputManager::notifySwitch(nsecs_t when, int32_t switchCode,
switch (switchCode) {
case SW_LID:
+ // When switch value is set indicates lid is closed.
env->CallVoidMethod(mServiceObj, gServiceClassInfo.notifyLidSwitchChanged,
- when, switchValue == 0);
+ when, switchValue == 0 /*lidOpen*/);
checkAndClearExceptionFromCallback(env, "notifyLidSwitchChanged");
break;
}