Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2e1db30d authored by Svetoslav Ganov's avatar Svetoslav Ganov
Browse files

Lock screen should be kept on while it is touch explored.

1. The lock screen goes off after a certain timeout but a blind
   user performing touch exploration of that screen needs more
   time to find controls and interact with them. Therfore, we
   reset the lock timeout by poking the wake lock on the last
   hover event so the lock timeout will start ticking after
   the user has stopped interacting with the lock screen.

bug:5133879

Change-Id: I340d2a820e90f6fd63a45d65a5457ce6e570189c
parent f874c4f9
Loading
Loading
Loading
Loading
+14 −0
Original line number Original line Diff line number Diff line
@@ -44,8 +44,10 @@ import android.text.TextUtils;
import android.util.Log;
import android.util.Log;
import android.util.Slog;
import android.util.Slog;
import android.view.KeyEvent;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.View;
import android.view.WindowManager;
import android.view.WindowManager;
import android.view.accessibility.AccessibilityManager;


import java.io.IOException;
import java.io.IOException;


@@ -509,6 +511,18 @@ public class LockPatternKeyguardView extends KeyguardViewBase {
        super.onDetachedFromWindow();
        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
    @Override
    public void wakeWhenReadyTq(int keyCode) {
    public void wakeWhenReadyTq(int keyCode) {
        if (DEBUG) Log.d(TAG, "onWakeKey");
        if (DEBUG) Log.d(TAG, "onWakeKey");