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

Commit dadd29e0 authored by Valera Trubachev's avatar Valera Trubachev
Browse files

Lockscreen: cancel gesture when tab/ring/handle is grabbed

Cancels the gesture when a tab/ring/handle of unlock widget is grabbed.
This eliminates triggering a gesture while dragging a tab/ring/handle,
especially on ring style (b/c rings can be dragged freely).

Change-Id: I9a31b8e268b0570cc7bce736be1a5d58e6922476
parent 9e9af0e7
Loading
Loading
Loading
Loading
+13 −6
Original line number Diff line number Diff line
@@ -94,6 +94,7 @@ class LockScreen extends LinearLayout implements KeyguardScreen, KeyguardUpdateM
    private KeyguardUpdateMonitor mUpdateMonitor;
    private KeyguardScreenCallback mCallback;

    private GestureOverlayView mGestureOverlay;
    private TextView mCarrier;
    private SlidingTab mTabSelector;
    private SlidingTab mSelector2;
@@ -601,11 +602,11 @@ class LockScreen extends LinearLayout implements KeyguardScreen, KeyguardUpdateM
            mGestureTrail = false;
        }

        GestureOverlayView gestures = (GestureOverlayView) findViewById(R.id.gestures);
        gestures.setGestureVisible(mGestureTrail);
        gestures.setGestureColor(mGestureColor);
        mGestureOverlay = (GestureOverlayView) findViewById(R.id.gestures);
        mGestureOverlay.setGestureVisible(mGestureTrail);
        mGestureOverlay.setGestureColor(mGestureColor);
        boolean GestureCanUnlock = false;
        if (gestures != null) {
        if (mGestureOverlay != null) {
            if (mGestureActive) {
                File mStoreFile = new File(Environment.getDataDirectory(),
                        "/misc/lockscreen_gestures");
@@ -613,7 +614,7 @@ class LockScreen extends LinearLayout implements KeyguardScreen, KeyguardUpdateM
                        Settings.System.LOCKSCREEN_GESTURES_SENSITIVITY, 3);
                mLibrary = GestureLibraries.fromFile(mStoreFile);
                if (mLibrary.load()) {
                    gestures.addOnGesturePerformedListener(this);
                    mGestureOverlay.addOnGesturePerformedListener(this);
                    for (String name : mLibrary.getGestureEntries()) {
                        String[] payload = name.split("___", 2);
                        if ("UNLOCK".equals(payload[1])) {
@@ -801,10 +802,16 @@ class LockScreen extends LinearLayout implements KeyguardScreen, KeyguardUpdateM
            mTabSelector.setRightHintText(mSilentMode ? R.string.lockscreen_sound_on_label
                    : R.string.lockscreen_sound_off_label);
        }

        // Don't poke the wake lock when returning to a state where the handle is
        // not grabbed since that can happen when the system (instead of the user)
        // cancels the grab.
        if (grabbedState != SlidingTab.OnTriggerListener.NO_HANDLE || mUseRingLockscreen) {
        if (grabbedState != SlidingTab.OnTriggerListener.NO_HANDLE) {
            mGestureOverlay.cancelGesture();
            mCallback.pokeWakelock();
        }

        if (mUseRingLockscreen) {
            mCallback.pokeWakelock();
        }
    }