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

Commit 99ccc878 authored by wilsonshih's avatar wilsonshih
Browse files

Fix SystemUI crash from continues launch task with setLaunchRootTask

In StageCoordinator#addActivityOptions, there will use
KEY_LAUNCH_ROOT_TASK_TOKEN to specify the "parent task" of current
launch, but that isn't align the definition of "root task" after
single split root was introduced. So the method "getOrCreateRootTask"
also seems weird now.
WindowContainer#reparent will throw IllegalArgumentException when no
parent change.

Bug: 286028934
Test: create a split pair, continues drag chrome to the same stage.
Change-Id: Ic165eca258a8ef1f365b4f86f98211453243a465
parent a9025bc5
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -3310,9 +3310,14 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
            if (aOptions != null) {
                // Resolve the root task the task should be placed in now based on options
                // and reparent if needed.
                // TODO(b/229927851) For split-screen, setLaunchRootTask is no longer the "root"
                // task, consider to rename methods like "parentTask" instead of "rootTask".
                final Task targetRootTask =
                        getOrCreateRootTask(null, aOptions, task, onTop);
                if (targetRootTask != null && task.getRootTask() != targetRootTask) {
                // When launch with ActivityOptions#getLaunchRootTask, the "root task" just mean the
                // parent of current launch, not the "root task" in hierarchy.
                if (targetRootTask != null && task.getRootTask() != targetRootTask
                        && task.getParent() != targetRootTask) {
                    final int reparentMode = onTop
                            ? REPARENT_MOVE_ROOT_TASK_TO_FRONT : REPARENT_LEAVE_ROOT_TASK_IN_PLACE;
                    task.reparent(targetRootTask, onTop, reparentMode, ANIMATE, DEFER_RESUME,