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

Commit 5c5e55ea authored by Leon Scroggins's avatar Leon Scroggins Committed by Android (Google) Code Review
Browse files

Merge "Replace Outline#setConvexPath with Outline#setPath"

parents 88b313eb a49beaaa
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -14860,10 +14860,11 @@ package android.graphics {
    method public void offset(int, int);
    method public void set(@NonNull android.graphics.Outline);
    method public void setAlpha(@FloatRange(from=0.0, to=1.0) float);
    method public void setConvexPath(@NonNull android.graphics.Path);
    method @Deprecated public void setConvexPath(@NonNull android.graphics.Path);
    method public void setEmpty();
    method public void setOval(int, int, int, int);
    method public void setOval(@NonNull android.graphics.Rect);
    method public void setPath(@NonNull android.graphics.Path);
    method public void setRect(int, int, int, int);
    method public void setRect(@NonNull android.graphics.Rect);
    method public void setRoundRect(int, int, int, int, float);
+3 −3
Original line number Diff line number Diff line
@@ -151,11 +151,11 @@ static jboolean android_view_RenderNode_setOutlineRoundRect(CRITICAL_JNI_PARAMS_
    return true;
}

static jboolean android_view_RenderNode_setOutlineConvexPath(CRITICAL_JNI_PARAMS_COMMA jlong renderNodePtr,
static jboolean android_view_RenderNode_setOutlinePath(CRITICAL_JNI_PARAMS_COMMA jlong renderNodePtr,
        jlong outlinePathPtr, jfloat alpha) {
    RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
    SkPath* outlinePath = reinterpret_cast<SkPath*>(outlinePathPtr);
    renderNode->mutateStagingProperties().mutableOutline().setConvexPath(outlinePath, alpha);
    renderNode->mutateStagingProperties().mutableOutline().setPath(outlinePath, alpha);
    renderNode->setPropertyFieldsDirty(RenderNode::GENERIC);
    return true;
}
@@ -684,7 +684,7 @@ static const JNINativeMethod gMethods[] = {
    { "nSetProjectionReceiver","(JZ)Z",  (void*) android_view_RenderNode_setProjectionReceiver },

    { "nSetOutlineRoundRect",  "(JIIIIFF)Z", (void*) android_view_RenderNode_setOutlineRoundRect },
    { "nSetOutlineConvexPath", "(JJF)Z", (void*) android_view_RenderNode_setOutlineConvexPath },
    { "nSetOutlinePath",       "(JJF)Z", (void*) android_view_RenderNode_setOutlinePath },
    { "nSetOutlineEmpty",      "(J)Z",   (void*) android_view_RenderNode_setOutlineEmpty },
    { "nSetOutlineNone",       "(J)Z",   (void*) android_view_RenderNode_setOutlineNone },
    { "nHasShadow",            "(J)Z",   (void*) android_view_RenderNode_hasShadow },
+25 −13
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@ public final class Outline {
    /** @hide */
    public static final int MODE_ROUND_RECT = 1;
    /** @hide */
    public static final int MODE_CONVEX_PATH = 2;
    public static final int MODE_PATH = 2;

    /** @hide */
    @Retention(RetentionPolicy.SOURCE)
@@ -51,7 +51,7 @@ public final class Outline {
            value = {
                    MODE_EMPTY,
                    MODE_ROUND_RECT,
                    MODE_CONVEX_PATH,
                    MODE_PATH,
            })
    public @interface Mode {}

@@ -60,7 +60,7 @@ public final class Outline {
    public int mMode = MODE_EMPTY;

    /**
     * Only guaranteed to be non-null when mode == MODE_CONVEX_PATH
     * Only guaranteed to be non-null when mode == MODE_PATH
     *
     * @hide
     */
@@ -124,7 +124,7 @@ public final class Outline {
     * @see android.view.View#setClipToOutline(boolean)
     */
    public boolean canClip() {
        return mMode != MODE_CONVEX_PATH;
        return mMode != MODE_PATH;
    }

    /**
@@ -157,7 +157,7 @@ public final class Outline {
     */
    public void set(@NonNull Outline src) {
        mMode = src.mMode;
        if (src.mMode == MODE_CONVEX_PATH) {
        if (src.mMode == MODE_PATH) {
            if (mPath == null) {
                mPath = new Path();
            }
@@ -194,7 +194,7 @@ public final class Outline {
            return;
        }

        if (mMode == MODE_CONVEX_PATH) {
        if (mMode == MODE_PATH) {
            // rewind here to avoid thrashing the allocations, but could alternately clear ref
            mPath.rewind();
        }
@@ -213,7 +213,7 @@ public final class Outline {
    /**
     * Populates {@code outBounds} with the outline bounds, if set, and returns
     * {@code true}. If no outline bounds are set, or if a path has been set
     * via {@link #setConvexPath(Path)}, returns {@code false}.
     * via {@link #setPath(Path)}, returns {@code false}.
     *
     * @param outRect the rect to populate with the outline bounds, if set
     * @return {@code true} if {@code outBounds} was populated with outline
@@ -229,7 +229,7 @@ public final class Outline {

    /**
     * Returns the rounded rect radius, if set, or a value less than 0 if a path has
     * been set via {@link #setConvexPath(Path)}. A return value of {@code 0}
     * been set via {@link #setPath(Path)}. A return value of {@code 0}
     * indicates a non-rounded rect.
     *
     * @return the rounded rect radius, or value < 0
@@ -259,7 +259,7 @@ public final class Outline {
            mPath.rewind();
        }

        mMode = MODE_CONVEX_PATH;
        mMode = MODE_PATH;
        mPath.addOval(left, top, right, bottom, Path.Direction.CW);
        mRect.setEmpty();
        mRadius = RADIUS_UNDEFINED;
@@ -279,9 +279,21 @@ public final class Outline {
     * @param convexPath used to construct the Outline. As of
     * {@link android.os.Build.VERSION_CODES#Q}, it is no longer required to be
     * convex.
     *
     * @deprecated The path is no longer required to be convex. Use {@link #setPath} instead.
     */
    @Deprecated
    public void setConvexPath(@NonNull Path convexPath) {
        if (convexPath.isEmpty()) {
        setPath(convexPath);
    }

    /**
     * Sets the Outline to a {@link android.graphics.Path path}.
     *
     * @param path used to construct the Outline.
     */
    public void setPath(@NonNull Path path) {
        if (path.isEmpty()) {
            setEmpty();
            return;
        }
@@ -290,8 +302,8 @@ public final class Outline {
            mPath = new Path();
        }

        mMode = MODE_CONVEX_PATH;
        mPath.set(convexPath);
        mMode = MODE_PATH;
        mPath.set(path);
        mRect.setEmpty();
        mRadius = RADIUS_UNDEFINED;
    }
@@ -302,7 +314,7 @@ public final class Outline {
    public void offset(int dx, int dy) {
        if (mMode == MODE_ROUND_RECT) {
            mRect.offset(dx, dy);
        } else if (mMode == MODE_CONVEX_PATH) {
        } else if (mMode == MODE_PATH) {
            mPath.offset(dx, dy);
        }
    }
+3 −3
Original line number Diff line number Diff line
@@ -687,8 +687,8 @@ public final class RenderNode {
                        outline.mRect.left, outline.mRect.top,
                        outline.mRect.right, outline.mRect.bottom,
                        outline.mRadius, outline.mAlpha);
            case Outline.MODE_CONVEX_PATH:
                return nSetOutlineConvexPath(mNativeRenderNode, outline.mPath.mNativePath,
            case Outline.MODE_PATH:
                return nSetOutlinePath(mNativeRenderNode, outline.mPath.mNativePath,
                        outline.mAlpha);
        }

@@ -1620,7 +1620,7 @@ public final class RenderNode {
            int right, int bottom, float radius, float alpha);

    @CriticalNative
    private static native boolean nSetOutlineConvexPath(long renderNode, long nativePath,
    private static native boolean nSetOutlinePath(long renderNode, long nativePath,
            float alpha);

    @CriticalNative
+1 −1
Original line number Diff line number Diff line
@@ -387,7 +387,7 @@ public class AdaptiveIconDrawable extends Drawable implements Drawable.Callback

    @Override
    public void getOutline(@NonNull Outline outline) {
        outline.setConvexPath(mMask);
        outline.setPath(mMask);
    }

    /** @hide */
Loading