Merge "Check for block location change when configuration changes" into tm-qpr-dev am: 4f4d7d3a08 am: 60eb33e4f0

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21961697

Change-Id: Ia0b0ff24d2c5c9d904b6072d7a629156a2ca2940
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Michael Mikhail
2023-03-13 17:55:09 +00:00
committed by Automerger Merge Worker
2 changed files with 54 additions and 1 deletions

View File

@@ -639,7 +639,9 @@ constructor(
) =
traceSection("MediaHierarchyManager#updateDesiredLocation") {
val desiredLocation = calculateLocation()
if (desiredLocation != this.desiredLocation || forceStateUpdate) {
if (
desiredLocation != this.desiredLocation || forceStateUpdate && !blockLocationChanges
) {
if (this.desiredLocation >= 0 && desiredLocation != this.desiredLocation) {
// Only update previous location when it actually changes
previousLocation = this.desiredLocation

View File

@@ -179,6 +179,57 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
)
}
@Test
fun testBlockedWhenConfigurationChangesAndScreenOff() {
// Let's set it onto QS:
mediaHierarchyManager.qsExpansion = 1.0f
verify(mediaCarouselController)
.onDesiredLocationChanged(
ArgumentMatchers.anyInt(),
any(MediaHostState::class.java),
anyBoolean(),
anyLong(),
anyLong()
)
val observer = wakefullnessObserver.value
assertNotNull("lifecycle observer wasn't registered", observer)
observer.onStartedGoingToSleep()
clearInvocations(mediaCarouselController)
configurationController.notifyConfigurationChanged()
verify(mediaCarouselController, times(0))
.onDesiredLocationChanged(
ArgumentMatchers.anyInt(),
any(MediaHostState::class.java),
anyBoolean(),
anyLong(),
anyLong()
)
}
@Test
fun testAllowedWhenConfigurationChanges() {
// Let's set it onto QS:
mediaHierarchyManager.qsExpansion = 1.0f
verify(mediaCarouselController)
.onDesiredLocationChanged(
ArgumentMatchers.anyInt(),
any(MediaHostState::class.java),
anyBoolean(),
anyLong(),
anyLong()
)
clearInvocations(mediaCarouselController)
configurationController.notifyConfigurationChanged()
verify(mediaCarouselController)
.onDesiredLocationChanged(
ArgumentMatchers.anyInt(),
any(MediaHostState::class.java),
anyBoolean(),
anyLong(),
anyLong()
)
}
@Test
fun testAllowedWhenNotTurningOff() {
// Let's set it onto QS: