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

Commit a6e7d9b8 authored by Chavi Weingarten's avatar Chavi Weingarten Committed by Automerger Merge Worker
Browse files

Merge "Added new arguments for screenshot request" into sc-dev am: 19998289 am: c03a7861

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

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Id4aa2ff348344942d77cf571628acf8f25414f0d
parents a1c2454e c03a7861
Loading
Loading
Loading
Loading
+30 −5
Original line number Original line Diff line number Diff line
@@ -750,18 +750,22 @@ public final class SurfaceControl implements Parcelable {
    private abstract static class CaptureArgs {
    private abstract static class CaptureArgs {
        private final int mPixelFormat;
        private final int mPixelFormat;
        private final Rect mSourceCrop = new Rect();
        private final Rect mSourceCrop = new Rect();
        private final float mFrameScale;
        private final float mFrameScaleX;
        private final float mFrameScaleY;
        private final boolean mCaptureSecureLayers;
        private final boolean mCaptureSecureLayers;
        private final boolean mAllowProtected;
        private final boolean mAllowProtected;
        private final long mUid;
        private final long mUid;
        private final boolean mGrayscale;


        private CaptureArgs(Builder<? extends Builder<?>> builder) {
        private CaptureArgs(Builder<? extends Builder<?>> builder) {
            mPixelFormat = builder.mPixelFormat;
            mPixelFormat = builder.mPixelFormat;
            mSourceCrop.set(builder.mSourceCrop);
            mSourceCrop.set(builder.mSourceCrop);
            mFrameScale = builder.mFrameScale;
            mFrameScaleX = builder.mFrameScaleX;
            mFrameScaleY = builder.mFrameScaleY;
            mCaptureSecureLayers = builder.mCaptureSecureLayers;
            mCaptureSecureLayers = builder.mCaptureSecureLayers;
            mAllowProtected = builder.mAllowProtected;
            mAllowProtected = builder.mAllowProtected;
            mUid = builder.mUid;
            mUid = builder.mUid;
            mGrayscale = builder.mGrayscale;
        }
        }


        /**
        /**
@@ -772,10 +776,12 @@ public final class SurfaceControl implements Parcelable {
        abstract static class Builder<T extends Builder<T>> {
        abstract static class Builder<T extends Builder<T>> {
            private int mPixelFormat = PixelFormat.RGBA_8888;
            private int mPixelFormat = PixelFormat.RGBA_8888;
            private final Rect mSourceCrop = new Rect();
            private final Rect mSourceCrop = new Rect();
            private float mFrameScale = 1;
            private float mFrameScaleX = 1;
            private float mFrameScaleY = 1;
            private boolean mCaptureSecureLayers;
            private boolean mCaptureSecureLayers;
            private boolean mAllowProtected;
            private boolean mAllowProtected;
            private long mUid = -1;
            private long mUid = -1;
            private boolean mGrayscale;


            /**
            /**
             * The desired pixel format of the returned buffer.
             * The desired pixel format of the returned buffer.
@@ -798,7 +804,18 @@ public final class SurfaceControl implements Parcelable {
             * The desired scale of the returned buffer. The raw screen will be scaled up/down.
             * The desired scale of the returned buffer. The raw screen will be scaled up/down.
             */
             */
            public T setFrameScale(float frameScale) {
            public T setFrameScale(float frameScale) {
                mFrameScale = frameScale;
                mFrameScaleX = frameScale;
                mFrameScaleY = frameScale;
                return getThis();
            }

            /**
             * The desired scale of the returned buffer, allowing separate values for x and y scale.
             * The raw screen will be scaled up/down.
             */
            public T setFrameScale(float frameScaleX, float frameScaleY) {
                mFrameScaleX = frameScaleX;
                mFrameScaleY = frameScaleY;
                return getThis();
                return getThis();
            }
            }


@@ -833,6 +850,14 @@ public final class SurfaceControl implements Parcelable {
                return getThis();
                return getThis();
            }
            }


            /**
             * Set whether the screenshot should use grayscale or not.
             */
            public T setGrayscale(boolean grayscale) {
                mGrayscale = grayscale;
                return getThis();
            }

            /**
            /**
             * Each sub class should return itself to allow the builder to chain properly
             * Each sub class should return itself to allow the builder to chain properly
             */
             */
@@ -929,7 +954,7 @@ public final class SurfaceControl implements Parcelable {
    /**
    /**
     * The arguments class used to make layer capture requests.
     * The arguments class used to make layer capture requests.
     *
     *
     * @see #nativeCaptureLayers(LayerCaptureArgs)
     * @see #nativeCaptureLayers(LayerCaptureArgs, ScreenCaptureListener)
     * @hide
     * @hide
     */
     */
    public static class LayerCaptureArgs extends CaptureArgs {
    public static class LayerCaptureArgs extends CaptureArgs {
+12 −4
Original line number Original line Diff line number Diff line
@@ -111,10 +111,12 @@ static struct {
static struct {
static struct {
    jfieldID pixelFormat;
    jfieldID pixelFormat;
    jfieldID sourceCrop;
    jfieldID sourceCrop;
    jfieldID frameScale;
    jfieldID frameScaleX;
    jfieldID frameScaleY;
    jfieldID captureSecureLayers;
    jfieldID captureSecureLayers;
    jfieldID allowProtected;
    jfieldID allowProtected;
    jfieldID uid;
    jfieldID uid;
    jfieldID grayscale;
} gCaptureArgsClassInfo;
} gCaptureArgsClassInfo;


static struct {
static struct {
@@ -381,13 +383,17 @@ static void getCaptureArgs(JNIEnv* env, jobject captureArgsObject, CaptureArgs&
    captureArgs.sourceCrop =
    captureArgs.sourceCrop =
            rectFromObj(env,
            rectFromObj(env,
                        env->GetObjectField(captureArgsObject, gCaptureArgsClassInfo.sourceCrop));
                        env->GetObjectField(captureArgsObject, gCaptureArgsClassInfo.sourceCrop));
    captureArgs.frameScale =
    captureArgs.frameScaleX =
            env->GetFloatField(captureArgsObject, gCaptureArgsClassInfo.frameScale);
            env->GetFloatField(captureArgsObject, gCaptureArgsClassInfo.frameScaleX);
    captureArgs.frameScaleY =
            env->GetFloatField(captureArgsObject, gCaptureArgsClassInfo.frameScaleY);
    captureArgs.captureSecureLayers =
    captureArgs.captureSecureLayers =
            env->GetBooleanField(captureArgsObject, gCaptureArgsClassInfo.captureSecureLayers);
            env->GetBooleanField(captureArgsObject, gCaptureArgsClassInfo.captureSecureLayers);
    captureArgs.allowProtected =
    captureArgs.allowProtected =
            env->GetBooleanField(captureArgsObject, gCaptureArgsClassInfo.allowProtected);
            env->GetBooleanField(captureArgsObject, gCaptureArgsClassInfo.allowProtected);
    captureArgs.uid = env->GetLongField(captureArgsObject, gCaptureArgsClassInfo.uid);
    captureArgs.uid = env->GetLongField(captureArgsObject, gCaptureArgsClassInfo.uid);
    captureArgs.grayscale =
            env->GetBooleanField(captureArgsObject, gCaptureArgsClassInfo.grayscale);
}
}


static DisplayCaptureArgs displayCaptureArgsFromObject(JNIEnv* env,
static DisplayCaptureArgs displayCaptureArgsFromObject(JNIEnv* env,
@@ -2034,12 +2040,14 @@ int register_android_view_SurfaceControl(JNIEnv* env)
    gCaptureArgsClassInfo.pixelFormat = GetFieldIDOrDie(env, captureArgsClazz, "mPixelFormat", "I");
    gCaptureArgsClassInfo.pixelFormat = GetFieldIDOrDie(env, captureArgsClazz, "mPixelFormat", "I");
    gCaptureArgsClassInfo.sourceCrop =
    gCaptureArgsClassInfo.sourceCrop =
            GetFieldIDOrDie(env, captureArgsClazz, "mSourceCrop", "Landroid/graphics/Rect;");
            GetFieldIDOrDie(env, captureArgsClazz, "mSourceCrop", "Landroid/graphics/Rect;");
    gCaptureArgsClassInfo.frameScale = GetFieldIDOrDie(env, captureArgsClazz, "mFrameScale", "F");
    gCaptureArgsClassInfo.frameScaleX = GetFieldIDOrDie(env, captureArgsClazz, "mFrameScaleX", "F");
    gCaptureArgsClassInfo.frameScaleY = GetFieldIDOrDie(env, captureArgsClazz, "mFrameScaleY", "F");
    gCaptureArgsClassInfo.captureSecureLayers =
    gCaptureArgsClassInfo.captureSecureLayers =
            GetFieldIDOrDie(env, captureArgsClazz, "mCaptureSecureLayers", "Z");
            GetFieldIDOrDie(env, captureArgsClazz, "mCaptureSecureLayers", "Z");
    gCaptureArgsClassInfo.allowProtected =
    gCaptureArgsClassInfo.allowProtected =
            GetFieldIDOrDie(env, captureArgsClazz, "mAllowProtected", "Z");
            GetFieldIDOrDie(env, captureArgsClazz, "mAllowProtected", "Z");
    gCaptureArgsClassInfo.uid = GetFieldIDOrDie(env, captureArgsClazz, "mUid", "J");
    gCaptureArgsClassInfo.uid = GetFieldIDOrDie(env, captureArgsClazz, "mUid", "J");
    gCaptureArgsClassInfo.grayscale = GetFieldIDOrDie(env, captureArgsClazz, "mGrayscale", "Z");


    jclass displayCaptureArgsClazz =
    jclass displayCaptureArgsClazz =
            FindClassOrDie(env, "android/view/SurfaceControl$DisplayCaptureArgs");
            FindClassOrDie(env, "android/view/SurfaceControl$DisplayCaptureArgs");