RESTRICT AUTOMERGE Show primary bouncer on TOUCH_OUTSIDE am: 95e0af8c47

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22182082

Change-Id: I136dd2f5dd560d5d4909bcdcb8e04ad406ac4ee1
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Beverly
2023-03-22 13:23:10 +00:00
committed by Automerger Merge Worker
2 changed files with 22 additions and 4 deletions

View File

@@ -1452,11 +1452,13 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
public boolean onTouch(MotionEvent event) { public boolean onTouch(MotionEvent event) {
boolean handledTouch = false; boolean handledTouch = false;
if (mAlternateBouncerInteractor.isVisibleState()) { if (mAlternateBouncerInteractor.isVisibleState()) {
if (event.getAction() == MotionEvent.ACTION_DOWN) { final boolean downThenUp = event.getActionMasked() == MotionEvent.ACTION_UP
&& mAlternateBouncerReceivedDownTouch;
final boolean outsideTouch = event.getActionMasked() == MotionEvent.ACTION_OUTSIDE;
if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
mAlternateBouncerReceivedDownTouch = true; mAlternateBouncerReceivedDownTouch = true;
} else if (event.getAction() == MotionEvent.ACTION_UP } else if ((downThenUp || outsideTouch)
&& mAlternateBouncerInteractor.hasAlternateBouncerShownWithMinTime() && mAlternateBouncerInteractor.hasAlternateBouncerShownWithMinTime()) {
&& mAlternateBouncerReceivedDownTouch) {
showPrimaryBouncer(true); showPrimaryBouncer(true);
} }
handledTouch = true; handledTouch = true;

View File

@@ -786,4 +786,20 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
// THEN the alternateBouncer doesn't hide // THEN the alternateBouncer doesn't hide
verify(mAlternateBouncerInteractor, never()).hide(); verify(mAlternateBouncerInteractor, never()).hide();
} }
@Test
public void testAlternateBouncerOnTouch_actionOutside_hidesAlternateBouncer() {
reset(mAlternateBouncerInteractor);
// GIVEN the alternate bouncer has shown for a minimum amount of time
when(mAlternateBouncerInteractor.hasAlternateBouncerShownWithMinTime()).thenReturn(true);
when(mAlternateBouncerInteractor.isVisibleState()).thenReturn(true);
// WHEN only ACTION_OUTSIDE touch event comes
mStatusBarKeyguardViewManager.onTouch(
MotionEvent.obtain(0L, 0L, MotionEvent.ACTION_OUTSIDE, 0f, 0f, 0));
// THEN the alternateBouncer hides
verify(mAlternateBouncerInteractor).hide();
}
} }