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

Commit 46ce6367 authored by Chandru S's avatar Chandru S
Browse files

Handle bouncer over shade over glanceable hub/dreaming, notifications were not getting blurred.

Fixes: 412217015
Test: unit tests
Test: verified manually
Flag: com.android.systemui.bouncer_ui_revamp
Change-Id: I8a143fd3a61a8e57e1f201ba613f9b81988f5a75
parent c0aa3158
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -54,6 +54,22 @@ class DreamingToPrimaryBouncerTransitionViewModelTest : SysuiTestCase() {
            )
        }

    @Test
    fun dreamingToPrimaryBouncerChangesNotificationBlurToMax_whenShadeExpanded() =
        testScope.runTest {
            val values by collectValues(underTest.notificationBlurRadius)
            kosmos.keyguardWindowBlurTestUtil.shadeExpanded(true)

            kosmos.keyguardWindowBlurTestUtil.assertTransitionToBlurRadius(
                transitionProgress = listOf(0.0f, 0.0f, 0.3f, 0.4f, 0.5f, 1.0f),
                startValue = kosmos.blurConfig.maxBlurRadiusPx,
                endValue = kosmos.blurConfig.maxBlurRadiusPx,
                transitionFactory = ::step,
                actualValuesProvider = { values },
                checkInterpolatedValues = false,
            )
        }

    private fun step(value: Float, transitionState: TransitionState = RUNNING) =
        TransitionStep(
            from = KeyguardState.DREAMING,
+25 −0
Original line number Diff line number Diff line
@@ -103,6 +103,31 @@ class GlanceableHubToPrimaryBouncerTransitionViewModelTest : SysuiTestCase() {
            )
        }

    @Test
    @DisableSceneContainer
    fun notificationBlurRadiusGoesToMaxWithShadeExpandedOverGlanceableHub() =
        kosmos.runTest {
            val values by collectValues(underTest.notificationBlurRadius)
            keyguardWindowBlurTestUtil.shadeExpanded(true)

            keyguardWindowBlurTestUtil.assertTransitionToBlurRadius(
                transitionProgress = listOf(0.0f, 0.2f, 0.3f, 0.65f, 0.7f, 1.0f),
                startValue = blurConfig.maxBlurRadiusPx,
                endValue = blurConfig.maxBlurRadiusPx,
                actualValuesProvider = { values },
                transitionFactory = { step, transitionState ->
                    TransitionStep(
                        from = KeyguardState.GLANCEABLE_HUB,
                        to = KeyguardState.PRIMARY_BOUNCER,
                        value = step,
                        transitionState = transitionState,
                        ownerName = "GlanceableHubToPrimaryBouncerTransitionViewModelTest",
                    )
                },
                checkInterpolatedValues = false,
            )
        }

    @Test
    @DisableSceneContainer
    @DisableFlags(FLAG_GLANCEABLE_HUB_V2)
+1 −1
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@ import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.mapNotNull

typealias IsShadeExpanded = Boolean
private typealias IsShadeExpanded = Boolean

/**
 * Assists in creating sub-flows for a KeyguardTransition. Call [setup] once for a transition, and
+9 −2
Original line number Diff line number Diff line
@@ -27,7 +27,6 @@ import com.android.systemui.keyguard.ui.transitions.PrimaryBouncerTransition
import com.android.systemui.scene.shared.model.Overlays
import javax.inject.Inject
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.emptyFlow

@SysUISingleton
class DreamingToPrimaryBouncerTransitionViewModel
@@ -45,5 +44,13 @@ constructor(blurConfig: BlurConfig, animationFlow: KeyguardTransitionAnimationFl
    override val windowBlurRadius: Flow<Float> =
        transitionAnimation.immediatelyTransitionTo(blurConfig.maxBlurRadiusPx)

    override val notificationBlurRadius: Flow<Float> = emptyFlow()
    override val notificationBlurRadius: Flow<Float> =
        transitionAnimation.sharedFlowWithShade(
            onStep = { _, isShadeExpanded ->
                when {
                    isShadeExpanded -> blurConfig.maxBlurRadiusPx
                    else -> null
                }
            }
        )
}
+9 −1
Original line number Diff line number Diff line
@@ -73,5 +73,13 @@ constructor(
            isLandscape

    override val notificationBlurRadius: Flow<Float> =
        transitionAnimation.immediatelyTransitionTo(0.0f)
        transitionAnimation.sharedFlowWithShade(
            onStep = { _, isShadeExpanded ->
                if (isShadeExpanded) {
                    blurConfig.maxBlurRadiusPx
                } else {
                    null
                }
            }
        )
}