Merge "Waiting for Launcher activity to stop when starting a Launchable into split screen" into main
diff --git a/tests/tapl/com/android/launcher3/tapl/Launchable.java b/tests/tapl/com/android/launcher3/tapl/Launchable.java
index fe927b3..b68fc4e 100644
--- a/tests/tapl/com/android/launcher3/tapl/Launchable.java
+++ b/tests/tapl/com/android/launcher3/tapl/Launchable.java
@@ -16,8 +16,6 @@
 
 package com.android.launcher3.tapl;
 
-import static android.view.accessibility.AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED;
-
 import static com.android.launcher3.testing.shared.TestProtocol.SPRING_LOADED_STATE_ORDINAL;
 
 import android.graphics.Point;
@@ -64,13 +62,7 @@
                         + mObject.getVisibleCenter() + " in "
                         + mLauncher.getVisibleBounds(mObject));
 
-                if (launcherStopsAfterLaunch()) {
-                    mLauncher.executeAndWaitForLauncherStop(
-                            () -> mLauncher.clickLauncherObject(mObject),
-                            "clicking the launchable");
-                } else {
-                    mLauncher.clickLauncherObject(mObject);
-                }
+                performClick();
 
                 try (LauncherInstrumentation.Closable c2 = mLauncher.addContextLayer("clicked")) {
                     expectActivityStartEvents();
@@ -80,6 +72,16 @@
         }
     }
 
+    private void performClick() {
+        if (launcherStopsAfterLaunch()) {
+            mLauncher.executeAndWaitForLauncherStop(
+                    () -> mLauncher.clickLauncherObject(mObject),
+                    "clicking the launchable");
+        } else {
+            mLauncher.clickLauncherObject(mObject);
+        }
+    }
+
     protected abstract void expectActivityStartEvents();
 
     protected abstract String launchableType();
@@ -97,12 +99,8 @@
             LauncherInstrumentation.log("Launchable.launch before click "
                     + mObject.getVisibleCenter() + " in " + mLauncher.getVisibleBounds(
                     mObject));
-            mLauncher.executeAndWaitForLauncherEvent(
-                    () -> mLauncher.clickLauncherObject(mObject),
-                    accessibilityEvent ->
-                            accessibilityEvent.getEventType() == TYPE_WINDOW_STATE_CHANGED,
-                    () -> "Unable to click object to launch split",
-                    "Click launcher object to launch split");
+
+            performClick();
 
             try (LauncherInstrumentation.Closable c2 = mLauncher.addContextLayer("clicked")) {
                 mLauncher.expectEvent(TestProtocol.SEQUENCE_MAIN, OverviewTask.SPLIT_START_EVENT);