diff options
| author | 2024-05-20 06:10:06 +0000 | |
|---|---|---|
| committer | 2024-05-20 06:10:06 +0000 | |
| commit | 07f468a6ec161513a6ec08bee017414995e5e212 (patch) | |
| tree | 7e50379d646d1ee377b315c3c10c6623b440b98a | |
| parent | cf02b22dadf24b6f6895211738d27fb2244bbd15 (diff) | |
| parent | 7914a69d5bfcaf168b6ec26df4a749bfa83b1d39 (diff) | |
Merge "Report empty home TaskFragment as invisible" into main
| -rw-r--r-- | services/core/java/com/android/server/wm/TaskFragment.java | 2 | ||||
| -rw-r--r-- | services/tests/wmtests/src/com/android/server/wm/TaskFragmentTest.java | 17 |
2 files changed, 18 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/TaskFragment.java b/services/core/java/com/android/server/wm/TaskFragment.java index 26e4eaaedfe2..a3f15038865c 100644 --- a/services/core/java/com/android/server/wm/TaskFragment.java +++ b/services/core/java/com/android/server/wm/TaskFragment.java @@ -1241,7 +1241,7 @@ class TaskFragment extends WindowContainer<WindowContainer> { // have any running activities, not starting one and not home stack. shouldBeVisible = hasRunningActivities || (starting != null && starting.isDescendantOf(this)) - || isActivityTypeHome(); + || (isActivityTypeHome() && !isEmbedded()); break; } diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskFragmentTest.java b/services/tests/wmtests/src/com/android/server/wm/TaskFragmentTest.java index a90a158e0c2a..d57a7e61ad63 100644 --- a/services/tests/wmtests/src/com/android/server/wm/TaskFragmentTest.java +++ b/services/tests/wmtests/src/com/android/server/wm/TaskFragmentTest.java @@ -18,6 +18,7 @@ package com.android.server.wm; import static android.Manifest.permission.EMBED_ANY_APP_IN_UNTRUSTED_MODE; import static android.Manifest.permission.MANAGE_ACTIVITY_TASKS; +import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME; import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.app.WindowConfiguration.WINDOWING_MODE_MULTI_WINDOW; @@ -961,6 +962,22 @@ public class TaskFragmentTest extends WindowTestsBase { assertEquals(appLeftTop, task.getDisplayContent().mFocusedApp); } + @Test + public void testShouldBeVisible_invisibleForEmptyTaskFragment() { + final Task task = new TaskBuilder(mSupervisor).setCreateActivity(true) + .setWindowingMode(WINDOWING_MODE_FULLSCREEN).build(); + final TaskFragment taskFragment = new TaskFragmentBuilder(mAtm) + .setParentTask(task) + .build(); + + // Empty taskFragment should be invisible + assertFalse(taskFragment.shouldBeVisible(null)); + + // Should be invisible even if it is ACTIVITY_TYPE_HOME. + when(taskFragment.getActivityType()).thenReturn(ACTIVITY_TYPE_HOME); + assertFalse(taskFragment.shouldBeVisible(null)); + } + private WindowState createAppWindow(ActivityRecord app, String name) { final WindowState win = createWindow(null, TYPE_BASE_APPLICATION, app, name, 0 /* ownerId */, false /* ownerCanAddInternalSystemWindow */, new TestIWindow()); |