summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Leon Scroggins <scroggo@google.com> 2020-02-03 17:43:49 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2020-02-03 17:43:49 +0000
commit5c5e55ea4c74bb22bf7c69e33508616fbe3fc6a1 (patch)
tree635ecae5ec52b29095c370f2d73886cf50036353
parent88b313eb4a80c52d8b87ae5feead8bc5bcadfce6 (diff)
parenta49beaaa693d0900a65c8ebf2a1f44242e469f59 (diff)
Merge "Replace Outline#setConvexPath with Outline#setPath"
-rw-r--r--api/current.txt3
-rw-r--r--core/jni/android_view_RenderNode.cpp6
-rw-r--r--graphics/java/android/graphics/Outline.java38
-rw-r--r--graphics/java/android/graphics/RenderNode.java6
-rw-r--r--graphics/java/android/graphics/drawable/AdaptiveIconDrawable.java2
-rw-r--r--graphics/java/android/graphics/drawable/GradientDrawable.java2
-rw-r--r--graphics/java/android/graphics/drawable/shapes/RoundRectShape.java2
-rw-r--r--libs/hwui/Outline.h6
-rw-r--r--packages/SystemUI/src/com/android/systemui/bubbles/BubbleFlyoutView.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/recents/TriangleShape.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableOutlineView.java2
11 files changed, 42 insertions, 29 deletions
diff --git a/api/current.txt b/api/current.txt
index 5ac58d043660..2416493fac9d 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -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);
diff --git a/core/jni/android_view_RenderNode.cpp b/core/jni/android_view_RenderNode.cpp
index 538861e21d96..a8246c7d84b7 100644
--- a/core/jni/android_view_RenderNode.cpp
+++ b/core/jni/android_view_RenderNode.cpp
@@ -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 },
diff --git a/graphics/java/android/graphics/Outline.java b/graphics/java/android/graphics/Outline.java
index 91a60c327bf0..c12159cfd7a4 100644
--- a/graphics/java/android/graphics/Outline.java
+++ b/graphics/java/android/graphics/Outline.java
@@ -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);
}
}
diff --git a/graphics/java/android/graphics/RenderNode.java b/graphics/java/android/graphics/RenderNode.java
index 17e3b4465130..3835b2d493c5 100644
--- a/graphics/java/android/graphics/RenderNode.java
+++ b/graphics/java/android/graphics/RenderNode.java
@@ -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
diff --git a/graphics/java/android/graphics/drawable/AdaptiveIconDrawable.java b/graphics/java/android/graphics/drawable/AdaptiveIconDrawable.java
index 928e607abbbe..746378e10bc7 100644
--- a/graphics/java/android/graphics/drawable/AdaptiveIconDrawable.java
+++ b/graphics/java/android/graphics/drawable/AdaptiveIconDrawable.java
@@ -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 */
diff --git a/graphics/java/android/graphics/drawable/GradientDrawable.java b/graphics/java/android/graphics/drawable/GradientDrawable.java
index 3881955d2632..f053f392b97e 100644
--- a/graphics/java/android/graphics/drawable/GradientDrawable.java
+++ b/graphics/java/android/graphics/drawable/GradientDrawable.java
@@ -1915,7 +1915,7 @@ public class GradientDrawable extends Drawable {
case RECTANGLE:
if (st.mRadiusArray != null) {
buildPathIfDirty();
- outline.setConvexPath(mPath);
+ outline.setPath(mPath);
return;
}
diff --git a/graphics/java/android/graphics/drawable/shapes/RoundRectShape.java b/graphics/java/android/graphics/drawable/shapes/RoundRectShape.java
index 475e0bb70f2b..28ba60577fb1 100644
--- a/graphics/java/android/graphics/drawable/shapes/RoundRectShape.java
+++ b/graphics/java/android/graphics/drawable/shapes/RoundRectShape.java
@@ -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;
}
}
diff --git a/libs/hwui/Outline.h b/libs/hwui/Outline.h
index f1c38031980e..2eb2c7c7e299 100644
--- a/libs/hwui/Outline.h
+++ b/libs/hwui/Outline.h
@@ -26,7 +26,7 @@ namespace uirenderer {
class Outline {
public:
- enum class Type { None = 0, Empty = 1, ConvexPath = 2, RoundRect = 3 };
+ enum class Type { None = 0, Empty = 1, Path = 2, RoundRect = 3 };
Outline() : mShouldClip(false), mType(Type::None), mRadius(0), mAlpha(0.0f) {}
@@ -57,12 +57,12 @@ public:
}
}
- void setConvexPath(const SkPath* outline, float alpha) {
+ void setPath(const SkPath* outline, float alpha) {
if (!outline) {
setEmpty();
return;
}
- mType = Type::ConvexPath;
+ mType = Type::Path;
mPath = *outline;
mBounds.set(outline->getBounds());
mAlpha = alpha;
diff --git a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleFlyoutView.java b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleFlyoutView.java
index 4194352f93bd..5b9ea7dd5e3a 100644
--- a/packages/SystemUI/src/com/android/systemui/bubbles/BubbleFlyoutView.java
+++ b/packages/SystemUI/src/com/android/systemui/bubbles/BubbleFlyoutView.java
@@ -431,7 +431,7 @@ public class BubbleFlyoutView extends FrameLayout {
final float interpolatedRadius = getInterpolatedRadius();
rectPath.addRoundRect(mBgRect, interpolatedRadius,
interpolatedRadius, Path.Direction.CW);
- outline.setConvexPath(rectPath);
+ outline.setPath(rectPath);
// Get rid of the triangle path once it has disappeared behind the flyout.
if (mPercentStillFlyout > 0.5f) {
diff --git a/packages/SystemUI/src/com/android/systemui/recents/TriangleShape.java b/packages/SystemUI/src/com/android/systemui/recents/TriangleShape.java
index de8e6ea4a0cb..7ebebaaef122 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/TriangleShape.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/TriangleShape.java
@@ -70,6 +70,6 @@ public class TriangleShape extends PathShape {
@Override
public void getOutline(@NonNull Outline outline) {
- outline.setConvexPath(mTriangularPath);
+ outline.setPath(mTriangularPath);
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableOutlineView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableOutlineView.java
index 28f4136d5ecb..049cafa4ccde 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableOutlineView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableOutlineView.java
@@ -93,7 +93,7 @@ public abstract class ExpandableOutlineView extends ExpandableView {
} else {
Path clipPath = getClipPath(false /* ignoreTranslation */);
if (clipPath != null) {
- outline.setConvexPath(clipPath);
+ outline.setPath(clipPath);
}
}
outline.setAlpha(mOutlineAlpha);