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
This commit is contained in:
Austin Delgado
2023-04-28 15:32:17 -07:00
parent 2f63277b7f
commit bee0320783
2 changed files with 11 additions and 6 deletions

View File

@@ -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());
}

View File

@@ -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