Don't hide the alternate bouncer on keyguardReset

if hideBouncerWhenShowing=false

See CentralSurfacesImpl#setOccluded comment:
"If Keyguard is reshown, don't hide the bouncer as it
might just have been requested by a FLAG_DISMISS_KEYGUARD_ACTIVITY"

Fixes: 271457895
Test: atest StatusBarKeyguardViewManagerTest
Change-Id: Iaaeffc78036e0dd7b24236b3c105ae990f54d29f
This commit is contained in:
Beverly
2023-03-07 21:23:58 +00:00
committed by Beverly Tai
parent 30f403c264
commit dcdfd97f24
2 changed files with 29 additions and 1 deletions

View File

@@ -733,7 +733,9 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
} else {
showBouncerOrKeyguard(hideBouncerWhenShowing);
}
hideAlternateBouncer(false);
if (hideBouncerWhenShowing) {
hideAlternateBouncer(false);
}
mKeyguardUpdateManager.sendKeyguardReset();
updateStates();
}

View File

@@ -683,4 +683,30 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase {
// the following call before registering centralSurfaces should NOT throw a NPE:
mStatusBarKeyguardViewManager.hideAlternateBouncer(true);
}
@Test
public void testResetHideBouncerWhenShowing_alternateBouncerHides() {
// GIVEN the keyguard is showing
reset(mAlternateBouncerInteractor);
when(mKeyguardStateController.isShowing()).thenReturn(true);
// WHEN SBKV is reset with hideBouncerWhenShowing=true
mStatusBarKeyguardViewManager.reset(true);
// THEN alternate bouncer is hidden
verify(mAlternateBouncerInteractor).hide();
}
@Test
public void testResetHideBouncerWhenShowingIsFalse_alternateBouncerHides() {
// GIVEN the keyguard is showing
reset(mAlternateBouncerInteractor);
when(mKeyguardStateController.isShowing()).thenReturn(true);
// WHEN SBKV is reset with hideBouncerWhenShowing=false
mStatusBarKeyguardViewManager.reset(false);
// THEN alternate bouncer is NOT hidden
verify(mAlternateBouncerInteractor, never()).hide();
}
}