Fix locating media buttons in Pip menu on TVs

Bug: 168113354
Test: atest CtsSystemUiTestCases:BasicPipTests
Test: atest CtsSystemUiTestCases:CustomPipActionsTests
Change-Id: Ib242245620232502a6b460ac558565ff092e35cc
diff --git a/tests/tests/systemui/common/src/android/systemui/tv/cts/TestEntities.kt b/tests/tests/systemui/common/src/android/systemui/tv/cts/TestEntities.kt
index 37b72a6..1512ffb 100644
--- a/tests/tests/systemui/common/src/android/systemui/tv/cts/TestEntities.kt
+++ b/tests/tests/systemui/common/src/android/systemui/tv/cts/TestEntities.kt
@@ -110,9 +110,9 @@
     const val WM_SHELL_PACKAGE = "com.android.wm.shell"
 
     const val STRING_PIP_MENU_BOUNDS = "pip_menu_bounds"
+    const val STRING_PIP_PAUSE = "pip_pause"
 
     const val ID_PIP_MENU_CLOSE_BUTTON = "$SYSTEM_UI_PACKAGE:id/close_button"
     const val ID_PIP_MENU_FULLSCREEN_BUTTON = "$SYSTEM_UI_PACKAGE:id/full_button"
-    const val ID_PIP_MENU_PLAY_PAUSE_BUTTON = "$SYSTEM_UI_PACKAGE:id/play_pause_button"
     const val ID_PIP_MENU_CUSTOM_BUTTON = "$SYSTEM_UI_PACKAGE:id/button"
 }
\ No newline at end of file
diff --git a/tests/tests/systemui/src/android/systemui/cts/tv/BasicPipTests.kt b/tests/tests/systemui/src/android/systemui/cts/tv/BasicPipTests.kt
index 1817ff5..c2d0bc6 100644
--- a/tests/tests/systemui/src/android/systemui/cts/tv/BasicPipTests.kt
+++ b/tests/tests/systemui/src/android/systemui/cts/tv/BasicPipTests.kt
@@ -44,11 +44,11 @@
 import android.systemui.tv.cts.PipMenu
 import android.systemui.tv.cts.ResourceNames.ID_PIP_MENU_CLOSE_BUTTON
 import android.systemui.tv.cts.ResourceNames.ID_PIP_MENU_FULLSCREEN_BUTTON
-import android.systemui.tv.cts.ResourceNames.ID_PIP_MENU_PLAY_PAUSE_BUTTON
 import android.util.Size
 import android.view.Gravity
 import android.view.KeyEvent
 import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.uiautomator.Until
 import com.android.compatibility.common.util.SystemUtil
 import com.android.compatibility.common.util.ThrowingSupplier
 import org.junit.After
@@ -263,7 +263,8 @@
         assertPipMenuOpen()
 
         // the media control button has to be present in the pip menu
-        locateByResourceName(ID_PIP_MENU_PLAY_PAUSE_BUTTON)
+        uiDevice.wait(Until.findObject(menuMediaButtonSelector), defaultTimeout)
+                ?: error("Could not find media action buttons")
     }
 
     /** Open an app's pip menu then press back and ensure the app is back in pip. */
diff --git a/tests/tests/systemui/src/android/systemui/cts/tv/CustomPipActionsTests.kt b/tests/tests/systemui/src/android/systemui/cts/tv/CustomPipActionsTests.kt
index 576a2ac..660eab7 100644
--- a/tests/tests/systemui/src/android/systemui/cts/tv/CustomPipActionsTests.kt
+++ b/tests/tests/systemui/src/android/systemui/cts/tv/CustomPipActionsTests.kt
@@ -36,7 +36,6 @@
 import android.systemui.tv.cts.ResourceNames.ID_PIP_MENU_CLOSE_BUTTON
 import android.systemui.tv.cts.ResourceNames.ID_PIP_MENU_CUSTOM_BUTTON
 import android.systemui.tv.cts.ResourceNames.ID_PIP_MENU_FULLSCREEN_BUTTON
-import android.systemui.tv.cts.ResourceNames.ID_PIP_MENU_PLAY_PAUSE_BUTTON
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.uiautomator.By
 import androidx.test.uiautomator.UiObject2
@@ -162,14 +161,14 @@
     /** Find the pip media controls or throw. */
     private fun assertMediaControlsPresent() {
         assertTrue("Media buttons must be shown!") {
-            uiDevice.wait(Until.hasObject(By.res(ID_PIP_MENU_PLAY_PAUSE_BUTTON)), defaultTimeout)
+            uiDevice.wait(Until.hasObject(menuMediaButtonSelector), defaultTimeout)
         }
     }
 
     /** Throw if pip media controls are present. */
     private fun assertMediaControlsGone() {
         assertTrue("No media buttons must be shown!") {
-            uiDevice.wait(Until.gone(By.res(ID_PIP_MENU_PLAY_PAUSE_BUTTON)), defaultTimeout)
+            uiDevice.wait(Until.gone(menuMediaButtonSelector), defaultTimeout)
         }
     }
 
diff --git a/tests/tests/systemui/src/android/systemui/cts/tv/PipTestBase.kt b/tests/tests/systemui/src/android/systemui/cts/tv/PipTestBase.kt
index 6230451..8afbb7c 100644
--- a/tests/tests/systemui/src/android/systemui/cts/tv/PipTestBase.kt
+++ b/tests/tests/systemui/src/android/systemui/cts/tv/PipTestBase.kt
@@ -27,11 +27,13 @@
 import android.systemui.tv.cts.Components
 import android.systemui.tv.cts.Components.activityName
 import android.systemui.tv.cts.ResourceNames.STRING_PIP_MENU_BOUNDS
+import android.systemui.tv.cts.ResourceNames.STRING_PIP_PAUSE
 import android.systemui.tv.cts.ResourceNames.SYSTEM_UI_PACKAGE
 import android.util.DisplayMetrics
 import android.util.TypedValue
 import android.view.WindowManager
 import androidx.test.uiautomator.By
+import androidx.test.uiautomator.BySelector
 import androidx.test.uiautomator.UiDevice
 import androidx.test.uiautomator.UiObject2
 import androidx.test.uiautomator.Until
@@ -61,6 +63,10 @@
             ?: error("Could not find the pip_menu_bounds resource!")
     }
 
+    protected val menuMediaButtonSelector: BySelector = By.desc(systemuiResources.run {
+        getString(getIdentifier(STRING_PIP_PAUSE, "string", SYSTEM_UI_PACKAGE))
+    })
+
     @Before
     override fun setUp() {
         super.setUp()