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

Commit bee03207 authored by Austin Delgado's avatar Austin Delgado
Browse files

Fix touches passing though Notification Bar drag down

Fixes touches being processed while a swipe to bring down notifications
or swipe to bring up bouncer is in process.

Bug: 279873052
Test: atest SystemUITests:com.android.systemui.biometrics
Change-Id: I4a7c97db483acf4443474428055bdcaa43ffcb59
parent 2f63277b
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -553,6 +553,10 @@ public class UdfpsController implements DozeReceiver, Dumpable {
                    + mOverlay.getRequestId());
            return false;
        }
        if (mLockscreenShadeTransitionController.getQSDragProgress() != 0f
                || mPrimaryBouncerInteractor.isInTransit()) {
            return false;
        }

        final TouchProcessorResult result = mTouchProcessor.processTouch(event, mActivePointerId,
                mOverlayParams);
@@ -626,9 +630,8 @@ public class UdfpsController implements DozeReceiver, Dumpable {
            shouldPilfer = true;
        }

        // Execute the pilfer, never pilfer if a vertical swipe is in progress
        if (shouldPilfer && mLockscreenShadeTransitionController.getQSDragProgress() == 0f
                && !mPrimaryBouncerInteractor.isInTransit()) {
        // Execute the pilfer
        if (shouldPilfer) {
            mInputManager.pilferPointers(
                    mOverlay.getOverlayView().getViewRootImpl().getInputToken());
        }
+5 −3
Original line number Diff line number Diff line
@@ -1388,7 +1388,7 @@ public class UdfpsControllerTest extends SysuiTestCase {
    }

    @Test
    public void onTouch_withNewTouchDetection_doNotPilferWhenPullingUpBouncer()
    public void onTouch_withNewTouchDetection_doNotProcessTouchWhenPullingUpBouncer()
            throws RemoteException {
        final NormalizedTouchData touchData = new NormalizedTouchData(0, 0f, 0f, 0f, 0f, 0f, 0L,
                0L);
@@ -1427,8 +1427,10 @@ public class UdfpsControllerTest extends SysuiTestCase {
        mBiometricExecutor.runAllReady();
        moveEvent.recycle();

        // THEN the touch is NOT pilfered
        verify(mInputManager, never()).pilferPointers(any());
        // THEN the touch is NOT processed
        verify(mFingerprintManager, never()).onPointerDown(anyLong(), anyInt(), anyInt(),
                anyFloat(), anyFloat(), anyFloat(), anyFloat(), anyFloat(), anyLong(), anyLong(),
                anyBoolean());
    }

    @Test