diff options
Diffstat (limited to 'services')
-rw-r--r-- | services/java/com/android/server/PowerManagerService.java | 16 | ||||
-rw-r--r-- | services/java/com/android/server/WindowManagerService.java | 7 |
2 files changed, 19 insertions, 4 deletions
diff --git a/services/java/com/android/server/PowerManagerService.java b/services/java/com/android/server/PowerManagerService.java index 890c58c..2fac5f7 100644 --- a/services/java/com/android/server/PowerManagerService.java +++ b/services/java/com/android/server/PowerManagerService.java @@ -843,6 +843,8 @@ class PowerManagerService extends IPowerManager.Stub implements LocalPowerManage pw.println(" poke lock '" + p.tag + "':" + ((p.pokey & POKE_LOCK_IGNORE_CHEEK_EVENTS) != 0 ? " POKE_LOCK_IGNORE_CHEEK_EVENTS" : "") + + ((p.pokey & POKE_LOCK_IGNORE_TOUCH_AND_CHEEK_EVENTS) != 0 + ? " POKE_LOCK_IGNORE_TOUCH_AND_CHEEK_EVENTS" : "") + ((p.pokey & POKE_LOCK_SHORT_TIMEOUT) != 0 ? " POKE_LOCK_SHORT_TIMEOUT" : "") + ((p.pokey & POKE_LOCK_MEDIUM_TIMEOUT) != 0 @@ -1675,13 +1677,23 @@ class PowerManagerService extends IPowerManager.Stub implements LocalPowerManage //mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DEVICE_POWER, null); if (((mPokey & POKE_LOCK_IGNORE_CHEEK_EVENTS) != 0) - && !((eventType == OTHER_EVENT) || (eventType == BUTTON_EVENT))) { + && (eventType == CHEEK_EVENT || eventType == TOUCH_EVENT)) { if (false) { - Log.d(TAG, "dropping mPokey=0x" + Integer.toHexString(mPokey)); + Log.d(TAG, "dropping cheek or short event mPokey=0x" + Integer.toHexString(mPokey)); } return; } + if (((mPokey & POKE_LOCK_IGNORE_TOUCH_AND_CHEEK_EVENTS) != 0) + && (eventType == TOUCH_EVENT || eventType == TOUCH_UP_EVENT + || eventType == LONG_TOUCH_EVENT || eventType == CHEEK_EVENT)) { + if (false) { + Log.d(TAG, "dropping touch mPokey=0x" + Integer.toHexString(mPokey)); + } + return; + } + + if (false) { if (((mPokey & POKE_LOCK_IGNORE_CHEEK_EVENTS) != 0)) { Log.d(TAG, "userActivity !!!");//, new RuntimeException()); diff --git a/services/java/com/android/server/WindowManagerService.java b/services/java/com/android/server/WindowManagerService.java index 5623b02..dba245a 100644 --- a/services/java/com/android/server/WindowManagerService.java +++ b/services/java/com/android/server/WindowManagerService.java @@ -19,6 +19,8 @@ package com.android.server; import static android.os.LocalPowerManager.CHEEK_EVENT; import static android.os.LocalPowerManager.OTHER_EVENT; import static android.os.LocalPowerManager.TOUCH_EVENT; +import static android.os.LocalPowerManager.LONG_TOUCH_EVENT; +import static android.os.LocalPowerManager.TOUCH_UP_EVENT; import static android.view.WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW; import static android.view.WindowManager.LayoutParams.FIRST_SUB_WINDOW; import static android.view.WindowManager.LayoutParams.FLAG_BLUR_BEHIND; @@ -3678,6 +3680,7 @@ public class WindowManagerService extends IWindowManager.Stub implements Watchdo private static final float CHEEK_THRESHOLD = 0.6f; private int mEventState = EVENT_NONE; private float mEventSize; + private int eventType(MotionEvent ev) { float size = ev.getSize(); switch (ev.getAction()) { @@ -3686,7 +3689,7 @@ public class WindowManagerService extends IWindowManager.Stub implements Watchdo return (mEventSize > CHEEK_THRESHOLD) ? CHEEK_EVENT : TOUCH_EVENT; case MotionEvent.ACTION_UP: if (size > mEventSize) mEventSize = size; - return (mEventSize > CHEEK_THRESHOLD) ? CHEEK_EVENT : OTHER_EVENT; + return (mEventSize > CHEEK_THRESHOLD) ? CHEEK_EVENT : TOUCH_UP_EVENT; case MotionEvent.ACTION_MOVE: final int N = ev.getHistorySize(); if (size > mEventSize) mEventSize = size; @@ -3699,7 +3702,7 @@ public class WindowManagerService extends IWindowManager.Stub implements Watchdo if (ev.getEventTime() < ev.getDownTime() + EVENT_IGNORE_DURATION) { return TOUCH_EVENT; } else { - return OTHER_EVENT; + return LONG_TOUCH_EVENT; } default: // not good |