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

Commit 8b19369a authored by Aaron Liu's avatar Aaron Liu
Browse files

Fix sidefps visibility.

In ag/21915461, there seems to be a regression where the side fps does
not hide when the bouncer hides. This is likely caused by a race
condition between the visibility and when startingToHide is called.

We can fix this by updating the side fps visibility when hide is called
instead of startingToHide.

Fixes: 273563764
Bug: 263924084
Test: added a unit test.
Test: Show bouncer with side fps and hide the bouncer.
Change-Id: Idacf9e74ed3c0f7c2a03d5dd6ffa128b49c50c05
parent f7fa5cb4
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -70,7 +70,7 @@ constructor(
    /** Observe whether we should update fps is showing. */
    val shouldUpdateSideFps: Flow<Unit> =
        merge(
            interactor.startingToHide,
            interactor.hide,
            interactor.show,
            interactor.startingDisappearAnimation.filterNotNull().map {}
        )
+13 −1
Original line number Diff line number Diff line
@@ -93,7 +93,7 @@ class KeyguardBouncerViewModelTest : SysuiTestCase() {
    }

    @Test
    fun shouldUpdateSideFps() = runTest {
    fun shouldUpdateSideFps_show() = runTest {
        var count = 0
        val job = underTest.shouldUpdateSideFps.onEach { count++ }.launchIn(this)
        repository.setPrimaryShow(true)
@@ -103,6 +103,18 @@ class KeyguardBouncerViewModelTest : SysuiTestCase() {
        job.cancel()
    }

    @Test
    fun shouldUpdateSideFps_hide() = runTest {
        repository.setPrimaryShow(true)
        var count = 0
        val job = underTest.shouldUpdateSideFps.onEach { count++ }.launchIn(this)
        repository.setPrimaryShow(false)
        // Run the tasks that are pending at this point of virtual time.
        runCurrent()
        assertThat(count).isEqualTo(1)
        job.cancel()
    }

    @Test
    fun sideFpsShowing() = runTest {
        var sideFpsIsShowing = false