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

Commit 906b23ee authored by Lucas Dupin's avatar Lucas Dupin
Browse files

Make QS pull down consistent with shade

QS pull down was not being eased like the shade, or all apps drawer.
Now it's using the same interpolator.

Test: manually pull down QS from the top of the screen
Test: atest NotificationShadeDepthControllerTest
Test: atest ScrimControllerTest
Fixes: 196662148
Change-Id: I44387c6295d10633ebffa02b0e45c0144dd8ddfe
Merged-In: I44387c6295d10633ebffa02b0e45c0144dd8ddfe
(cherry picked from commit fb1862ba)
parent 2747904e
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -181,7 +181,8 @@ class NotificationShadeDepthController @Inject constructor(
                        if (shouldApplyShadeBlur()) shadeExpansion else 0f, false))
        var combinedBlur = (expansionRadius * INTERACTION_BLUR_FRACTION +
                animationRadius * ANIMATION_BLUR_FRACTION)
        val qsExpandedRatio = qsPanelExpansion * shadeExpansion
        val qsExpandedRatio = Interpolators.getNotificationScrimAlpha(qsPanelExpansion,
                false /* notification */) * shadeExpansion
        combinedBlur = max(combinedBlur, blurUtils.blurRadiusOfRatio(qsExpandedRatio))
        combinedBlur = max(combinedBlur, blurUtils.blurRadiusOfRatio(transitionToFullShadeProgress))
        var shadeRadius = max(combinedBlur, wakeAndUnlockBlurRadius)
+2 −0
Original line number Diff line number Diff line
@@ -587,6 +587,8 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump
        if (isNaN(expansionFraction)) {
            return;
        }
        expansionFraction = Interpolators
                .getNotificationScrimAlpha(expansionFraction, false /* notification */);
        boolean qsBottomVisible = qsPanelBottomY > 0;
        if (mQsExpansion != expansionFraction || mQsBottomVisible != qsBottomVisible) {
            mQsExpansion = expansionFraction;
+14 −2
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.view.View
import android.view.ViewRootImpl
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.animation.Interpolators
import com.android.systemui.dump.DumpManager
import com.android.systemui.plugins.statusbar.StatusBarStateController
import com.android.systemui.statusbar.phone.BiometricUnlockController
@@ -178,10 +179,21 @@ class NotificationShadeDepthControllerTest : SysuiTestCase() {

    @Test
    fun setQsPanelExpansion_appliesBlur() {
        statusBarState = StatusBarState.KEYGUARD
        notificationShadeDepthController.qsPanelExpansion = 1f
        notificationShadeDepthController.onPanelExpansionChanged(0.5f, tracking = false)
        notificationShadeDepthController.onPanelExpansionChanged(1f, tracking = false)
        notificationShadeDepthController.updateBlurCallback.doFrame(0)
        verify(blurUtils).applyBlur(any(), anyInt(), eq(false))
        verify(blurUtils).applyBlur(any(), eq(maxBlur), eq(false))
    }

    @Test
    fun setQsPanelExpansion_easing() {
        statusBarState = StatusBarState.KEYGUARD
        notificationShadeDepthController.qsPanelExpansion = 0.25f
        notificationShadeDepthController.onPanelExpansionChanged(1f, tracking = false)
        notificationShadeDepthController.updateBlurCallback.doFrame(0)
        verify(wallpaperManager).setWallpaperZoomOut(any(),
                eq(Interpolators.getNotificationScrimAlpha(0.25f, false /* notifications */)))
    }

    @Test
+2 −2
Original line number Diff line number Diff line
@@ -705,7 +705,7 @@ public class ScrimControllerTest extends SysuiTestCase {
    public void qsExpansion_half_clippingQs() {
        reset(mScrimBehind);
        mScrimController.setClipsQsScrim(true);
        mScrimController.setQsPosition(0.5f, 999 /* value doesn't matter */);
        mScrimController.setQsPosition(0.25f, 999 /* value doesn't matter */);
        finishAnimationsImmediately();

        assertScrimAlpha(Map.of(
@@ -1136,7 +1136,7 @@ public class ScrimControllerTest extends SysuiTestCase {
    @Test
    public void testScrimsVisible_whenShadeVisibleOnLockscreen() {
        mScrimController.transitionTo(ScrimState.KEYGUARD);
        mScrimController.setQsPosition(0.5f, 300);
        mScrimController.setQsPosition(0.25f, 300);

        assertScrimAlpha(Map.of(
                mScrimBehind, SEMI_TRANSPARENT,