Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9a0a337e authored by burakov's avatar burakov
Browse files

[Dual Shade] Remove DualShade scrim transparency in ScrimController.

Bug: 388793191
Test: Manually by expanding/collapsing the shade in both scene container
 on and off modes, an observing that the scrim fades in/out as expected.
Test: Unit tests still pass.
Flag: com.android.systemui.scene_container
Change-Id: Ie7a9c673d48a09b7afed7c4541917f0ce6f1562a
parent ef74fc97
Loading
Loading
Loading
Loading
+2 −15
Original line number Diff line number Diff line
@@ -74,7 +74,6 @@ import com.android.systemui.scene.shared.flag.SceneContainerFlag;
import com.android.systemui.scene.shared.model.Scenes;
import com.android.systemui.scrim.ScrimView;
import com.android.systemui.shade.ShadeViewController;
import com.android.systemui.shade.domain.interactor.ShadeModeInteractor;
import com.android.systemui.shade.transition.LargeScreenShadeInterpolator;
import com.android.systemui.statusbar.notification.stack.ViewState;
import com.android.systemui.statusbar.policy.ConfigurationController;
@@ -218,7 +217,6 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump
    private final KeyguardUnlockAnimationController mKeyguardUnlockAnimationController;
    private final StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
    private final KeyguardInteractor mKeyguardInteractor;
    private final ShadeModeInteractor mShadeModeInteractor;

    private GradientColors mColors;
    private boolean mNeedsDrawableColorUpdate;
@@ -339,7 +337,6 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump
            AlternateBouncerToGoneTransitionViewModel alternateBouncerToGoneTransitionViewModel,
            KeyguardTransitionInteractor keyguardTransitionInteractor,
            KeyguardInteractor keyguardInteractor,
            ShadeModeInteractor shadeModeInteractor,
            @Main CoroutineDispatcher mainDispatcher,
            LargeScreenShadeInterpolator largeScreenShadeInterpolator,
            BlurConfig blurConfig) {
@@ -389,7 +386,6 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump
        mAlternateBouncerToGoneTransitionViewModel = alternateBouncerToGoneTransitionViewModel;
        mKeyguardTransitionInteractor = keyguardTransitionInteractor;
        mKeyguardInteractor = keyguardInteractor;
        mShadeModeInteractor = shadeModeInteractor;
        mMainDispatcher = mainDispatcher;
    }

@@ -431,10 +427,6 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump
        mViewsAttached = true;
    }

    private boolean isDualShade() {
        return SceneContainerFlag.isEnabled() && mShadeModeInteractor.isDualShade();
    }

    private void hydrateStateInternally(ScrimView behindScrim) {
        if (SceneContainerFlag.isEnabled()) {
            return;
@@ -963,7 +955,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump
            if (!mScreenOffAnimationController.shouldExpandNotifications()
                    && !mAnimatingPanelExpansionOnUnlock
                    && !occluding) {
                if (mTransparentScrimBackground || isDualShade()) {
                if (mTransparentScrimBackground) {
                    mBehindAlpha = 0;
                    mNotificationsAlpha = 0;
                } else if (mClipsQsScrim) {
@@ -1022,12 +1014,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump
                behindAlpha = 0f;
            }
            mInFrontAlpha = mState.getFrontAlpha();
            if (isDualShade() && mState == ScrimState.SHADE_LOCKED) {
                mBehindAlpha = 0;
                mNotificationsTint = Color.TRANSPARENT;
                mNotificationsAlpha = 0;
                mBehindTint = Color.TRANSPARENT;
            } else if (mClipsQsScrim) {
            if (mClipsQsScrim) {
                mNotificationsAlpha = behindAlpha;
                mNotificationsTint = behindTint;
                mBehindAlpha = 1;
+2 −60
Original line number Diff line number Diff line
@@ -77,7 +77,6 @@ import com.android.systemui.keyguard.ui.viewmodel.PrimaryBouncerToGoneTransition
import com.android.systemui.kosmos.KosmosJavaAdapter;
import com.android.systemui.scene.shared.flag.SceneContainerFlag;
import com.android.systemui.scrim.ScrimView;
import com.android.systemui.shade.domain.interactor.ShadeModeInteractor;
import com.android.systemui.shade.transition.LargeScreenShadeInterpolator;
import com.android.systemui.shade.transition.LinearLargeScreenShadeInterpolator;
import com.android.systemui.statusbar.policy.FakeConfigurationController;
@@ -155,7 +154,6 @@ public class ScrimControllerTest extends SysuiTestCase {
    private final FakeKeyguardTransitionRepository mKeyguardTransitionRepository =
            mKosmos.getKeyguardTransitionRepository();
    @Mock private KeyguardInteractor mKeyguardInteractor;
    @Mock private ShadeModeInteractor mShadeModeInteractor;

    // TODO(b/204991468): Use a real PanelExpansionStateManager object once this bug is fixed. (The
    //   event-dispatch-on-registration pattern caused some of these unit tests to fail.)
@@ -272,8 +270,6 @@ public class ScrimControllerTest extends SysuiTestCase {
        when(mAlternateBouncerToGoneTransitionViewModel.getScrimAlpha())
                .thenReturn(emptyFlow());

        when(mShadeModeInteractor.isDualShade()).thenReturn(false);

        mScrimController = new ScrimController(
                mLightBarController,
                mDozeParameters,
@@ -292,7 +288,6 @@ public class ScrimControllerTest extends SysuiTestCase {
                mAlternateBouncerToGoneTransitionViewModel,
                mKeyguardTransitionInteractor,
                mKeyguardInteractor,
                mShadeModeInteractor,
                mKosmos.getTestDispatcher(),
                mLinearLargeScreenShadeInterpolator,
                new BlurConfig(0.0f, 0.0f));
@@ -359,8 +354,7 @@ public class ScrimControllerTest extends SysuiTestCase {

    @Test
    @EnableSceneContainer
    public void transitionToShadeLocked_sceneContainer_dualShadeOff() {
        when(mShadeModeInteractor.isDualShade()).thenReturn(false);
    public void transitionToShadeLocked_sceneContainer() {
        mScrimController.transitionTo(SHADE_LOCKED);
        mScrimController.setQsPosition(1f, 0);
        finishAnimationsImmediately();
@@ -377,27 +371,6 @@ public class ScrimControllerTest extends SysuiTestCase {
        ));
    }

    @Test
    @EnableSceneContainer
    public void transitionToShadeLocked_sceneContainer_dualShadeOn() {
        when(mShadeModeInteractor.isDualShade()).thenReturn(true);
        mScrimController.transitionTo(SHADE_LOCKED);
        mScrimController.setQsPosition(1f, 0);
        finishAnimationsImmediately();

        assertScrimAlpha(Map.of(
                mNotificationsScrim, TRANSPARENT,
                mScrimInFront, TRANSPARENT,
                mScrimBehind, TRANSPARENT
        ));

        assertScrimTinted(Map.of(
                mScrimInFront, false,
                mNotificationsScrim, false,
                mScrimBehind, false
        ));
    }

    @Test
    public void transitionToShadeLocked_clippingQs() {
        mScrimController.setClipsQsScrim(true);
@@ -959,8 +932,7 @@ public class ScrimControllerTest extends SysuiTestCase {

    @Test
    @EnableSceneContainer
    public void transitionToUnlocked_sceneContainer_dualShadeOff() {
        when(mShadeModeInteractor.isDualShade()).thenReturn(false);
    public void transitionToUnlocked_sceneContainer() {
        mScrimController.setRawPanelExpansionFraction(0f);
        mScrimController.transitionTo(ScrimState.UNLOCKED);
        finishAnimationsImmediately();
@@ -986,35 +958,6 @@ public class ScrimControllerTest extends SysuiTestCase {
        ));
    }

    @Test
    @EnableSceneContainer
    public void transitionToUnlocked_sceneContainer_dualShadeOn() {
        when(mShadeModeInteractor.isDualShade()).thenReturn(true);
        mScrimController.setRawPanelExpansionFraction(0f);
        mScrimController.transitionTo(ScrimState.UNLOCKED);
        finishAnimationsImmediately();

        assertScrimAlpha(Map.of(
                mScrimInFront, TRANSPARENT,
                mNotificationsScrim, TRANSPARENT,
                mScrimBehind, TRANSPARENT
        ));

        mScrimController.setRawPanelExpansionFraction(0.5f);
        assertScrimAlpha(Map.of(
                mScrimInFront, TRANSPARENT,
                mNotificationsScrim, TRANSPARENT,
                mScrimBehind, TRANSPARENT
        ));

        mScrimController.setRawPanelExpansionFraction(1f);
        assertScrimAlpha(Map.of(
                mScrimInFront, TRANSPARENT,
                mNotificationsScrim, TRANSPARENT,
                mScrimBehind, TRANSPARENT
        ));
    }

    @Test
    public void transitionToUnlocked_nonClippedQs_followsLargeScreensInterpolator() {
        mScrimController.setClipsQsScrim(false);
@@ -1259,7 +1202,6 @@ public class ScrimControllerTest extends SysuiTestCase {
                mAlternateBouncerToGoneTransitionViewModel,
                mKeyguardTransitionInteractor,
                mKeyguardInteractor,
                mShadeModeInteractor,
                mKosmos.getTestDispatcher(),
                mLinearLargeScreenShadeInterpolator,
                new BlurConfig(0.0f, 0.0f));