Merge "Update enter split-screen flicker tests"
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/CommonAssertions.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/CommonAssertions.kt
index 7058cb8..5597990 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/CommonAssertions.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/CommonAssertions.kt
@@ -20,6 +20,7 @@
 import android.view.Surface
 import com.android.server.wm.flicker.FlickerTestParameter
 import com.android.server.wm.flicker.helpers.WindowUtils
+import com.android.server.wm.flicker.helpers.isShellTransitionsEnabled
 import com.android.server.wm.flicker.traces.layers.LayerTraceEntrySubject
 import com.android.server.wm.flicker.traces.layers.LayersTraceSubject
 import com.android.server.wm.traces.common.IComponentMatcher
@@ -99,15 +100,9 @@
     portraitPosTop: Boolean
 ) {
     assertLayers {
-        // TODO(b/242025948): Use SPLIT_SCREEN_DIVIDER_COMPONENT.or(component) for notContains
-        // and isInvisible when they are ready.
-        this.notContains(SPLIT_SCREEN_DIVIDER_COMPONENT)
+        this.notContains(SPLIT_SCREEN_DIVIDER_COMPONENT.or(component))
             .then()
-            .notContains(component, isOptional = true)
-            .then()
-            .isInvisible(SPLIT_SCREEN_DIVIDER_COMPONENT, isOptional = true)
-            .then()
-            .isInvisible(component, isOptional = true)
+            .isInvisible(SPLIT_SCREEN_DIVIDER_COMPONENT.or(component))
             .then()
             .splitAppLayerBoundsSnapToDivider(
                 component, landscapePosLeft, portraitPosTop, endRotation)
@@ -118,18 +113,25 @@
     component: IComponentMatcher
 ) {
     assertLayers {
-        // TODO(b/242025948): Use SPLIT_SCREEN_DIVIDER_COMPONENT.or(component) for notContains
-        // and isInvisible when they are ready.
-        this.notContains(SPLIT_SCREEN_DIVIDER_COMPONENT)
-            .then()
-            .notContains(component, isOptional = true)
-            .then()
-            .isInvisible(SPLIT_SCREEN_DIVIDER_COMPONENT, isOptional = true)
-            .then()
-            .isInvisible(component, isOptional = true)
-            .then()
-            // TODO(b/245472831): Verify the component should snap to divider.
-            .isVisible(component)
+        if (isShellTransitionsEnabled) {
+            this.notContains(SPLIT_SCREEN_DIVIDER_COMPONENT.or(component))
+                .then()
+                .isInvisible(SPLIT_SCREEN_DIVIDER_COMPONENT.or(component))
+                .then()
+                // TODO(b/245472831): Verify the component should snap to divider.
+                .isVisible(component)
+        } else {
+            this.notContains(SPLIT_SCREEN_DIVIDER_COMPONENT.or(component))
+                .then()
+                .isInvisible(SPLIT_SCREEN_DIVIDER_COMPONENT.or(component))
+                .then()
+                // TODO(b/245472831): Verify the component should snap to divider.
+                .isVisible(component)
+                .then()
+                .isInvisible(component, isOptional = true)
+                .then()
+                .isVisible(component)
+        }
     }
 }
 
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/EnterSplitScreenByDragFromAllApps.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/EnterSplitScreenByDragFromAllApps.kt
index 3cd7471..ea35b35 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/EnterSplitScreenByDragFromAllApps.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/EnterSplitScreenByDragFromAllApps.kt
@@ -104,7 +104,26 @@
 
     @Presubmit
     @Test
-    fun secondaryAppLayerBecomesVisible() = testSpec.layerBecomesVisible(secondaryApp)
+    fun secondaryAppLayerBecomesVisible() {
+        Assume.assumeFalse(isShellTransitionsEnabled)
+        testSpec.assertLayers {
+            this.isInvisible(secondaryApp)
+                .then()
+                .isVisible(secondaryApp)
+                .then()
+                .isInvisible(secondaryApp)
+                .then()
+                .isVisible(secondaryApp)
+        }
+    }
+
+    // TODO(b/245472831): Align to legacy transition after shell transition ready.
+    @Presubmit
+    @Test
+    fun secondaryAppLayerBecomesVisible_ShellTransit() {
+        Assume.assumeTrue(isShellTransitionsEnabled)
+        testSpec.layerBecomesVisible(secondaryApp)
+    }
 
     @Presubmit
     @Test
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/EnterSplitScreenByDragFromNotification.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/EnterSplitScreenByDragFromNotification.kt
index 7db55ad..45fc15d 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/EnterSplitScreenByDragFromNotification.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/EnterSplitScreenByDragFromNotification.kt
@@ -116,8 +116,26 @@
 
     @Presubmit
     @Test
-    fun secondaryAppLayerBecomesVisible() =
+    fun secondaryAppLayerBecomesVisible() {
+        Assume.assumeFalse(isShellTransitionsEnabled)
+        testSpec.assertLayers {
+            this.isInvisible(sendNotificationApp)
+                .then()
+                .isVisible(sendNotificationApp)
+                .then()
+                .isInvisible(sendNotificationApp)
+                .then()
+                .isVisible(sendNotificationApp)
+        }
+    }
+
+    // TODO(b/245472831): Align to legacy transition after shell transition ready.
+    @Presubmit
+    @Test
+    fun secondaryAppLayerBecomesVisible_ShellTransit() {
+        Assume.assumeTrue(isShellTransitionsEnabled)
         testSpec.layerBecomesVisible(sendNotificationApp)
+    }
 
     @Presubmit
     @Test
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/EnterSplitScreenByDragFromTaskbar.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/EnterSplitScreenByDragFromTaskbar.kt
index 8212412..edc10f4 100644
--- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/EnterSplitScreenByDragFromTaskbar.kt
+++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/splitscreen/EnterSplitScreenByDragFromTaskbar.kt
@@ -107,7 +107,26 @@
 
     @Presubmit
     @Test
-    fun secondaryAppLayerBecomesVisible() = testSpec.layerBecomesVisible(secondaryApp)
+    fun secondaryAppLayerBecomesVisible() {
+        Assume.assumeFalse(isShellTransitionsEnabled)
+        testSpec.assertLayers {
+            this.isInvisible(secondaryApp)
+                .then()
+                .isVisible(secondaryApp)
+                .then()
+                .isInvisible(secondaryApp)
+                .then()
+                .isVisible(secondaryApp)
+        }
+    }
+
+    // TODO(b/245472831): Align to legacy transition after shell transition ready.
+    @Presubmit
+    @Test
+    fun secondaryAppLayerBecomesVisible_ShellTransit() {
+        Assume.assumeTrue(isShellTransitionsEnabled)
+        testSpec.layerBecomesVisible(secondaryApp)
+    }
 
     @Presubmit
     @Test