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

Commit 9ec308d2 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Revert "Fix opacity of expanded shade during transitions""

parents 35ed2ea6 f4fcd5e0
Loading
Loading
Loading
Loading
+30 −37
Original line number Diff line number Diff line
@@ -138,8 +138,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener,
    protected float mScrimBehindAlphaKeyguard = SCRIM_BEHIND_ALPHA_KEYGUARD;
    protected float mScrimBehindAlphaUnlocking = SCRIM_BEHIND_ALPHA_UNLOCKING;

    // Assuming the shade is expanded during initialization
    private float mExpansionFraction = 1f;
    private float mFraction;

    private boolean mDarkenWhileDragging;
    protected boolean mAnimateChange;
@@ -253,7 +252,6 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener,
        mCurrentBehindTint = state.getBehindTint();
        mCurrentInFrontAlpha = state.getFrontAlpha();
        mCurrentBehindAlpha = state.getBehindAlpha();
        applyExpansionToAlpha();

        // Cancel blanking transitions that were pending before we requested a new state
        if (mPendingFrameCallback != null) {
@@ -365,28 +363,9 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener,
     * @param fraction From 0 to 1 where 0 means collapse and 1 expanded.
     */
    public void setPanelExpansion(float fraction) {
        if (mExpansionFraction != fraction) {
            mExpansionFraction = fraction;
        if (mFraction != fraction) {
            mFraction = fraction;

            if (!(mState == ScrimState.UNLOCKED || mState == ScrimState.KEYGUARD)) {
                return;
            }

            applyExpansionToAlpha();

            if (mUpdatePending) {
                return;
            }

            if (mPinnedHeadsUpCount != 0) {
                updateHeadsUpScrim(false);
            }
            updateScrim(false /* animate */, mScrimInFront, mCurrentInFrontAlpha);
            updateScrim(false /* animate */, mScrimBehind, mCurrentBehindAlpha);
        }
    }

    private void applyExpansionToAlpha() {
            if (mState == ScrimState.UNLOCKED) {
                // Darken scrim as you pull down the shade when unlocked
                float behindFraction = getInterpolatedFraction();
@@ -394,6 +373,10 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener,
                mCurrentBehindAlpha = behindFraction * mScrimBehindAlphaKeyguard;
                mCurrentInFrontAlpha = 0;
            } else if (mState == ScrimState.KEYGUARD) {
                if (mUpdatePending) {
                    return;
                }

                // Either darken of make the scrim transparent when you
                // pull down the shade
                float interpolatedFract = getInterpolatedFraction();
@@ -406,6 +389,16 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener,
                            interpolatedFract);
                    mCurrentInFrontAlpha = 0;
                }
            } else {
                return;
            }

            if (mPinnedHeadsUpCount != 0) {
                updateHeadsUpScrim(false);
            }

            updateScrim(false /* animate */, mScrimInFront, mCurrentInFrontAlpha);
            updateScrim(false /* animate */, mScrimBehind, mCurrentBehindAlpha);
        }
    }

@@ -504,7 +497,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener,
    }

    private float getInterpolatedFraction() {
        float frac = mExpansionFraction;
        float frac = mFraction;
        // let's start this 20% of the way down the screen
        frac = frac * 1.2f - 0.2f;
        if (frac <= 0) {
@@ -834,7 +827,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener,
        } else {
            alpha = 1.0f - mTopHeadsUpDragAmount;
        }
        float expandFactor = (1.0f - mExpansionFraction);
        float expandFactor = (1.0f - mFraction);
        expandFactor = Math.max(expandFactor, 0.0f);
        return alpha * expandFactor;
    }
+0 −19
Original line number Diff line number Diff line
@@ -180,7 +180,6 @@ public class ScrimControllerTest extends SysuiTestCase {

    @Test
    public void transitionToUnlocked() {
        mScrimController.setPanelExpansion(0f);
        mScrimController.transitionTo(ScrimState.UNLOCKED);
        mScrimController.finishAnimationsImmediately();
        // Front scrim should be transparent
@@ -198,7 +197,6 @@ public class ScrimControllerTest extends SysuiTestCase {
    public void transitionToUnlockedFromAod() {
        // Simulate unlock with fingerprint
        mScrimController.transitionTo(ScrimState.AOD);
        mScrimController.setPanelExpansion(0f);
        mScrimController.finishAnimationsImmediately();
        mScrimController.transitionTo(ScrimState.UNLOCKED);
        // Immediately tinted after the transition starts
@@ -326,23 +324,6 @@ public class ScrimControllerTest extends SysuiTestCase {
        verify(mAlarmManager).cancel(any(AlarmManager.OnAlarmListener.class));
    }

    @Test
    public void testConservesExpansionOpacityAfterTransition() {
        mScrimController.transitionTo(ScrimState.UNLOCKED);
        mScrimController.setPanelExpansion(0.5f);
        mScrimController.finishAnimationsImmediately();

        final float expandedAlpha = mScrimBehind.getViewAlpha();

        mScrimController.transitionTo(ScrimState.BRIGHTNESS_MIRROR);
        mScrimController.finishAnimationsImmediately();
        mScrimController.transitionTo(ScrimState.UNLOCKED);
        mScrimController.finishAnimationsImmediately();

        Assert.assertEquals("Scrim expansion opacity wasn't conserved when transitioning back",
                expandedAlpha, mScrimBehind.getViewAlpha(), 0.01f);
    }

    private void assertScrimTint(ScrimView scrimView, boolean tinted) {
        final boolean viewIsTinted = scrimView.getTint() != Color.TRANSPARENT;
        final String name = scrimView == mScrimInFront ? "front" : "back";