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

Commit 1fba83e7 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Filter excluded tasks from running task callbacks" into main

parents 192acab1 ab0fa4c0
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -381,7 +381,8 @@ public class RecentTasksController implements TaskStackListenerCallback,
    private void notifyRunningTaskAppeared(RunningTaskInfo taskInfo) {
        if (mListener == null
                || !shouldEnableRunningTasksForDesktopMode()
                || taskInfo.realActivity == null) {
                || taskInfo.realActivity == null
                || excludeTaskFromGeneratedList(taskInfo)) {
            return;
        }
        try {
@@ -397,7 +398,8 @@ public class RecentTasksController implements TaskStackListenerCallback,
    private void notifyRunningTaskChanged(RunningTaskInfo taskInfo) {
        if (mListener == null
                || !shouldEnableRunningTasksForDesktopMode()
                || taskInfo.realActivity == null) {
                || taskInfo.realActivity == null
                || excludeTaskFromGeneratedList(taskInfo)) {
            return;
        }
        try {
@@ -413,7 +415,8 @@ public class RecentTasksController implements TaskStackListenerCallback,
    private void notifyRunningTaskVanished(RunningTaskInfo taskInfo) {
        if (mListener == null
                || !shouldEnableRunningTasksForDesktopMode()
                || taskInfo.realActivity == null) {
                || taskInfo.realActivity == null
                || excludeTaskFromGeneratedList(taskInfo)) {
            return;
        }
        try {
@@ -430,7 +433,8 @@ public class RecentTasksController implements TaskStackListenerCallback,
        if (mListener == null
                || !DesktopModeFlags.ENABLE_TASK_STACK_OBSERVER_IN_SHELL.isTrue()
                || taskInfo.realActivity == null
                || enableShellTopTaskTracking()) {
                || enableShellTopTaskTracking()
                || excludeTaskFromGeneratedList(taskInfo)) {
            return;
        }
        try {
@@ -447,7 +451,8 @@ public class RecentTasksController implements TaskStackListenerCallback,
        if (mListener == null
                || !DesktopModeFlags.ENABLE_TASK_STACK_OBSERVER_IN_SHELL.isTrue()
                || taskInfo.realActivity == null
                || enableShellTopTaskTracking()) {
                || enableShellTopTaskTracking()
                || excludeTaskFromGeneratedList(taskInfo)) {
            return;
        }
        try {
+63 −1
Original line number Diff line number Diff line
@@ -107,6 +107,7 @@ import java.util.function.Consumer;
@RunWith(AndroidJUnit4.class)
@SmallTest
public class RecentTasksControllerTest extends ShellTestCase {
    private static final String SYSTEM_UI_PACKAGE_NAME = "com.android.systemui";

    @Mock
    private Context mContext;
@@ -579,6 +580,19 @@ public class RecentTasksControllerTest extends ShellTestCase {
        verify(mRecentTasksListener, never()).onRunningTaskAppeared(any());
    }

    @Test
    @EnableFlags({Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE,
            Flags.FLAG_ENABLE_DESKTOP_WINDOWING_TASKBAR_RUNNING_APPS})
    public void onTaskAdded_orDesktopWallpaperActivity_doesNotTriggerOnRunningTaskAppeared()
            throws Exception {
        RunningTaskInfo taskInfo = makeDesktopWallpaperActivityTaskInfo(/* taskId= */10);
        mRecentTasksControllerReal.registerRecentTasksListener(mRecentTasksListener);

        mRecentTasksControllerReal.onTaskAdded(taskInfo);

        verify(mRecentTasksListener, never()).onRunningTaskAppeared(any());
    }

    @Test
    @EnableFlags({Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE,
            Flags.FLAG_ENABLE_DESKTOP_WINDOWING_TASKBAR_RUNNING_APPS})
@@ -592,6 +606,19 @@ public class RecentTasksControllerTest extends ShellTestCase {
        verify(mRecentTasksListener).onRunningTaskChanged(taskInfo);
    }

    @Test
    @EnableFlags({Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE,
            Flags.FLAG_ENABLE_DESKTOP_WINDOWING_TASKBAR_RUNNING_APPS})
    public void taskInfoChanged_forDesktopWallpaperActivity_doesNotTriggerOnRunningTaskChanged()
            throws Exception {
        RunningTaskInfo taskInfo = makeDesktopWallpaperActivityTaskInfo(/* taskId= */10);
        mRecentTasksControllerReal.registerRecentTasksListener(mRecentTasksListener);

        mRecentTasksControllerReal.onTaskRunningInfoChanged(taskInfo);

        verify(mRecentTasksListener, never()).onRunningTaskChanged(any());
    }

    @Test
    @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE)
    @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_TASKBAR_RUNNING_APPS)
@@ -619,6 +646,20 @@ public class RecentTasksControllerTest extends ShellTestCase {
        verify(mRecentTasksListener).onRunningTaskVanished(taskInfo);
    }


    @Test
    @EnableFlags({Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE,
            Flags.FLAG_ENABLE_DESKTOP_WINDOWING_TASKBAR_RUNNING_APPS})
    public void onTaskRemoved_forDesktopWallpaperActivity_doesNotTriggerOnRunningTaskVanished()
            throws Exception {
        RunningTaskInfo taskInfo = makeDesktopWallpaperActivityTaskInfo(/* taskId= */10);
        mRecentTasksControllerReal.registerRecentTasksListener(mRecentTasksListener);

        mRecentTasksControllerReal.onTaskRemoved(taskInfo);

        verify(mRecentTasksListener, never()).onRunningTaskVanished(any());
    }

    @Test
    @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE)
    @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_TASKBAR_RUNNING_APPS)
@@ -658,6 +699,18 @@ public class RecentTasksControllerTest extends ShellTestCase {
        verify(mRecentTasksListener, never()).onTaskMovedToFront(any());
    }

    @Test
    @EnableFlags(Flags.FLAG_ENABLE_TASK_STACK_OBSERVER_IN_SHELL)
    public void onDesktopWallpaperActivityMovedToFront_doesNotTriggerOnTaskMovedToFront()
            throws Exception {
        RunningTaskInfo taskInfo = makeDesktopWallpaperActivityTaskInfo(/* taskId= */10);
        mRecentTasksControllerReal.registerRecentTasksListener(mRecentTasksListener);

        mRecentTasksControllerReal.onTaskMovedToFrontThroughTransition(taskInfo);

        verify(mRecentTasksListener, never()).onTaskMovedToFront(any());
    }

    @Test
    public void getNullSplitBoundsNonSplitTask() {
        SplitBounds sb = mRecentTasksController.getSplitBoundsForTaskId(3);
@@ -829,16 +882,25 @@ public class RecentTasksControllerTest extends ShellTestCase {
     * Helper to create a running task with a given task id.
     */
    private RunningTaskInfo makeRunningTaskInfo(int taskId) {
        return makeRunningTaskInfo(taskId, new ComponentName("com." + taskId, "Activity" + taskId));
    }

    private RunningTaskInfo makeRunningTaskInfo(int taskId, ComponentName intentComponent) {
        RunningTaskInfo info = new RunningTaskInfo();
        info.taskId = taskId;
        info.realActivity = new ComponentName("testPackage", "testClass");
        Intent intent = new Intent();
        intent.setComponent(new ComponentName("com." + taskId, "Activity" + taskId));
        intent.setComponent(intentComponent);
        info.baseIntent = intent;
        info.lastNonFullscreenBounds = new Rect();
        return info;
    }

    private RunningTaskInfo makeDesktopWallpaperActivityTaskInfo(int taskId) {
        return makeRunningTaskInfo(taskId, new ComponentName(SYSTEM_UI_PACKAGE_NAME,
                DesktopWallpaperActivity.class.getName()));
    }

    /**
     * Helper to set the raw task list on the controller.
     */