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

Commit 1dd669ae authored by Evan Rosky's avatar Evan Rosky
Browse files

Revert "Use queue to defer all task events"

This reverts commit 4c564ef0.

Reason for revert: suspected culprit for b/177551997

Change-Id: Idf7ae363faba73bf4c79185b4069201f7173e1ab
parent 4c564ef0
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -262,6 +262,12 @@ public class ShellTaskOrganizer extends TaskOrganizer {
        synchronized (mLock) {
            ProtoLog.v(WM_SHELL_TASK_ORG, "Task info changed taskId=%d", taskInfo.taskId);
            final TaskAppearedInfo data = mTasks.get(taskInfo.taskId);
            if (data == null) {
                // TODO(b/171749427): It means onTaskInfoChanged send before onTaskAppeared or
                //  after onTaskVanished, it should be fixed in controller side.
                return;
            }

            final TaskListener oldListener = getTaskListener(data.getTaskInfo());
            final TaskListener newListener = getTaskListener(taskInfo);
            mTasks.put(taskInfo.taskId, new TaskAppearedInfo(taskInfo, data.getLeash()));
+4 −4
Original line number Diff line number Diff line
@@ -41,12 +41,12 @@ public class PipUiEventLogger {
    }

    public void setTaskInfo(TaskInfo taskInfo) {
        if (taskInfo != null && taskInfo.topActivity != null) {
            mPackageName = taskInfo.topActivity.getPackageName();
            mPackageUid = getUid(mPackageName, taskInfo.userId);
        } else {
        if (taskInfo == null) {
            mPackageName = null;
            mPackageUid = INVALID_PACKAGE_UID;
        } else {
            mPackageName = taskInfo.topActivity.getPackageName();
            mPackageUid = getUid(mPackageName, taskInfo.userId);
        }
    }

+0 −1
Original line number Diff line number Diff line
@@ -1003,7 +1003,6 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump
    }

    private void updateThemeColors() {
        if (mScrimBehind == null) return;
        int background = Utils.getColorAttr(mScrimBehind.getContext(),
                android.R.attr.colorBackgroundFloating).getDefaultColor();
        int accent = Utils.getColorAccent(mScrimBehind.getContext()).getDefaultColor();
+3 −3
Original line number Diff line number Diff line
@@ -861,9 +861,6 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
                        "<<< CLOSE TRANSACTION performLayoutAndPlaceSurfaces");
            }
        }

        // Send any pending task-info changes that were queued-up during a layout deferment
        mWmService.mAtmService.mTaskOrganizerController.dispatchPendingEvents();
        mWmService.mAnimator.executeAfterPrepareSurfacesRunnables();

        checkAppTransitionReady(surfacePlacer);
@@ -1016,6 +1013,9 @@ class RootWindowContainer extends WindowContainer<DisplayContent>

        mWmService.scheduleAnimationLocked();

        // Send any pending task-info changes that were queued-up during a layout deferment
        mWmService.mAtmService.mTaskOrganizerController.dispatchPendingTaskInfoChanges();

        if (DEBUG_WINDOW_TRACE) Slog.e(TAG, "performSurfacePlacementInner exit");
    }

+7 −5
Original line number Diff line number Diff line
@@ -4983,6 +4983,7 @@ class Task extends WindowContainer<WindowContainer> {
            }
        } else {
            // No longer managed by any organizer.
            mTaskAppearedSent = false;
            setForceHidden(FLAG_FORCE_HIDDEN_FOR_TASK_ORG, false /* set */);
            if (mCreatedByOrganizer) {
                removeImmediately();
@@ -5007,6 +5008,11 @@ class Task extends WindowContainer<WindowContainer> {
     * @return {@code true} if task organizer changed.
     */
    boolean updateTaskOrganizerState(boolean forceUpdate, boolean skipTaskAppeared) {
        if (getSurfaceControl() == null) {
            // Can't call onTaskAppeared without a surfacecontrol, so defer this until after one
            // is created.
            return false;
        }
        if (!canBeOrganized()) {
            return setTaskOrganizer(null);
        }
@@ -5016,10 +5022,6 @@ class Task extends WindowContainer<WindowContainer> {
        final ITaskOrganizer organizer = controller.getTaskOrganizer(windowingMode);
        if (!forceUpdate && mTaskOrganizer == organizer) {
            return false;
        } else if (organizer != null && getSurfaceControl() == null) {
            // Can't call onTaskAppeared without a surfacecontrol, so defer this until after one
            // is created.
            return false;
        }
        return setTaskOrganizer(organizer, skipTaskAppeared);
    }
@@ -7669,7 +7671,7 @@ class Task extends WindowContainer<WindowContainer> {

    void dispatchTaskInfoChangedIfNeeded(boolean force) {
        if (isOrganized()) {
            mAtmService.mTaskOrganizerController.onTaskInfoChanged(this, force);
            mAtmService.mTaskOrganizerController.dispatchTaskInfoChanged(this, force);
        }
    }

Loading