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

Commit c17e5fe6 authored by Pierre Barbier de Reuille's avatar Pierre Barbier de Reuille
Browse files

Notify launcher of freeform task visibility

Limit notification to freeform tasks. This will prevent extra calls into
Launcher.

Fix: 368601383
Flag: EXEMPT (Bug fix)
Test: atest ShellTaskOrganizerTests
Change-Id: Iaf4cde038883aca0e0652a6f8779b0d58ae75121
parent 3f1a426b
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -584,7 +584,8 @@ public class ShellTaskOrganizer extends TaskOrganizer {
            final boolean windowModeChanged =
                    data.getTaskInfo().getWindowingMode() != taskInfo.getWindowingMode();
            final boolean visibilityChanged = data.getTaskInfo().isVisible != taskInfo.isVisible;
            if (windowModeChanged || visibilityChanged) {
            if (windowModeChanged || (taskInfo.getWindowingMode() == WINDOWING_MODE_FREEFORM
                    && visibilityChanged)) {
                mRecentTasks.ifPresent(recentTasks ->
                        recentTasks.onTaskRunningInfoChanged(taskInfo));
            }
+13 −0
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.never;

import android.app.ActivityManager.RunningTaskInfo;
import android.app.TaskInfo;
@@ -598,6 +599,18 @@ public class ShellTaskOrganizerTests extends ShellTestCase {
        verify(mRecentTasksController).onTaskRunningInfoChanged(task2);
    }

    @Test
    public void testRecentTasks_visibilityChanges_notFreeForm_shouldNotNotifyTaskController() {
        RunningTaskInfo task1_visible = createTaskInfo(/* taskId= */ 1, WINDOWING_MODE_FULLSCREEN);
        mOrganizer.onTaskAppeared(task1_visible, /* leash= */ null);
        RunningTaskInfo task1_hidden = createTaskInfo(/* taskId= */ 1, WINDOWING_MODE_FULLSCREEN);
        task1_hidden.isVisible = false;

        mOrganizer.onTaskInfoChanged(task1_hidden);

        verify(mRecentTasksController, never()).onTaskRunningInfoChanged(task1_hidden);
    }

    @Test
    public void testRecentTasks_windowingModeChanges_shouldNotifyTaskController() {
        RunningTaskInfo task1 = createTaskInfo(/* taskId= */ 1, WINDOWING_MODE_FULLSCREEN);