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

Commit 5c4fcb2b authored by Daniel Chapin's avatar Daniel Chapin
Browse files

Revert "Deferring visibility updates while applying WCT"

This reverts commit be3d9a3b.

Reason for revert: Droidfood Weekly blocking bug: 194040982

Change-Id: If36f29b9275196d6042f0d110ad3cd6346c08931
parent be3d9a3b
Loading
Loading
Loading
Loading
+0 −14
Original line number Diff line number Diff line
@@ -347,12 +347,6 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks {
     */
    private int mVisibilityTransactionDepth;

    /**
     * Whether to the visibility updates that started from {@code RootWindowContainer} should be
     * deferred.
     */
    private boolean mDeferRootVisibilityUpdate;

    private ActivityMetricsLogger mActivityMetricsLogger;

    /** Check if placing task or activity on specified display is allowed. */
@@ -2269,14 +2263,6 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks {
        return mVisibilityTransactionDepth > 0;
    }

    void setDeferRootVisibilityUpdate(boolean deferUpdate) {
        mDeferRootVisibilityUpdate = deferUpdate;
    }

    boolean isRootVisibilityUpdateDeferred() {
        return mDeferRootVisibilityUpdate;
    }

    /**
     * Called when the state or visibility of an attached activity is changed.
     *
+1 −2
Original line number Diff line number Diff line
@@ -1973,8 +1973,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
     */
    void ensureActivitiesVisible(ActivityRecord starting, int configChanges,
            boolean preserveWindows, boolean notifyClients) {
        if (mTaskSupervisor.inActivityVisibilityUpdate()
                || mTaskSupervisor.isRootVisibilityUpdateDeferred()) {
        if (mTaskSupervisor.inActivityVisibilityUpdate()) {
            // Don't do recursive work.
            return;
        }
+2 −4
Original line number Diff line number Diff line
@@ -4500,11 +4500,9 @@ class Task extends TaskFragment {
            mAtmService.continueWindowLayout();
        }

        if (!mTaskSupervisor.isRootVisibilityUpdateDeferred()) {
        mRootWindowContainer.ensureActivitiesVisible(null, 0, PRESERVE_WINDOWS);
        mRootWindowContainer.resumeFocusedTasksTopActivities();
    }
    }

    void resumeNextFocusAfterReparent() {
        adjustFocusToNextFocusableTask("reparent", true /* allowFocusSelf */,
+0 −3
Original line number Diff line number Diff line
@@ -275,7 +275,6 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
        int effects = 0;
        ProtoLog.v(WM_DEBUG_WINDOW_ORGANIZER, "Apply window transaction, syncId=%d", syncId);
        mService.deferWindowLayout();
        mService.mTaskSupervisor.setDeferRootVisibilityUpdate(true /* deferUpdate */);
        try {
            if (transition != null) {
                // First check if we have a display rotation transition and if so, update it.
@@ -364,7 +363,6 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
                task.setMainWindowSizeChangeTransaction(sft);
            }
            if ((effects & TRANSACT_EFFECTS_LIFECYCLE) != 0) {
                mService.mTaskSupervisor.setDeferRootVisibilityUpdate(false /* deferUpdate */);
                // Already calls ensureActivityConfig
                mService.mRootWindowContainer.ensureActivitiesVisible(null, 0, PRESERVE_WINDOWS);
                mService.mRootWindowContainer.resumeFocusedTasksTopActivities();
@@ -386,7 +384,6 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
                mService.addWindowLayoutReasons(LAYOUT_REASON_CONFIG_CHANGED);
            }
        } finally {
            mService.mTaskSupervisor.setDeferRootVisibilityUpdate(false /* deferUpdate */);
            mService.continueWindowLayout();
        }
    }