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

Commit 83119e1b authored by Winson Chung's avatar Winson Chung
Browse files

Fix issue with provided options not being applied when launching split tasks

- Since SysUI/Shell is making the call to start the app pair tasks in a
  WCT, we also need to expand the restriction on who can freeze the
  list (to any caller with MANAGE_ACTIVITY_TASKS)

Bug: 206000278
Test: Quickswitch from app pair and back
Change-Id: I7f455fde87edfbcb7d856d842710c2a4542d7207
parent 394883c0
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -389,6 +389,7 @@ class StageCoordinator implements SplitLayout.SplitLayoutHandler,
        } else {
            ActivityOptions mainActivityOptions = ActivityOptions.fromBundle(mainOptions);
            mainActivityOptions.update(ActivityOptions.makeRemoteAnimation(wrappedAdapter));
            mainOptions = mainActivityOptions.toBundle();
        }

        sideOptions = sideOptions != null ? sideOptions : new Bundle();
+3 −1
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.server.wm;
import static android.Manifest.permission.ACTIVITY_EMBEDDING;
import static android.Manifest.permission.CAMERA;
import static android.Manifest.permission.INTERNAL_SYSTEM_WINDOW;
import static android.Manifest.permission.MANAGE_ACTIVITY_TASKS;
import static android.Manifest.permission.START_ANY_ACTIVITY;
import static android.app.ActivityManager.LOCK_TASK_MODE_LOCKED;
import static android.app.ActivityManager.START_DELIVERED_TO_TOP;
@@ -2506,7 +2507,8 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks {
                activityType = activityOptions.getLaunchActivityType();
                final int windowingMode = activityOptions.getLaunchWindowingMode();
                if (activityOptions.freezeRecentTasksReordering()
                        && mRecentTasks.isCallerRecents(callingUid)) {
                        && mService.checkPermission(MANAGE_ACTIVITY_TASKS, callingPid, callingUid)
                                == PERMISSION_GRANTED) {
                    mRecentTasks.setFreezeTaskListReordering();
                }
                if (windowingMode == WINDOWING_MODE_SPLIT_SCREEN_PRIMARY