From d1ff736d01cebaee70b76f012b660ae549c252b9 Mon Sep 17 00:00:00 2001 From: Svetoslav Ganov Date: Tue, 15 May 2012 12:51:38 -0700 Subject: [PATCH] Keeping the screen on during gesture detection. 1. During gesture detection we are not injecting the events we receive since we do not want the accessibility focus to move as a result of the hover event of the gesture. Because of that it was possible that we consume all events since the user performs only gesture to navigate resulting in the screen being off while the user is actively interacting with the device. Now we are poking the user activity in the power manager to keep the screen on. bug:6485171 Change-Id: I06a09c5297f01bef5e20d471cee76fa7aae0c4fe --- .../server/accessibility/AccessibilityInputFilter.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/services/java/com/android/server/accessibility/AccessibilityInputFilter.java b/services/java/com/android/server/accessibility/AccessibilityInputFilter.java index 889fbe44ec96f..3fbac387590d0 100644 --- a/services/java/com/android/server/accessibility/AccessibilityInputFilter.java +++ b/services/java/com/android/server/accessibility/AccessibilityInputFilter.java @@ -20,6 +20,7 @@ import com.android.server.accessibility.TouchExplorer.GestureListener; import com.android.server.input.InputFilter; import android.content.Context; +import android.os.PowerManager; import android.util.Slog; import android.view.InputDevice; import android.view.InputEvent; @@ -37,6 +38,8 @@ public class AccessibilityInputFilter extends InputFilter { private final Context mContext; + private final PowerManager mPm; + private final GestureListener mGestureListener; /** @@ -74,6 +77,7 @@ public class AccessibilityInputFilter extends InputFilter { super(context.getMainLooper()); mContext = context; mGestureListener = gestureListener; + mPm = (PowerManager)context.getSystemService(Context.POWER_SERVICE); } @Override @@ -108,6 +112,7 @@ public class AccessibilityInputFilter extends InputFilter { mTouchExplorer.clear(motionEvent, policyFlags); } if ((policyFlags & WindowManagerPolicy.FLAG_PASS_TO_USER) != 0) { + mPm.userActivity(event.getEventTime(), false); mTouchExplorer.onMotionEvent(motionEvent, policyFlags); } else { mTouchExplorer.clear(motionEvent, policyFlags);