On occlusion: use AUTH_SCRIMMED scrim state
Previously, it was using AUTH_SCRIMMED_SHADE because when an app is occluding the lockscreen, the status bar state is StatusBarState.SHADE. Therefore, we need to make sure that if we're occluding (and the shade is not expanded), that the AUTH_SCRIMMED scrim is used. On devices where clipQs=false, using AUTH_SCRIMMED_SHADE instead of AUTH_SCRIMMED would make the alternate bouncer have a black background instead of showing a transparent scrim over the occluding activity. Fixes: 272101893 Test: atest CentralSurfacesImplTest Test: show the alternate bouncer over an occluding app, scrim is transparent over occluding app Test: show the alternate bouncer over the shade on top of an occluding app => frontScrim is transparent over the notification shade. Back & notification scrims are the same as what they'd be for the regular open shade Change-Id: Ie3b2d3ff7868eb038023787e5cae35c98576f5fe
This commit is contained in:
@@ -3745,10 +3745,10 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces {
|
||||
|
||||
boolean launchingAffordanceWithPreview = mLaunchingAffordance;
|
||||
mScrimController.setLaunchingAffordanceWithPreview(launchingAffordanceWithPreview);
|
||||
|
||||
if (mAlternateBouncerInteractor.isVisibleState()) {
|
||||
if (mState == StatusBarState.SHADE || mState == StatusBarState.SHADE_LOCKED
|
||||
|| mTransitionToFullShadeProgress > 0f) {
|
||||
if ((!isOccluded() || isPanelExpanded())
|
||||
&& (mState == StatusBarState.SHADE || mState == StatusBarState.SHADE_LOCKED
|
||||
|| mTransitionToFullShadeProgress > 0f)) {
|
||||
mScrimController.transitionTo(ScrimState.AUTH_SCRIMMED_SHADE);
|
||||
} else {
|
||||
mScrimController.transitionTo(ScrimState.AUTH_SCRIMMED);
|
||||
|
||||
@@ -1035,6 +1035,34 @@ public class CentralSurfacesImplTest extends SysuiTestCase {
|
||||
verify(mStatusBarKeyguardViewManager).onKeyguardFadedAway();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testOccludingQSNotExpanded_transitionToAuthScrimmed() {
|
||||
when(mAlternateBouncerInteractor.isVisibleState()).thenReturn(true);
|
||||
|
||||
// GIVEN device occluded and panel is NOT expanded
|
||||
mCentralSurfaces.setBarStateForTest(SHADE); // occluding on LS has StatusBarState = SHADE
|
||||
when(mKeyguardStateController.isOccluded()).thenReturn(true);
|
||||
mCentralSurfaces.mPanelExpanded = false;
|
||||
|
||||
mCentralSurfaces.updateScrimController();
|
||||
|
||||
verify(mScrimController).transitionTo(eq(ScrimState.AUTH_SCRIMMED));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testOccludingQSExpanded_transitionToAuthScrimmedShade() {
|
||||
when(mAlternateBouncerInteractor.isVisibleState()).thenReturn(true);
|
||||
|
||||
// GIVEN device occluded and qs IS expanded
|
||||
mCentralSurfaces.setBarStateForTest(SHADE); // occluding on LS has StatusBarState = SHADE
|
||||
when(mKeyguardStateController.isOccluded()).thenReturn(true);
|
||||
mCentralSurfaces.mPanelExpanded = true;
|
||||
|
||||
mCentralSurfaces.updateScrimController();
|
||||
|
||||
verify(mScrimController).transitionTo(eq(ScrimState.AUTH_SCRIMMED_SHADE));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testShowKeyguardImplementation_setsState() {
|
||||
when(mLockscreenUserManager.getCurrentProfiles()).thenReturn(new SparseArray<>());
|
||||
|
||||
Reference in New Issue
Block a user