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

Commit 8300e3b0 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Fix black screen after moving top activity to another display" into sc-dev am: 4c080631

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15226381

Change-Id: Ie17e003aae8dd91770a2dc47b4a744db97703c3d
parents e6be16bd 4c080631
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -353,7 +353,7 @@ public class DisplayAreaOrganizerController extends IDisplayAreaOrganizerControl
        // Only update focus/visibility for the last one because there may be many root tasks are
        // reparented and the intermediate states are unnecessary.
        if (lastReparentedRootTask != null) {
            lastReparentedRootTask.postReparent();
            lastReparentedRootTask.resumeNextFocusAfterReparent();
        }
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -5683,7 +5683,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
        // Only update focus/visibility for the last one because there may be many root tasks are
        // reparented and the intermediate states are unnecessary.
        if (lastReparentedRootTask != null) {
            lastReparentedRootTask.postReparent();
            lastReparentedRootTask.resumeNextFocusAfterReparent();
        }
        releaseSelfIfNeeded();
        mDisplayPolicy.release();
+4 −1
Original line number Diff line number Diff line
@@ -66,7 +66,6 @@ import static com.android.server.wm.ActivityTaskSupervisor.ON_TOP;
import static com.android.server.wm.ActivityTaskSupervisor.PRESERVE_WINDOWS;
import static com.android.server.wm.ActivityTaskSupervisor.dumpHistoryList;
import static com.android.server.wm.ActivityTaskSupervisor.printThisActivity;
import static com.android.server.wm.RecentsAnimationController.REORDER_KEEP_IN_PLACE;
import static com.android.server.wm.RootWindowContainerProto.IS_HOME_RECENTS_COMPONENT;
import static com.android.server.wm.RootWindowContainerProto.KEYGUARD_CONTROLLER;
import static com.android.server.wm.RootWindowContainerProto.WINDOW_CONTAINER;
@@ -2077,6 +2076,10 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
                    + " to its current taskDisplayArea=" + taskDisplayArea);
        }
        rootTask.reparent(taskDisplayArea, onTop);

        // Resume focusable root task after reparenting to another display area.
        rootTask.resumeNextFocusAfterReparent();

        // TODO(multi-display): resize rootTasks properly if moved from split-screen.
    }

+1 −8
Original line number Diff line number Diff line
@@ -1464,12 +1464,6 @@ class Task extends WindowContainer<WindowContainer> {
        adjustBoundsForDisplayChangeIfNeeded(getDisplayContent());

        mRootWindowContainer.updateUIDsPresentOnDisplay();

        // Resume next focusable root task after reparenting to another display if we aren't
        // removing the prevous display.
        if (oldDisplay != null && oldDisplay.isRemoving()) {
            postReparent();
        }
    }

    void cleanUpActivityReferences(ActivityRecord r) {
@@ -5462,8 +5456,7 @@ class Task extends WindowContainer<WindowContainer> {
        mRootWindowContainer.resumeFocusedTasksTopActivities();
    }

    /** Resume next focusable root task after reparenting to another display. */
    void postReparent() {
    void resumeNextFocusAfterReparent() {
        adjustFocusToNextFocusableTask("reparent", true /* allowFocusSelf */,
                true /* moveDisplayToTop */);
        mRootWindowContainer.resumeFocusedTasksTopActivities();