Merge "Use SysUI TAPL on notification tests" into main
diff --git a/tests/FlickerTests/Android.bp b/tests/FlickerTests/Android.bp
index 1e997b3..f44eacb 100644
--- a/tests/FlickerTests/Android.bp
+++ b/tests/FlickerTests/Android.bp
@@ -41,6 +41,7 @@
         "platform-test-annotations",
         "wm-flicker-common-app-helpers",
         "wm-shell-flicker-utils",
+        "systemui-tapl",
     ],
     data: [":FlickerTestApp"],
 }
diff --git a/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationWarmTest.kt b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationWarmTest.kt
index ad70757..da90c4f 100644
--- a/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationWarmTest.kt
+++ b/tests/FlickerTests/Notification/src/com/android/server/wm/flicker/notification/OpenAppFromNotificationWarmTest.kt
@@ -16,6 +16,8 @@
 
 package com.android.server.wm.flicker.notification
 
+import android.platform.systemui_tapl.controller.NotificationIdentity
+import android.platform.systemui_tapl.ui.Root
 import android.platform.test.annotations.Postsubmit
 import android.platform.test.annotations.Presubmit
 import android.platform.test.rule.DisableNotificationCooldownSettingRule
@@ -28,8 +30,6 @@
 import android.tools.traces.component.ComponentNameMatcher
 import android.view.WindowInsets
 import android.view.WindowManager
-import androidx.test.uiautomator.By
-import androidx.test.uiautomator.Until
 import com.android.server.wm.flicker.helpers.NotificationAppHelper
 import com.android.server.wm.flicker.helpers.setRotation
 import com.android.server.wm.flicker.navBarLayerIsVisibleAtEnd
@@ -87,8 +87,9 @@
             .withWindowSurfaceDisappeared(ComponentNameMatcher.NOTIFICATION_SHADE)
             .waitForAndVerify()
     }
+
     protected fun FlickerTestData.openAppFromNotification() {
-        doOpenAppAndWait(startY = 10, endY = 3 * device.displayHeight / 4, steps = 25)
+        doOpenAppAndWait()
     }
 
     protected fun FlickerTestData.openAppFromLockNotification() {
@@ -101,25 +102,27 @@
                 WindowInsets.Type.statusBars() or WindowInsets.Type.displayCutout()
             )
 
-        doOpenAppAndWait(startY = insets.top + 100, endY = device.displayHeight / 2, steps = 4)
+        doOpenAppAndWait()
     }
 
-    protected fun FlickerTestData.doOpenAppAndWait(startY: Int, endY: Int, steps: Int) {
-        // Swipe down to show the notification shade
-        val x = device.displayWidth / 2
-        device.swipe(x, startY, x, endY, steps)
-        device.waitForIdle(2000)
-        instrumentation.uiAutomation.syncInputTransactions()
+    protected fun FlickerTestData.doOpenAppAndWait() {
+        val shade = Root.get().openNotificationShade()
 
         // Launch the activity by clicking the notification
+        // Post notification and ensure that it's collapsed
         val notification =
-            device.wait(Until.findObject(By.text("Flicker Test Notification")), 2000L)
-        notification?.click() ?: error("Notification not found")
-        instrumentation.uiAutomation.syncInputTransactions()
+            shade.notificationStack.findNotification(
+                NotificationIdentity(
+                    type = NotificationIdentity.Type.BY_TEXT,
+                    text = "Flicker Test Notification",
+                )
+            )
 
+        notification.clickToApp()
         // Wait for the app to launch
         wmHelper.StateSyncBuilder().withFullScreenApp(testApp).waitForAndVerify()
     }
+
     @Presubmit @Test override fun appWindowBecomesVisible() = appWindowBecomesVisible_warmStart()
 
     @Presubmit @Test override fun appLayerBecomesVisible() = appLayerBecomesVisible_warmStart()