Fixing shade expanded after unfolding and unlocking with fingerprint

Making sure setLeaveOpenOnKeyguardHide(true) is called only when we're not on keyguard as there we don't want to keep the state of shade when going from unfolding

Bug: 238752588
Test: folded keyguard -> unfold -> unlock with fingerprint -> shade should not be visible
Test: CentralSurfacesImplTest
Change-Id: I39acef2cfb69c622401fc6e5a2e974d7fe68487b
This commit is contained in:
Michal Brzezinski
2022-07-28 21:51:37 +02:00
parent e1fbf7d695
commit 6262172bbd
2 changed files with 17 additions and 1 deletions

View File

@@ -1112,7 +1112,6 @@ public class CentralSurfacesImpl extends CoreStartable implements
isFolded, willGoToSleep, isShadeOpen, leaveOpen));
}
if (leaveOpen) {
mStatusBarStateController.setLeaveOpenOnKeyguardHide(true);
if (mKeyguardStateController.isShowing()) {
// When device state changes on keyguard we don't want to keep the state of
// the shade and instead we open clean state of keyguard with shade closed.
@@ -1121,6 +1120,9 @@ public class CentralSurfacesImpl extends CoreStartable implements
// expanded. To prevent that we can close QS which resets QS and some parts of
// the shade to its default state. Read more in b/201537421
mCloseQsBeforeScreenOff = true;
} else {
// below makes shade stay open when going from folded to unfolded
mStatusBarStateController.setLeaveOpenOnKeyguardHide(true);
}
}
}

View File

@@ -976,6 +976,7 @@ public class CentralSurfacesImplTest extends SysuiTestCase {
@Test
public void deviceStateChange_unfolded_shadeOpen_setsLeaveOpenOnKeyguardHide() {
when(mKeyguardStateController.isShowing()).thenReturn(false);
setFoldedStates(FOLD_STATE_FOLDED);
setGoToSleepStates(FOLD_STATE_FOLDED);
when(mNotificationPanelViewController.isFullyExpanded()).thenReturn(true);
@@ -985,6 +986,19 @@ public class CentralSurfacesImplTest extends SysuiTestCase {
verify(mStatusBarStateController).setLeaveOpenOnKeyguardHide(true);
}
@Test
public void deviceStateChange_unfolded_shadeOpen_onKeyguard_doesNotSetLeaveOpenOnKeyguardHide() {
when(mKeyguardStateController.isShowing()).thenReturn(true);
setFoldedStates(FOLD_STATE_FOLDED);
setGoToSleepStates(FOLD_STATE_FOLDED);
when(mNotificationPanelViewController.isFullyExpanded()).thenReturn(true);
setDeviceState(FOLD_STATE_UNFOLDED);
verify(mStatusBarStateController, never()).setLeaveOpenOnKeyguardHide(true);
}
@Test
public void deviceStateChange_unfolded_shadeClose_doesNotSetLeaveOpenOnKeyguardHide() {
setFoldedStates(FOLD_STATE_FOLDED);