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

Commit 8665e2e7 authored by Christian Göllner's avatar Christian Göllner Committed by Automerger Merge Worker
Browse files

Merge "ScrimControllerTest: add more test cases for the alpha interpolation of...

Merge "ScrimControllerTest: add more test cases for the alpha interpolation of the scrims" into tm-dev am: a210d6f8 am: 9c5dbb4a

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17523150



Change-Id: I66fc135b820fa176081bd70ba4581a4e3b3a1312
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents b0813b3d 9c5dbb4a
Loading
Loading
Loading
Loading
+89 −12
Original line number Diff line number Diff line
@@ -49,9 +49,11 @@ import android.view.View;
import androidx.test.filters.SmallTest;

import com.android.internal.colorextraction.ColorExtractor.GradientColors;
import com.android.keyguard.BouncerPanelExpansionCalculator;
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.systemui.DejankUtils;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.animation.ShadeInterpolation;
import com.android.systemui.dock.DockManager;
import com.android.systemui.keyguard.KeyguardUnlockAnimationController;
import com.android.systemui.scrim.ScrimView;
@@ -1235,39 +1237,114 @@ public class ScrimControllerTest extends SysuiTestCase {
    }

    @Test
    public void testNotificationTransparency_followsPanelExpansionInShadeLockedState() {
    public void expansionNotificationAlpha_shadeLocked_bouncerActive_usesBouncerInterpolator() {
        when(mStatusBarKeyguardViewManager.bouncerIsInTransit()).thenReturn(true);

        mScrimController.transitionTo(ScrimState.SHADE_LOCKED);

        assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 0f, /* expansion */ 0.8f);
        assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 0f, /* expansion */ 0.2f);
        float expansion = 0.8f;
        float expectedAlpha =
                BouncerPanelExpansionCalculator.getBackScrimScaledExpansion(expansion);
        assertAlphaAfterExpansion(mNotificationsScrim, expectedAlpha, expansion);

        expansion = 0.2f;
        expectedAlpha = BouncerPanelExpansionCalculator.getBackScrimScaledExpansion(expansion);
        assertAlphaAfterExpansion(mNotificationsScrim, expectedAlpha, expansion);
    }

    @Test
    public void expansionNotificationAlpha_shadeLocked_bouncerNotActive_usesShadeInterpolator() {
        when(mStatusBarKeyguardViewManager.bouncerIsInTransit()).thenReturn(false);

        mScrimController.transitionTo(ScrimState.SHADE_LOCKED);

        float expansion = 0.8f;
        float expectedAlpha = ShadeInterpolation.getNotificationScrimAlpha(expansion);
        assertAlphaAfterExpansion(mNotificationsScrim, expectedAlpha, expansion);

        expansion = 0.2f;
        expectedAlpha = ShadeInterpolation.getNotificationScrimAlpha(expansion);
        assertAlphaAfterExpansion(mNotificationsScrim, expectedAlpha, expansion);
    }

    @Test
    public void testNotificationTransparency_unnocclusion() {
    public void notificationAlpha_unnocclusionAnimating_bouncerActive_usesKeyguardNotifAlpha() {
        when(mStatusBarKeyguardViewManager.bouncerIsInTransit()).thenReturn(true);

        mScrimController.transitionTo(ScrimState.KEYGUARD);
        mScrimController.setUnocclusionAnimationRunning(true);

        assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 0f, /* expansion */ 0f);
        assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 0f, /* expansion */ 1.0f);
        assertAlphaAfterExpansion(
                mNotificationsScrim, ScrimState.KEYGUARD.getNotifAlpha(), /* expansion */ 0f);
        assertAlphaAfterExpansion(
                mNotificationsScrim, ScrimState.KEYGUARD.getNotifAlpha(), /* expansion */ 0.4f);
        assertAlphaAfterExpansion(
                mNotificationsScrim, ScrimState.KEYGUARD.getNotifAlpha(), /* expansion */ 1.0f);

        // Verify normal behavior after
        mScrimController.setUnocclusionAnimationRunning(false);
        float expansion = 0.4f;
        float alpha = 1 - BouncerPanelExpansionCalculator.getBackScrimScaledExpansion(expansion);
        assertAlphaAfterExpansion(mNotificationsScrim, alpha, expansion);
    }

    @Test
    public void notificationAlpha_unnocclusionAnimating_bouncerNotActive_usesKeyguardNotifAlpha() {
        when(mStatusBarKeyguardViewManager.bouncerIsInTransit()).thenReturn(false);

        mScrimController.transitionTo(ScrimState.KEYGUARD);
        mScrimController.setUnocclusionAnimationRunning(true);

        assertAlphaAfterExpansion(
                mNotificationsScrim, ScrimState.KEYGUARD.getNotifAlpha(), /* expansion */ 0f);
        assertAlphaAfterExpansion(
                mNotificationsScrim, ScrimState.KEYGUARD.getNotifAlpha(), /* expansion */ 0.4f);
        assertAlphaAfterExpansion(
                mNotificationsScrim, ScrimState.KEYGUARD.getNotifAlpha(), /* expansion */ 1.0f);

        // Verify normal behavior after
        mScrimController.setUnocclusionAnimationRunning(false);
        assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 1f, /* expansion */ 0.4f);
        float expansion = 0.4f;
        float alpha = 1 - ShadeInterpolation.getNotificationScrimAlpha(expansion);
        assertAlphaAfterExpansion(mNotificationsScrim, alpha, expansion);
    }

    @Test
    public void testNotificationTransparency_inKeyguardState() {
    public void notificationAlpha_inKeyguardState_bouncerActive_usesInvertedBouncerInterpolator() {
        when(mStatusBarKeyguardViewManager.bouncerIsInTransit()).thenReturn(true);

        mScrimController.transitionTo(ScrimState.KEYGUARD);

        assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 1f, /* expansion */ 0.8f);
        assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 1f, /* expansion */ 0.4f);
        assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 1f, /* expansion */ 0.2f);
        float expansion = 0.8f;
        float alpha = 1 - BouncerPanelExpansionCalculator.getBackScrimScaledExpansion(expansion);
        assertAlphaAfterExpansion(mNotificationsScrim, alpha, expansion);

        expansion = 0.4f;
        alpha = 1 - BouncerPanelExpansionCalculator.getBackScrimScaledExpansion(expansion);
        assertAlphaAfterExpansion(mNotificationsScrim, alpha, expansion);

        expansion = 0.2f;
        alpha = 1 - BouncerPanelExpansionCalculator.getBackScrimScaledExpansion(expansion);
        assertAlphaAfterExpansion(mNotificationsScrim, alpha, expansion);
    }

    @Test
    public void notificationAlpha_inKeyguardState_bouncerNotActive_usesInvertedShadeInterpolator() {
        when(mStatusBarKeyguardViewManager.bouncerIsInTransit()).thenReturn(false);

        mScrimController.transitionTo(ScrimState.KEYGUARD);

        float expansion = 0.8f;
        float alpha = 1 - ShadeInterpolation.getNotificationScrimAlpha(expansion);
        assertAlphaAfterExpansion(mNotificationsScrim, alpha, expansion);

        expansion = 0.4f;
        alpha = 1 - ShadeInterpolation.getNotificationScrimAlpha(expansion);
        assertAlphaAfterExpansion(mNotificationsScrim, alpha, expansion);

        expansion = 0.2f;
        alpha = 1 - ShadeInterpolation.getNotificationScrimAlpha(expansion);
        assertAlphaAfterExpansion(mNotificationsScrim, alpha, expansion);
    }

    @Test
@@ -1387,7 +1464,7 @@ public class ScrimControllerTest extends SysuiTestCase {
        mScrimController.setRawPanelExpansionFraction(expansion);
        finishAnimationsImmediately();
        // alpha is not changing linearly thus 0.2 of leeway when asserting
        assertEquals(expectedAlpha, mNotificationsScrim.getViewAlpha(), 0.2);
        assertEquals(expectedAlpha, scrim.getViewAlpha(), 0.2);
    }

    private void assertScrimTinted(Map<ScrimView, Boolean> scrimToTint) {