diff --git a/policy/src/com/android/internal/policy/impl/LockPatternKeyguardView.java b/policy/src/com/android/internal/policy/impl/LockPatternKeyguardView.java index 2d90727a0e023..70772eb553b2f 100644 --- a/policy/src/com/android/internal/policy/impl/LockPatternKeyguardView.java +++ b/policy/src/com/android/internal/policy/impl/LockPatternKeyguardView.java @@ -44,8 +44,10 @@ import android.text.TextUtils; import android.util.Log; import android.util.Slog; import android.view.KeyEvent; +import android.view.MotionEvent; import android.view.View; import android.view.WindowManager; +import android.view.accessibility.AccessibilityManager; import java.io.IOException; @@ -509,6 +511,18 @@ public class LockPatternKeyguardView extends KeyguardViewBase { super.onDetachedFromWindow(); } + @Override + protected boolean dispatchHoverEvent(MotionEvent event) { + // Do not let the screen to get locked while the user is disabled and touch + // exploring. A blind user will need significantly more time to find and + // interact with the lock screen views. + AccessibilityManager accessibilityManager = AccessibilityManager.getInstance(mContext); + if (accessibilityManager.isEnabled() && accessibilityManager.isTouchExplorationEnabled()) { + getCallback().pokeWakelock(); + } + return super.dispatchHoverEvent(event); + } + @Override public void wakeWhenReadyTq(int keyCode) { if (DEBUG) Log.d(TAG, "onWakeKey");