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

Commit 12120a14 authored by Matt Pietal's avatar Matt Pietal
Browse files

Reset clip state for keyguard

When a device is unfolded while showing the shade, the wrong
clip value can persist. On use the clip value is the shade
is actually expanded.

Fixes: 413574227
Test: atest KeyguardRootViewModelTest
Flag: EXEMPT bugfix
Change-Id: Ia2b230502480a206b44856f7cff466766ac0f78a
parent 11fae1bc
Loading
Loading
Loading
Loading
+17 −2
Original line number Diff line number Diff line
@@ -327,6 +327,7 @@ class KeyguardRootViewModelTest(flags: FlagsParameterization) : SysuiTestCase()
            val topClippingBounds by collectLastValue(underTest.topClippingBounds)
            assertThat(topClippingBounds).isNull()

            shadeTestUtil.setShadeExpansion(0.5f)
            keyguardRepository.topClippingBounds.value = 50
            assertThat(topClippingBounds).isEqualTo(50)

@@ -341,9 +342,23 @@ class KeyguardRootViewModelTest(flags: FlagsParameterization) : SysuiTestCase()
            )

            kosmos.setSceneTransition(Idle(Scenes.Gone))
            // Make sure the value hasn't changed since we're GONE
            shadeTestUtil.setShadeExpansion(0f)
            keyguardRepository.topClippingBounds.value = 5
            assertThat(topClippingBounds).isEqualTo(1000)
            assertThat(topClippingBounds).isEqualTo(null)
        }

    @Test
    fun topClippingBoundsEmitsNullWhenNotExpanded() =
        testScope.runTest {
            val topClippingBounds by collectLastValue(underTest.topClippingBounds)
            assertThat(topClippingBounds).isNull()

            shadeTestUtil.setShadeExpansion(0f)
            keyguardRepository.topClippingBounds.value = 50
            assertThat(topClippingBounds).isNull()

            keyguardRepository.topClippingBounds.value = 1000
            assertThat(topClippingBounds).isNull()
        }

    @Test
+6 −1
Original line number Diff line number Diff line
@@ -223,7 +223,12 @@ constructor(
     * non-split shade cases.
     */
    val topClippingBounds: Flow<Int?> =
        keyguardInteractor.topClippingBounds.dumpWhileCollecting("topClippingBounds")
        combine(keyguardInteractor.topClippingBounds, shadeInteractor.isShadeAnyExpanded) {
                topClippingBounds,
                isShadeAnyExpanded ->
                if (isShadeAnyExpanded) topClippingBounds else null
            }
            .dumpWhileCollecting("topClippingBounds")

    /** An observable for the alpha level for the entire keyguard root view. */
    fun alpha(viewState: ViewStateAccessor): Flow<Float> {