Ensure dismiss button within closePipWindow

This is to comply with ag/15351291 that the dismiss button is only
available after the tap-to-reveal PiP menu animation is completed.

Bug: 176822698
Test: atest WMShellFlickerTests:ExitPipWithDismissButtonTest
Change-Id: Iae0eae56b0fb358e3d39454de59c8ba64e65ee7b
This commit is contained in:
Hongwei Wang
2021-08-30 12:26:09 -07:00
parent b38ce845a2
commit aa92126aa8

View File

@@ -129,7 +129,7 @@ class PipAppHelper(instrumentation: Instrumentation) : BaseAppHelper(
}
/**
* Expands the pip window and dismisses it by clicking on the X button.
* Taps the pip window and dismisses it by clicking on the X button.
*/
fun closePipWindow(wmHelper: WindowManagerStateHelper) {
if (isTelevision) {
@@ -137,9 +137,12 @@ class PipAppHelper(instrumentation: Instrumentation) : BaseAppHelper(
} else {
val windowRect = getWindowRect(wmHelper)
uiDevice.click(windowRect.centerX(), windowRect.centerY())
val exitPipObject = uiDevice.findObject(By.res(SYSTEMUI_PACKAGE, "dismiss"))
// search and interact with the dismiss button
val dismissSelector = By.res(SYSTEMUI_PACKAGE, "dismiss")
uiDevice.wait(Until.hasObject(dismissSelector), FIND_TIMEOUT)
val dismissPipObject = uiDevice.findObject(dismissSelector)
?: error("PIP window dismiss button not found")
val dismissButtonBounds = exitPipObject.visibleBounds
val dismissButtonBounds = dismissPipObject.visibleBounds
uiDevice.click(dismissButtonBounds.centerX(), dismissButtonBounds.centerY())
}