diff options
| author | 2024-04-05 12:12:26 +0000 | |
|---|---|---|
| committer | 2024-04-05 12:12:26 +0000 | |
| commit | e3677c8d47aed56edc7097b3eea59cce96a81b23 (patch) | |
| tree | 687e6ab41ede6f9aa36b3d68e44e0811c4accbf4 | |
| parent | 55812da62268a74fd62f3d77ef8c22630cec9c76 (diff) | |
| parent | 1e2fdc057fa6e666ce4c3e6827a7d80a9198be8e (diff) | |
Merge "Nav bar moves independently of the layer" into main
| -rw-r--r-- | tests/FlickerTests/Rotation/src/com/android/server/wm/flicker/rotation/RotationTransition.kt | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/tests/FlickerTests/Rotation/src/com/android/server/wm/flicker/rotation/RotationTransition.kt b/tests/FlickerTests/Rotation/src/com/android/server/wm/flicker/rotation/RotationTransition.kt index c7da778b752b..75b4bbd3dd6b 100644 --- a/tests/FlickerTests/Rotation/src/com/android/server/wm/flicker/rotation/RotationTransition.kt +++ b/tests/FlickerTests/Rotation/src/com/android/server/wm/flicker/rotation/RotationTransition.kt @@ -17,10 +17,14 @@ package com.android.server.wm.flicker.rotation import android.platform.test.annotations.Presubmit +import android.tools.Position +import android.tools.datatypes.Rect import android.tools.device.apphelpers.StandardAppHelper import android.tools.flicker.legacy.FlickerBuilder import android.tools.flicker.legacy.LegacyFlickerTest import android.tools.flicker.subject.layers.LayerTraceEntrySubject +import android.tools.traces.Condition +import android.tools.traces.DeviceStateDump import android.tools.traces.component.ComponentNameMatcher import android.tools.traces.component.IComponentMatcher import android.tools.traces.surfaceflinger.Display @@ -36,7 +40,12 @@ abstract class RotationTransition(flicker: LegacyFlickerTest) : BaseTest(flicker override val transition: FlickerBuilder.() -> Unit = { setup { this.setRotation(flicker.scenario.startRotation) } teardown { testApp.exit(wmHelper) } - transitions { this.setRotation(flicker.scenario.endRotation) } + transitions { + this.setRotation(flicker.scenario.endRotation) + wmHelper.StateSyncBuilder() + .add(navBarInPosition(flicker.scenario.isGesturalNavigation)) + .waitForAndVerify() + } } /** {@inheritDoc} */ @@ -89,4 +98,37 @@ abstract class RotationTransition(flicker: LegacyFlickerTest) : BaseTest(flicker appLayerRotates_StartingPos() appLayerRotates_EndingPos() } + + private fun navBarInPosition(isGesturalNavigation: Boolean): Condition<DeviceStateDump> { + return Condition("navBarPosition") { dump -> + val display = + dump.layerState.displays.filterNot { it.isOff }.minByOrNull { it.id } + ?: error("There is no display!") + val displayArea = display.layerStackSpace + val navBarPosition = display.navBarPosition(isGesturalNavigation) + val navBarRegion = dump.layerState + .getLayerWithBuffer(ComponentNameMatcher.NAV_BAR) + ?.visibleRegion?.bounds ?: Rect.EMPTY + + when (navBarPosition) { + Position.TOP -> + navBarRegion.top == displayArea.top && + navBarRegion.left == displayArea.left && + navBarRegion.right == displayArea.right + Position.BOTTOM -> + navBarRegion.bottom == displayArea.bottom && + navBarRegion.left == displayArea.left && + navBarRegion.right == displayArea.right + Position.LEFT -> + navBarRegion.left == displayArea.left && + navBarRegion.top == displayArea.top && + navBarRegion.bottom == displayArea.bottom + Position.RIGHT -> + navBarRegion.right == displayArea.right && + navBarRegion.top == displayArea.top && + navBarRegion.bottom == displayArea.bottom + else -> error("Unknown position $navBarPosition") + } + } + } } |