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

Commit 5beead2b authored by Selim Cinek's avatar Selim Cinek Committed by Automerger Merge Worker
Browse files

Merge "Scaling back the wallpaper + blurring when dragging down on LS" into...

Merge "Scaling back the wallpaper + blurring when dragging down on LS" into sc-dev am: 2d792d0a am: e5fd3715

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

Change-Id: Ib5badd78c876561898773771b24ca7635927be1f
parents 6476b9b1 e5fd3715
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1426,7 +1426,7 @@

    <!-- Distance that the full shade transition takes in order for media to fully transition to
         the shade -->
    <dimen name="lockscreen_shade_media_transition_distance">140dp</dimen>
    <dimen name="lockscreen_shade_media_transition_distance">120dp</dimen>

    <!-- Maximum overshoot for the topPadding of notifications when transitioning to the full
         shade -->
+2 −0
Original line number Diff line number Diff line
@@ -58,6 +58,7 @@ class LockscreenShadeTransitionController @Inject constructor(
    private val displayMetrics: DisplayMetrics,
    private val mediaHierarchyManager: MediaHierarchyManager,
    private val scrimController: ScrimController,
    private val depthController: NotificationShadeDepthController,
    private val featureFlags: FeatureFlags,
    private val context: Context,
    configurationController: ConfigurationController,
@@ -289,6 +290,7 @@ class LockscreenShadeTransitionController @Inject constructor(
                    mediaHierarchyManager.setTransitionToFullShadeAmount(mediaAmount)
                    // Fade out all content only visible on the lockscreen
                    notificationPanelController.setKeyguardOnlyContentAlpha(1.0f - scrimProgress)
                    depthController.transitionToFullShadeProgress = scrimProgress
                }
            }
        }
+19 −4
Original line number Diff line number Diff line
@@ -105,6 +105,16 @@ class NotificationShadeDepthController @Inject constructor(
            scheduleUpdate()
        }

    /**
     * How much we're transitioning to the full shade
     */
    var transitionToFullShadeProgress = 0f
        set(value) {
            if (field == value) return
            field = value
            scheduleUpdate()
        }

    /**
     * When launching an app from the shade, the animations progress should affect how blurry the
     * shade is, overriding the expansion amount.
@@ -159,6 +169,7 @@ class NotificationShadeDepthController @Inject constructor(
        var combinedBlur = (shadeSpring.radius * INTERACTION_BLUR_FRACTION +
                normalizedBlurRadius * ANIMATION_BLUR_FRACTION).toInt()
        combinedBlur = max(combinedBlur, blurUtils.blurRadiusOfRatio(qsPanelExpansion))
        combinedBlur = max(combinedBlur, blurUtils.blurRadiusOfRatio(transitionToFullShadeProgress))
        var shadeRadius = max(combinedBlur, wakeAndUnlockBlurRadius).toFloat()
        val launchProgress = notificationLaunchAnimationParams?.linearProgress ?: 0f
        shadeRadius *= (1f - launchProgress) * (1f - launchProgress)
@@ -323,7 +334,7 @@ class NotificationShadeDepthController @Inject constructor(
        velocity: Float,
        direction: Int
    ) {
        if (isOnKeyguardNotDismissing()) {
        if (shouldApplyShadeBlur()) {
            if (expansion > 0f) {
                // Blur view if user starts animating in the shade.
                if (isClosed) {
@@ -370,7 +381,7 @@ class NotificationShadeDepthController @Inject constructor(
    private fun animateBlur(blur: Boolean, velocity: Float) {
        isBlurred = blur

        val targetBlurNormalized = if (blur && isOnKeyguardNotDismissing()) {
        val targetBlurNormalized = if (blur && shouldApplyShadeBlur()) {
            1f
        } else {
            0f
@@ -382,7 +393,7 @@ class NotificationShadeDepthController @Inject constructor(

    private fun updateShadeBlur() {
        var newBlur = 0
        if (isOnKeyguardNotDismissing()) {
        if (shouldApplyShadeBlur()) {
            newBlur = blurUtils.blurRadiusOfRatio(shadeExpansion)
        }
        shadeSpring.animateTo(newBlur)
@@ -397,7 +408,11 @@ class NotificationShadeDepthController @Inject constructor(
        choreographer.postFrameCallback(updateBlurCallback)
    }

    private fun isOnKeyguardNotDismissing(): Boolean {
    /**
     * Should blur be applied to the shade currently. This is mainly used to make sure that
     * on the lockscreen, the wallpaper isn't blurred.
     */
    private fun shouldApplyShadeBlur(): Boolean {
        val state = statusBarStateController.state
        return (state == StatusBarState.SHADE || state == StatusBarState.SHADE_LOCKED) &&
                !keyguardStateController.isKeyguardFadingAway
+4 −1
Original line number Diff line number Diff line
@@ -68,6 +68,7 @@ class LockscreenShadeTransitionControllerTest : SysuiTestCase() {
    @Mock lateinit var notificationPanelController: NotificationPanelViewController
    @Mock lateinit var nsslController: NotificationStackScrollLayoutController
    @Mock lateinit var featureFlags: FeatureFlags
    @Mock lateinit var depthController: NotificationShadeDepthController
    @Mock lateinit var stackscroller: NotificationStackScrollLayout
    @Mock lateinit var expandHelperCallback: ExpandHelper.Callback
    @Mock lateinit var statusbar: StatusBar
@@ -94,7 +95,8 @@ class LockscreenShadeTransitionControllerTest : SysuiTestCase() {
            featureFlags = featureFlags,
            context = context,
            configurationController = configurationController,
            falsingManager = falsingManager
            falsingManager = falsingManager,
            depthController = depthController
        )
        whenever(nsslController.view).thenReturn(stackscroller)
        whenever(nsslController.expandHelperCallback).thenReturn(expandHelperCallback)
@@ -221,5 +223,6 @@ class LockscreenShadeTransitionControllerTest : SysuiTestCase() {
        verify(notificationPanelController).setTransitionToFullShadeAmount(anyFloat(),
                anyBoolean(), anyLong())
        verify(qS).setTransitionToFullShadeAmount(anyFloat(), anyBoolean())
        verify(depthController).transitionToFullShadeProgress = anyFloat()
    }
}
+7 −0
Original line number Diff line number Diff line
@@ -184,6 +184,13 @@ class NotificationShadeDepthControllerTest : SysuiTestCase() {
        verify(blurUtils).applyBlur(any(), eq(maxBlur), eq(false))
    }

    @Test
    fun setFullShadeTransition_appliesBlur() {
        notificationShadeDepthController.transitionToFullShadeProgress = 1f
        notificationShadeDepthController.updateBlurCallback.doFrame(0)
        verify(blurUtils).applyBlur(any(), eq(maxBlur), eq(false))
    }

    @Test
    fun updateGlobalDialogVisibility_animatesBlur() {
        notificationShadeDepthController.updateGlobalDialogVisibility(0.5f, root)