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
This commit is contained in:
@@ -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 {}
|
||||
)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user