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

Commit 22806b8d 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: I256cfb0b2af6a3872fbc8bb8c1945a76c666f6de
parents 2a38486b 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();