Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 07f468a6 authored by Jiaming Liu's avatar Jiaming Liu Committed by Android (Google) Code Review
Browse files

Merge "Report empty home TaskFragment as invisible" into main

parents cf02b22d 7914a69d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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;
            }

+17 −0
Original line number Diff line number Diff line
@@ -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());