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

Commit 407940a8 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Update task organizer state whenever task organizer was set" into rvc-dev am: ffe37623

Change-Id: I3e04979d029ce139cd70d8e3c56382a31a57b886
parents 54c6f235 ffe37623
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -4121,20 +4121,18 @@ class Task extends WindowContainer<WindowContainer> {
     * Any time any of these conditions are updated, the updating code should call
     * sendTaskAppeared.
     */
    private boolean taskAppearedReady() {
    boolean taskAppearedReady() {
        return mSurfaceControl != null && mTaskOrganizer != null && getHasBeenVisible();
    }

    private void sendTaskAppeared() {
        if (taskAppearedReady() && !mTaskAppearedSent) {
            mTaskAppearedSent = true;
        if (mTaskOrganizer != null) {
            mAtmService.mTaskOrganizerController.onTaskAppeared(mTaskOrganizer, this);
        }
    }

    private void sendTaskVanished() {
        if (mTaskOrganizer != null && mTaskAppearedSent) {
            mTaskAppearedSent = false;
        if (mTaskOrganizer != null) {
            mAtmService.mTaskOrganizerController.onTaskVanished(mTaskOrganizer, this);
        }
   }
+19 −9
Original line number Diff line number Diff line
@@ -106,20 +106,30 @@ class TaskOrganizerController extends ITaskOrganizerController.Stub {
        }

        void addTask(Task t) {
            if (t.mTaskAppearedSent) return;

            if (!mOrganizedTasks.contains(t)) {
                mOrganizedTasks.add(t);
            }
            if (t.taskAppearedReady()) {
                try {
                    t.mTaskAppearedSent = true;
                    mOrganizer.onTaskAppeared(t.getTaskInfo());
                } catch (Exception e) {
                    Slog.e(TAG, "Exception sending taskAppeared callback" + e);
                }
            }
        }

        void removeTask(Task t) {
            if (t.mTaskAppearedSent) {
                try {
                    t.mTaskAppearedSent = false;
                    mOrganizer.onTaskVanished(t.getTaskInfo());
                } catch (Exception e) {
                    Slog.e(TAG, "Exception sending taskVanished callback" + e);
                }
            }
            mOrganizedTasks.remove(t);
        }

+15 −0
Original line number Diff line number Diff line
@@ -191,6 +191,21 @@ public class TaskOrganizerTests extends WindowTestsBase {
        verify(organizer2).onTaskAppeared(any());
    }

    @Test
    public void testTaskNoDraw() throws RemoteException {
        final ActivityStack stack = createStack();
        final Task task = createTask(stack, false /* fakeDraw */);
        final ITaskOrganizer organizer = registerMockOrganizer();

        stack.setWindowingMode(WINDOWING_MODE_MULTI_WINDOW);
        verify(organizer, never()).onTaskAppeared(any());
        assertTrue(stack.isOrganized());

        mWm.mAtmService.mTaskOrganizerController.unregisterTaskOrganizer(organizer);
        verify(organizer, never()).onTaskVanished(any());
        assertFalse(stack.isOrganized());
    }

    @Test
    public void testClearOrganizer() throws RemoteException {
        final ActivityStack stack = createStack();