Replace Outline#setConvexPath with Outline#setPath
Bug: 148544953 Test: No change in behavior, no new tests setConvexPath no longer requires that the Path be Convex, so deprecate the method and replace it with a name that does not imply it must be Convex. Update internal references to the Path being Convex as well. Change-Id: I8935dc8ac7f7fb7db0d667e35fda67afdf2e6ac8
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -1915,7 +1915,7 @@ public class GradientDrawable extends Drawable {
|
||||
case RECTANGLE:
|
||||
if (st.mRadiusArray != null) {
|
||||
buildPathIfDirty();
|
||||
outline.setConvexPath(mPath);
|
||||
outline.setPath(mPath);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -94,7 +94,7 @@ public class RoundRectShape extends RectShape {
|
||||
for (int i = 1; i < 8; i++) {
|
||||
if (mOuterRadii[i] != radius) {
|
||||
// can't call simple constructors, use path
|
||||
outline.setConvexPath(mPath);
|
||||
outline.setPath(mPath);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user