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

Commit 956edfff authored by Matt Pietal's avatar Matt Pietal
Browse files

Ensure keyguard alpha is 0f on OCCLUDED->PRIMARY_BOUNCER

When apps such as home controls launch from an expanded shade,
the shade collapsing may reset alpha to 1f. Reassert the alpha
to be 0f.

Fixes: 397867199
Test: atest OccludedToPrimaryBouncerTransitionViewModelTest
Flag: EXEMPT bugfix
Change-Id: I82f03ff0feac5aae622adb77a38f003fba0fa808
parent 23f87d67
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -21,15 +21,20 @@ import android.platform.test.flag.junit.FlagsParameterization
import androidx.test.filters.SmallTest
import com.android.systemui.Flags.FLAG_NOTIFICATION_SHADE_BLUR
import com.android.systemui.SysuiTestCase
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.coroutines.collectValues
import com.android.systemui.flags.BrokenWithSceneContainer
import com.android.systemui.flags.DisableSceneContainer
import com.android.systemui.flags.andSceneContainer
import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository
import com.android.systemui.keyguard.shared.model.KeyguardState
import com.android.systemui.keyguard.shared.model.TransitionState
import com.android.systemui.keyguard.shared.model.TransitionStep
import com.android.systemui.keyguard.ui.transitions.blurConfig
import com.android.systemui.kosmos.testScope
import com.android.systemui.testKosmos
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.test.runCurrent
import kotlinx.coroutines.test.runTest
import org.junit.Before
import org.junit.Test
@@ -43,6 +48,7 @@ class OccludedToPrimaryBouncerTransitionViewModelTest(flags: FlagsParameterizati
    SysuiTestCase() {
    private val kosmos = testKosmos()
    private val testScope = kosmos.testScope
    private val repository = kosmos.fakeKeyguardTransitionRepository
    private lateinit var underTest: OccludedToPrimaryBouncerTransitionViewModel

    companion object {
@@ -62,6 +68,25 @@ class OccludedToPrimaryBouncerTransitionViewModelTest(flags: FlagsParameterizati
        underTest = kosmos.occludedToPrimaryBouncerTransitionViewModel
    }

    @Test
    @DisableSceneContainer
    fun lockscreenAlphaImmediatelyToZero() =
        testScope.runTest {
            val alpha by collectLastValue(underTest.lockscreenAlpha)

            repository.sendTransitionStep(step(0f, TransitionState.STARTED))
            runCurrent()
            assertThat(alpha).isEqualTo(0f)

            repository.sendTransitionStep(step(0.1f, TransitionState.RUNNING))
            runCurrent()
            assertThat(alpha).isEqualTo(0f)

            repository.sendTransitionStep(step(1f, TransitionState.FINISHED))
            runCurrent()
            assertThat(alpha).isEqualTo(0f)
        }

    @Test
    @BrokenWithSceneContainer(388068805)
    fun notificationsAreBlurredImmediatelyWhenBouncerIsOpenedAndShadeIsExpanded() =
+3 −0
Original line number Diff line number Diff line
@@ -132,6 +132,8 @@ constructor(
    private val occludedToAodTransitionViewModel: OccludedToAodTransitionViewModel,
    private val occludedToDozingTransitionViewModel: OccludedToDozingTransitionViewModel,
    private val occludedToLockscreenTransitionViewModel: OccludedToLockscreenTransitionViewModel,
    private val occludedToPrimaryBouncerTransitionViewModel:
        OccludedToPrimaryBouncerTransitionViewModel,
    private val offToLockscreenTransitionViewModel: OffToLockscreenTransitionViewModel,
    private val primaryBouncerToAodTransitionViewModel: PrimaryBouncerToAodTransitionViewModel,
    private val primaryBouncerToGoneTransitionViewModel: PrimaryBouncerToGoneTransitionViewModel,
@@ -288,6 +290,7 @@ constructor(
                        occludedToAodTransitionViewModel.lockscreenAlpha,
                        occludedToDozingTransitionViewModel.lockscreenAlpha,
                        occludedToLockscreenTransitionViewModel.lockscreenAlpha,
                        occludedToPrimaryBouncerTransitionViewModel.lockscreenAlpha,
                        offToLockscreenTransitionViewModel.lockscreenAlpha,
                        primaryBouncerToAodTransitionViewModel.lockscreenAlpha,
                        primaryBouncerToGoneTransitionViewModel.lockscreenAlpha,
+6 −0
Original line number Diff line number Diff line
@@ -45,6 +45,12 @@ constructor(
            )
            .setupWithoutSceneContainer(edge = Edge.create(OCCLUDED, PRIMARY_BOUNCER))

    /**
     * Reasserts that lockscreen content should not be visible. It is possible the keyguard alpha is
     * set to 1f if coming from an expanded shade that collapsed to launch an occluding activity.
     */
    val lockscreenAlpha: Flow<Float> = transitionAnimation.immediatelyTransitionTo(0f)

    override val windowBlurRadius: Flow<Float> =
        shadeDependentFlows.transitionFlow(
            flowWhenShadeIsExpanded =
+1 −0
Original line number Diff line number Diff line
@@ -84,6 +84,7 @@ val Kosmos.keyguardRootViewModel by Fixture {
        occludedToAodTransitionViewModel = occludedToAodTransitionViewModel,
        occludedToDozingTransitionViewModel = occludedToDozingTransitionViewModel,
        occludedToLockscreenTransitionViewModel = occludedToLockscreenTransitionViewModel,
        occludedToPrimaryBouncerTransitionViewModel = occludedToPrimaryBouncerTransitionViewModel,
        offToLockscreenTransitionViewModel = offToLockscreenTransitionViewModel,
        primaryBouncerToAodTransitionViewModel = primaryBouncerToAodTransitionViewModel,
        primaryBouncerToGoneTransitionViewModel = primaryBouncerToGoneTransitionViewModel,