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

Commit 8bd88f88 authored by Hongwei Wang's avatar Hongwei Wang
Browse files

Allow resource override on max number of actions in PiP

Moved the query of max number of pip actions from
ActivityTaskManagerService to ActivityTaskManager.

Note that TaskInfo#pictureInPictureParams is exposed via
TaskInfo#getPictureInPictureParams (annotated as @TestApi).

Bug: 168800594
Test: atest PinnedStackTests#testMaxNumberOfActions \
            PinnedStackTests#testFillMaxAllowedActions \
            PinnedStackTests#testRejectExceededActions
Change-Id: Ibcf2302e3ec87909543a1d6da0b64fd4565a061c
parent bae149c2
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -131,6 +131,7 @@ package android.app {
  public class ActivityTaskManager {
    method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public void clearLaunchParamsForPackages(java.util.List<java.lang.String>);
    method public static boolean currentUiModeSupportsErrorDialogs(@NonNull android.content.Context);
    method public static int getMaxNumPictureInPictureActions(@NonNull android.content.Context);
    method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public void moveTaskToRootTask(int, int, boolean);
    method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public boolean moveTopActivityToPinnedRootTask(int, @NonNull android.graphics.Rect);
    method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public void removeRootTasksInWindowingModes(@NonNull int[]);
@@ -286,6 +287,7 @@ package android.app {

  public class TaskInfo {
    method @NonNull public android.content.res.Configuration getConfiguration();
    method @Nullable public android.app.PictureInPictureParams getPictureInPictureParams();
    method @NonNull public android.window.WindowContainerToken getToken();
  }

+1 −5
Original line number Diff line number Diff line
@@ -2883,11 +2883,7 @@ public class Activity extends ContextThemeWrapper
     * but will always be at least three.
     */
    public int getMaxNumPictureInPictureActions() {
        try {
            return ActivityTaskManager.getService().getMaxNumPictureInPictureActions(mToken);
        } catch (RemoteException e) {
            return 0;
        }
        return ActivityTaskManager.getMaxNumPictureInPictureActions(this);
    }

    /**
+6 −0
Original line number Diff line number Diff line
@@ -437,6 +437,12 @@ public class ActivityTaskManager {
        return currentUiModeSupportsErrorDialogs(config);
    }

    /** @return max allowed number of actions in picture-in-picture mode. */
    public static int getMaxNumPictureInPictureActions(@NonNull Context context) {
        return context.getResources().getInteger(
                com.android.internal.R.integer.config_pictureInPictureMaxNumberOfActions);
    }

    /**
     * Information you can retrieve about a root task in the system.
     * @hide
+0 −1
Original line number Diff line number Diff line
@@ -303,7 +303,6 @@ interface IActivityTaskManager {
    boolean enterPictureInPictureMode(in IBinder token, in PictureInPictureParams params);
    void setPictureInPictureParams(in IBinder token, in PictureInPictureParams params);
    void requestPictureInPictureMode(in IBinder token);
    int getMaxNumPictureInPictureActions(in IBinder token);
    IBinder getUriPermissionOwnerForActivity(in IBinder activityToken);

    /**
+7 −0
Original line number Diff line number Diff line
@@ -240,6 +240,13 @@ public class TaskInfo {
        return configuration;
    }

    /** @hide */
    @Nullable
    @TestApi
    public PictureInPictureParams getPictureInPictureParams() {
        return pictureInPictureParams;
    }

    /** @hide */
    public void addLaunchCookie(IBinder cookie) {
        if (cookie == null || launchCookies.contains(cookie)) return;
Loading