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

Commit d853e47c 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 am: 7abf284b am: df03054b

Change-Id: I202ca983258e1403ac66ade9b2270c2d2dd91e47
parents 54cc333d df03054b
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();