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

Commit 84a3834a authored by Winson Chung's avatar Winson Chung
Browse files

Adding API for apps to specify their aspect ratio when entering PIP.

Test: android.server.cts.ActivityManagerPinnedStackTests
Test: #testEnterPipAspectRatio
Test: #testEnterPipExtremeAspectRatios

Change-Id: I9efba942b9a6451dec07428fe1e428ef4a896867
parent f96789d3
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -3461,6 +3461,7 @@ package android.app {
    method public boolean dispatchTrackballEvent(android.view.MotionEvent);
    method public void dump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
    method public void enterPictureInPictureMode();
    method public void enterPictureInPictureMode(float);
    method public android.view.View findViewById(int);
    method public void finish();
    method public void finishActivity(int);
@@ -3632,6 +3633,7 @@ package android.app {
    method public void setIntent(android.content.Intent);
    method public final void setMediaController(android.media.session.MediaController);
    method public void setOverlayWithDecorCaptionEnabled(boolean);
    method public void setPictureInPictureAspectRatio(float);
    method public final deprecated void setProgress(int);
    method public final deprecated void setProgressBarIndeterminate(boolean);
    method public final deprecated void setProgressBarIndeterminateVisibility(boolean);
@@ -32078,10 +32080,10 @@ package android.provider {
    field public static final java.lang.String EXTRA_ERROR = "error";
    field public static final java.lang.String EXTRA_EXCLUDE_SELF = "android.provider.extra.EXCLUDE_SELF";
    field public static final java.lang.String EXTRA_INFO = "info";
    field public static final java.lang.String EXTRA_INITIAL_URI = "android.provider.extra.INITIAL_URI";
    field public static final java.lang.String EXTRA_LOADING = "loading";
    field public static final java.lang.String EXTRA_ORIENTATION = "android.provider.extra.ORIENTATION";
    field public static final java.lang.String EXTRA_PROMPT = "android.provider.extra.PROMPT";
    field public static final java.lang.String EXTRA_INITIAL_URI = "android.provider.extra.INITIAL_URI";
    field public static final java.lang.String PROVIDER_INTERFACE = "android.content.action.DOCUMENTS_PROVIDER";
  }
+3 −1
Original line number Diff line number Diff line
@@ -3577,6 +3577,7 @@ package android.app {
    method public boolean dispatchTrackballEvent(android.view.MotionEvent);
    method public void dump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
    method public void enterPictureInPictureMode();
    method public void enterPictureInPictureMode(float);
    method public android.view.View findViewById(int);
    method public void finish();
    method public void finishActivity(int);
@@ -3750,6 +3751,7 @@ package android.app {
    method public void setIntent(android.content.Intent);
    method public final void setMediaController(android.media.session.MediaController);
    method public void setOverlayWithDecorCaptionEnabled(boolean);
    method public void setPictureInPictureAspectRatio(float);
    method public final deprecated void setProgress(int);
    method public final deprecated void setProgressBarIndeterminate(boolean);
    method public final deprecated void setProgressBarIndeterminateVisibility(boolean);
@@ -34741,10 +34743,10 @@ package android.provider {
    field public static final java.lang.String EXTRA_ERROR = "error";
    field public static final java.lang.String EXTRA_EXCLUDE_SELF = "android.provider.extra.EXCLUDE_SELF";
    field public static final java.lang.String EXTRA_INFO = "info";
    field public static final java.lang.String EXTRA_INITIAL_URI = "android.provider.extra.INITIAL_URI";
    field public static final java.lang.String EXTRA_LOADING = "loading";
    field public static final java.lang.String EXTRA_ORIENTATION = "android.provider.extra.ORIENTATION";
    field public static final java.lang.String EXTRA_PROMPT = "android.provider.extra.PROMPT";
    field public static final java.lang.String EXTRA_INITIAL_URI = "android.provider.extra.INITIAL_URI";
    field public static final java.lang.String PROVIDER_INTERFACE = "android.content.action.DOCUMENTS_PROVIDER";
  }
+3 −1
Original line number Diff line number Diff line
@@ -3463,6 +3463,7 @@ package android.app {
    method public boolean dispatchTrackballEvent(android.view.MotionEvent);
    method public void dump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]);
    method public void enterPictureInPictureMode();
    method public void enterPictureInPictureMode(float);
    method public android.view.View findViewById(int);
    method public void finish();
    method public void finishActivity(int);
@@ -3634,6 +3635,7 @@ package android.app {
    method public void setIntent(android.content.Intent);
    method public final void setMediaController(android.media.session.MediaController);
    method public void setOverlayWithDecorCaptionEnabled(boolean);
    method public void setPictureInPictureAspectRatio(float);
    method public final deprecated void setProgress(int);
    method public final deprecated void setProgressBarIndeterminate(boolean);
    method public final deprecated void setProgressBarIndeterminateVisibility(boolean);
@@ -32164,10 +32166,10 @@ package android.provider {
    field public static final java.lang.String EXTRA_ERROR = "error";
    field public static final java.lang.String EXTRA_EXCLUDE_SELF = "android.provider.extra.EXCLUDE_SELF";
    field public static final java.lang.String EXTRA_INFO = "info";
    field public static final java.lang.String EXTRA_INITIAL_URI = "android.provider.extra.INITIAL_URI";
    field public static final java.lang.String EXTRA_LOADING = "loading";
    field public static final java.lang.String EXTRA_ORIENTATION = "android.provider.extra.ORIENTATION";
    field public static final java.lang.String EXTRA_PROMPT = "android.provider.extra.PROMPT";
    field public static final java.lang.String EXTRA_INITIAL_URI = "android.provider.extra.INITIAL_URI";
    field public static final java.lang.String PROVIDER_INTERFACE = "android.content.action.DOCUMENTS_PROVIDER";
  }
+26 −0
Original line number Diff line number Diff line
@@ -1928,6 +1928,32 @@ public class Activity extends ContextThemeWrapper
        }
    }

    /**
     * Puts the activity in picture-in-picture mode with a given aspect ratio.
     * @see android.R.attr#supportsPictureInPicture
     *
     * @param aspectRatio the new aspect ratio of the picture-in-picture.
     */
    public void enterPictureInPictureMode(float aspectRatio) {
        try {
            ActivityManagerNative.getDefault().enterPictureInPictureModeWithAspectRatio(mToken,
                    aspectRatio);
        } catch (RemoteException e) {
        }
    }

    /**
     * Updates the aspect ratio of the current picture-in-picture activity.
     *
     * @param aspectRatio the new aspect ratio of the picture-in-picture.
     */
    public void setPictureInPictureAspectRatio(float aspectRatio) {
        try {
            ActivityManagerNative.getDefault().setPictureInPictureAspectRatio(mToken, aspectRatio);
        } catch (RemoteException e) {
        }
    }

    /**
     * Called by the system when the device configuration changes while your
     * activity is running.  Note that this will <em>only</em> be called if
+3 −1
Original line number Diff line number Diff line
@@ -562,6 +562,8 @@ interface IActivityManager {
    boolean updateDisplayOverrideConfiguration(in Configuration values, int displayId) = 401;
    void unregisterTaskStackListener(ITaskStackListener listener) = 402;
    void moveStackToDisplay(int stackId, int displayId) = 403;
    void enterPictureInPictureModeWithAspectRatio(in IBinder token, float aspectRatio) = 404;
    void setPictureInPictureAspectRatio(in IBinder token, float aspectRatio) = 405;

    // Please keep these transaction codes the same -- they are also
    // sent by C++ code. when a new method is added, use the next available transaction id.
Loading