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:
@@ -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());
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user