Support waiting for an expected package to be launched
In addition to the window name, in the case were we don't know what the exact window that will be launched is but only the package (e.g. when we have trampolining task or activities).
Fixes: 267487691
Test: atest FlickerLibTest
Change-Id: I5546c9d2dddd328c592734880bf9a735a8a15dad
diff --git a/libraries/flicker/src/com/android/server/wm/flicker/helpers/StandardAppHelper.kt b/libraries/flicker/src/com/android/server/wm/flicker/helpers/StandardAppHelper.kt
index 19bb1a8..1896040 100644
--- a/libraries/flicker/src/com/android/server/wm/flicker/helpers/StandardAppHelper.kt
+++ b/libraries/flicker/src/com/android/server/wm/flicker/helpers/StandardAppHelper.kt
@@ -32,6 +32,7 @@
import com.android.server.wm.traces.common.DeviceStateDump
import com.android.server.wm.traces.common.WindowManagerConditionsFactory
import com.android.server.wm.traces.common.component.matchers.ComponentNameMatcher
+import com.android.server.wm.traces.common.component.matchers.IComponentMatcher
import com.android.server.wm.traces.common.component.matchers.IComponentNameMatcher
import com.android.server.wm.traces.common.windowmanager.WindowManagerState
import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper
@@ -173,14 +174,14 @@
@JvmOverloads
open fun launchViaIntent(
wmHelper: WindowManagerStateHelper,
- expectedWindowName: String = "",
+ launchedAppComponentMatcherOverride: IComponentMatcher? = null,
action: String? = null,
stringExtras: Map<String, String> = mapOf(),
waitConditions: Array<Condition<DeviceStateDump>> = emptyArray()
) =
launchViaIntentAndWaitShown(
wmHelper,
- expectedWindowName,
+ launchedAppComponentMatcherOverride,
action,
stringExtras,
waitConditions
@@ -192,27 +193,22 @@
*/
protected fun launchViaIntentAndWaitShown(
wmHelper: WindowManagerStateHelper,
- expectedWindowName: String = "",
+ launchedAppComponentMatcherOverride: IComponentMatcher? = null,
action: String? = null,
stringExtras: Map<String, String> = mapOf(),
waitConditions: Array<Condition<DeviceStateDump>> = emptyArray()
) {
launchAppViaIntent(action, stringExtras)
- doWaitShown(wmHelper, expectedWindowName, waitConditions)
+ doWaitShown(wmHelper, launchedAppComponentMatcherOverride, waitConditions)
}
private fun doWaitShown(
wmHelper: WindowManagerStateHelper,
- expectedWindowName: String = "",
+ launchedAppComponentMatcherOverride: IComponentMatcher? = null,
waitConditions: Array<Condition<DeviceStateDump>> = emptyArray()
) {
withPerfettoTrace("${this::class.simpleName}#doWaitShown") {
- val expectedWindow =
- if (expectedWindowName.isNotEmpty()) {
- ComponentNameMatcher("", expectedWindowName)
- } else {
- componentMatcher
- }
+ val expectedWindow = launchedAppComponentMatcherOverride ?: componentMatcher
val builder =
wmHelper
.StateSyncBuilder()