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

Commit 8dac9bef authored by Pablo Gamito's avatar Pablo Gamito
Browse files

Make sure we wait for PiP to expand

Fixes: 249052100

Test: atest com.android.wm.shell.flicker.pip.ExpandPipOnDoubleClickTest
Change-Id: If1b1d70dee9bc996ac04340fa2ab1a6eec0ddf67
parent 4c7d5c9f
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import androidx.test.uiautomator.Until
import com.android.server.wm.flicker.testapp.ActivityOptions
import com.android.server.wm.traces.common.Rect
import com.android.server.wm.traces.common.WindowManagerConditionsFactory
import com.android.server.wm.traces.common.region.Region
import com.android.server.wm.traces.parser.toFlickerComponent
import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper

@@ -178,6 +179,20 @@ open class PipAppHelper(instrumentation: Instrumentation) : StandardAppHelper(
        wmHelper.StateSyncBuilder()
            .withAppTransitionIdle()
            .waitForAndVerify()
        waitForPipWindowToExpandFrom(wmHelper, Region.from(windowRect))
    }

    private fun waitForPipWindowToExpandFrom(
        wmHelper: WindowManagerStateHelper,
        windowRect: Region
    ) {
        wmHelper.StateSyncBuilder().add("pipWindowExpanded") {
            val pipAppWindow = it.wmState.visibleWindows.firstOrNull { window ->
                this.windowMatchesAnyOf(window)
            } ?: return@add false
            val pipRegion = pipAppWindow.frameRegion
            return@add pipRegion.coversMoreThan(windowRect)
        }.waitForAndVerify()
    }

    companion object {