Loading tests/FlickerTests/ActivityEmbedding/AndroidManifest.xml +3 −1 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ xmlns:tools="http://schemas.android.com/tools" package="com.android.server.wm.flicker"> <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="29"/> <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="35"/> <!-- Read and write traces from external storage --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> Loading @@ -46,6 +46,8 @@ <uses-permission android:name="android.permission.START_TASKS_FROM_RECENTS" /> <!-- Allow the test to connect to perfetto trace processor --> <uses-permission android:name="android.permission.INTERNET"/> <!-- Allow to query for the Launcher TestInfo on SDK 30+ --> <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" /> <!-- Allow the test to write directly to /sdcard/ and connect to trace processor --> <application android:requestLegacyExternalStorage="true" android:networkSecurityConfig="@xml/network_security_config" Loading tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/open/OpenTrampolineActivityTest.kt +1 −2 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import org.junit.runners.Parameterized * * To run this test: `atest FlickerTestsOther:OpenTrampolineActivityTest` */ @FlakyTest(bugId = 341209752) @RequiresDevice @RunWith(Parameterized::class) @Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class) Loading Loading @@ -168,7 +169,6 @@ class OpenTrampolineActivityTest(flicker: LegacyFlickerTest) : ActivityEmbedding } } @FlakyTest(bugId = 290736037) /** Main activity should go from fullscreen to being a split with secondary activity. */ @Test fun mainActivityLayerGoesFromFullscreenToSplit() { Loading Loading @@ -203,7 +203,6 @@ class OpenTrampolineActivityTest(flicker: LegacyFlickerTest) : ActivityEmbedding } } @FlakyTest(bugId = 288591571) @Test override fun visibleLayersShownMoreThanOneConsecutiveEntry() { super.visibleLayersShownMoreThanOneConsecutiveEntry() Loading tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/pip/SecondaryActivityEnterPipTest.kt +2 −1 Original line number Diff line number Diff line Loading @@ -205,7 +205,8 @@ class SecondaryActivityEnterPipTest(flicker: LegacyFlickerTest) : it.visibleRegion(ComponentNameMatcher.PIP_CONTENT_OVERLAY) val secondaryVisibleRegion = it.visibleRegion(ActivityEmbeddingAppHelper.SECONDARY_ACTIVITY_COMPONENT) overlayVisibleRegion.coversExactly(secondaryVisibleRegion.region) // TODO(b/340992001): replace coverAtLeast with coverExactly overlayVisibleRegion.coversAtLeast(secondaryVisibleRegion.region) } .then() .isInvisible(ComponentNameMatcher.PIP_CONTENT_OVERLAY) Loading tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/splitscreen/EnterSystemSplitTest.kt +8 −32 Original line number Diff line number Diff line Loading @@ -60,14 +60,16 @@ class EnterSystemSplitTest(flicker: LegacyFlickerTest) : ActivityEmbeddingTestBa testApp.launchViaIntent(wmHelper) testApp.launchSecondaryActivity(wmHelper) secondaryApp.launchViaIntent(wmHelper) startDisplayBounds = wmHelper.currentState.layerState.physicalDisplayBounds ?: error("Display not found") // Record the displayBounds before `goHome()` in case the launcher is fixed-portrait. tapl.goHome() wmHelper .StateSyncBuilder() .withAppTransitionIdle() .withHomeActivityVisible() .waitForAndVerify() startDisplayBounds = wmHelper.currentState.layerState.physicalDisplayBounds ?: error("Display not found") } transitions { SplitScreenUtils.enterSplit( Loading Loading @@ -138,10 +140,6 @@ class EnterSystemSplitTest(flicker: LegacyFlickerTest) : ActivityEmbeddingTestBa check { "ActivityEmbeddingSplitHeight" } .that(leftAELayerRegion.region.bounds.height()) .isEqual(rightAELayerRegion.region.bounds.height()) check { "SystemSplitHeight" } .that(rightAELayerRegion.region.bounds.height()) .isEqual(secondaryAppLayerRegion.region.bounds.height()) // TODO(b/292283182): Remove this special case handling. check { "ActivityEmbeddingSplitWidth" } .that( abs( Loading @@ -150,14 +148,6 @@ class EnterSystemSplitTest(flicker: LegacyFlickerTest) : ActivityEmbeddingTestBa ) ) .isLower(2) check { "SystemSplitWidth" } .that( abs( secondaryAppLayerRegion.region.bounds.width() - 2 * rightAELayerRegion.region.bounds.width() ) ) .isLower(2) } } Loading @@ -170,15 +160,9 @@ class EnterSystemSplitTest(flicker: LegacyFlickerTest) : ActivityEmbeddingTestBa visibleRegion(ActivityEmbeddingAppHelper.MAIN_ACTIVITY_COMPONENT) val rightAEWindowRegion = visibleRegion(ActivityEmbeddingAppHelper.SECONDARY_ACTIVITY_COMPONENT) // There's no window for the divider bar. val secondaryAppLayerRegion = visibleRegion(ActivityOptions.SplitScreen.Primary.COMPONENT.toFlickerComponent()) check { "ActivityEmbeddingSplitHeight" } .that(leftAEWindowRegion.region.bounds.height()) .isEqual(rightAEWindowRegion.region.bounds.height()) check { "SystemSplitHeight" } .that(rightAEWindowRegion.region.bounds.height()) .isEqual(secondaryAppLayerRegion.region.bounds.height()) check { "ActivityEmbeddingSplitWidth" } .that( abs( Loading @@ -187,14 +171,6 @@ class EnterSystemSplitTest(flicker: LegacyFlickerTest) : ActivityEmbeddingTestBa ) ) .isLower(2) check { "SystemSplitWidth" } .that( abs( secondaryAppLayerRegion.region.bounds.width() - 2 * rightAEWindowRegion.region.bounds.width() ) ) .isLower(2) } } Loading tests/FlickerTests/test-apps/flickerapp/res/layout/activity_embedding_main_layout.xml +56 −51 Original line number Diff line number Diff line Loading @@ -14,13 +14,17 @@ See the License for the specific language governing permissions and limitations under the License. --> <LinearLayout <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@android:color/holo_orange_light"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:id="@+id/launch_secondary_activity_button" android:layout_width="wrap_content" Loading Loading @@ -77,3 +81,4 @@ android:text="Launch Trampoline Activity" /> </LinearLayout> </ScrollView> Loading
tests/FlickerTests/ActivityEmbedding/AndroidManifest.xml +3 −1 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ xmlns:tools="http://schemas.android.com/tools" package="com.android.server.wm.flicker"> <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="29"/> <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="35"/> <!-- Read and write traces from external storage --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> Loading @@ -46,6 +46,8 @@ <uses-permission android:name="android.permission.START_TASKS_FROM_RECENTS" /> <!-- Allow the test to connect to perfetto trace processor --> <uses-permission android:name="android.permission.INTERNET"/> <!-- Allow to query for the Launcher TestInfo on SDK 30+ --> <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" /> <!-- Allow the test to write directly to /sdcard/ and connect to trace processor --> <application android:requestLegacyExternalStorage="true" android:networkSecurityConfig="@xml/network_security_config" Loading
tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/open/OpenTrampolineActivityTest.kt +1 −2 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import org.junit.runners.Parameterized * * To run this test: `atest FlickerTestsOther:OpenTrampolineActivityTest` */ @FlakyTest(bugId = 341209752) @RequiresDevice @RunWith(Parameterized::class) @Parameterized.UseParametersRunnerFactory(FlickerParametersRunnerFactory::class) Loading Loading @@ -168,7 +169,6 @@ class OpenTrampolineActivityTest(flicker: LegacyFlickerTest) : ActivityEmbedding } } @FlakyTest(bugId = 290736037) /** Main activity should go from fullscreen to being a split with secondary activity. */ @Test fun mainActivityLayerGoesFromFullscreenToSplit() { Loading Loading @@ -203,7 +203,6 @@ class OpenTrampolineActivityTest(flicker: LegacyFlickerTest) : ActivityEmbedding } } @FlakyTest(bugId = 288591571) @Test override fun visibleLayersShownMoreThanOneConsecutiveEntry() { super.visibleLayersShownMoreThanOneConsecutiveEntry() Loading
tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/pip/SecondaryActivityEnterPipTest.kt +2 −1 Original line number Diff line number Diff line Loading @@ -205,7 +205,8 @@ class SecondaryActivityEnterPipTest(flicker: LegacyFlickerTest) : it.visibleRegion(ComponentNameMatcher.PIP_CONTENT_OVERLAY) val secondaryVisibleRegion = it.visibleRegion(ActivityEmbeddingAppHelper.SECONDARY_ACTIVITY_COMPONENT) overlayVisibleRegion.coversExactly(secondaryVisibleRegion.region) // TODO(b/340992001): replace coverAtLeast with coverExactly overlayVisibleRegion.coversAtLeast(secondaryVisibleRegion.region) } .then() .isInvisible(ComponentNameMatcher.PIP_CONTENT_OVERLAY) Loading
tests/FlickerTests/ActivityEmbedding/src/com/android/server/wm/flicker/activityembedding/splitscreen/EnterSystemSplitTest.kt +8 −32 Original line number Diff line number Diff line Loading @@ -60,14 +60,16 @@ class EnterSystemSplitTest(flicker: LegacyFlickerTest) : ActivityEmbeddingTestBa testApp.launchViaIntent(wmHelper) testApp.launchSecondaryActivity(wmHelper) secondaryApp.launchViaIntent(wmHelper) startDisplayBounds = wmHelper.currentState.layerState.physicalDisplayBounds ?: error("Display not found") // Record the displayBounds before `goHome()` in case the launcher is fixed-portrait. tapl.goHome() wmHelper .StateSyncBuilder() .withAppTransitionIdle() .withHomeActivityVisible() .waitForAndVerify() startDisplayBounds = wmHelper.currentState.layerState.physicalDisplayBounds ?: error("Display not found") } transitions { SplitScreenUtils.enterSplit( Loading Loading @@ -138,10 +140,6 @@ class EnterSystemSplitTest(flicker: LegacyFlickerTest) : ActivityEmbeddingTestBa check { "ActivityEmbeddingSplitHeight" } .that(leftAELayerRegion.region.bounds.height()) .isEqual(rightAELayerRegion.region.bounds.height()) check { "SystemSplitHeight" } .that(rightAELayerRegion.region.bounds.height()) .isEqual(secondaryAppLayerRegion.region.bounds.height()) // TODO(b/292283182): Remove this special case handling. check { "ActivityEmbeddingSplitWidth" } .that( abs( Loading @@ -150,14 +148,6 @@ class EnterSystemSplitTest(flicker: LegacyFlickerTest) : ActivityEmbeddingTestBa ) ) .isLower(2) check { "SystemSplitWidth" } .that( abs( secondaryAppLayerRegion.region.bounds.width() - 2 * rightAELayerRegion.region.bounds.width() ) ) .isLower(2) } } Loading @@ -170,15 +160,9 @@ class EnterSystemSplitTest(flicker: LegacyFlickerTest) : ActivityEmbeddingTestBa visibleRegion(ActivityEmbeddingAppHelper.MAIN_ACTIVITY_COMPONENT) val rightAEWindowRegion = visibleRegion(ActivityEmbeddingAppHelper.SECONDARY_ACTIVITY_COMPONENT) // There's no window for the divider bar. val secondaryAppLayerRegion = visibleRegion(ActivityOptions.SplitScreen.Primary.COMPONENT.toFlickerComponent()) check { "ActivityEmbeddingSplitHeight" } .that(leftAEWindowRegion.region.bounds.height()) .isEqual(rightAEWindowRegion.region.bounds.height()) check { "SystemSplitHeight" } .that(rightAEWindowRegion.region.bounds.height()) .isEqual(secondaryAppLayerRegion.region.bounds.height()) check { "ActivityEmbeddingSplitWidth" } .that( abs( Loading @@ -187,14 +171,6 @@ class EnterSystemSplitTest(flicker: LegacyFlickerTest) : ActivityEmbeddingTestBa ) ) .isLower(2) check { "SystemSplitWidth" } .that( abs( secondaryAppLayerRegion.region.bounds.width() - 2 * rightAEWindowRegion.region.bounds.width() ) ) .isLower(2) } } Loading
tests/FlickerTests/test-apps/flickerapp/res/layout/activity_embedding_main_layout.xml +56 −51 Original line number Diff line number Diff line Loading @@ -14,13 +14,17 @@ See the License for the specific language governing permissions and limitations under the License. --> <LinearLayout <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@android:color/holo_orange_light"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:id="@+id/launch_secondary_activity_button" android:layout_width="wrap_content" Loading Loading @@ -77,3 +81,4 @@ android:text="Launch Trampoline Activity" /> </LinearLayout> </ScrollView>