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

Commit 7abf284b 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...

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

Change-Id: Ie47c2c6a123959b81fca8f2dac88772bbbbf4dce
parents 1c52bbae 407940a8
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();