Deprecate Path#isConvex

Bug: 133807397
Test: No change in behavior, no new tests

isConvex is unreliable. We may change how we compute it from release to
release, and it could change based on various factors like a rotation.

Change-Id: Ib76246fc24f09bd13cf63b4b96b56afa613d0bc9
This commit is contained in:
Leon Scroggins III
2020-01-23 12:41:08 -05:00
parent 6e62dbb263
commit 6a0cdd24df
4 changed files with 8 additions and 10 deletions

View File

@@ -15034,7 +15034,7 @@ package android.graphics {
method public void cubicTo(float, float, float, float, float, float);
method @NonNull public android.graphics.Path.FillType getFillType();
method public void incReserve(int);
method public boolean isConvex();
method @Deprecated public boolean isConvex();
method public boolean isEmpty();
method public boolean isInverseFillType();
method public boolean isRect(@Nullable android.graphics.RectF);

View File

@@ -145,9 +145,6 @@ public class AdaptiveIconDrawableTest extends AndroidTestCase {
assertEquals("top", boundFromDrawable.top, boundFromDeviceConfig.top, delta);
assertEquals("right", boundFromDrawable.right, boundFromDeviceConfig.right, delta);
assertEquals("bottom", boundFromDrawable.bottom, boundFromDeviceConfig.bottom, delta);
assertTrue("path from device config is convex.", pathFromDeviceConfig.isConvex());
assertTrue("path from drawable is convex.", pathFromDrawable.isConvex());
}
@Test
@@ -169,8 +166,6 @@ public class AdaptiveIconDrawableTest extends AndroidTestCase {
assertEquals("top", top, maskBounds.top, delta);
assertEquals("right", right, maskBounds.right, delta);
assertEquals("bottom", bottom, maskBounds.bottom, delta);
assertTrue(mIconDrawable.getIconMask().isConvex());
}
@Test
@@ -185,7 +180,6 @@ public class AdaptiveIconDrawableTest extends AndroidTestCase {
mIconDrawable.setBounds(left, top, right, bottom);
Outline outline = new Outline();
mIconDrawable.getOutline(outline);
assertTrue("outline path should be convex", outline.mPath.isConvex());
}
@Test

View File

@@ -209,7 +209,13 @@ public class Path {
* points, and cache the result.
*
* @return True if the path is convex.
*
* @deprecated This method is not reliable. The way convexity is computed may change from
* release to release, and convexity could change based on a matrix as well. This method was
* useful when non-convex Paths were unable to be used in certain contexts, but that is no
* longer the case.
*/
@Deprecated
public boolean isConvex() {
return nIsConvex(mNativePath);
}

View File

@@ -92,9 +92,7 @@ public abstract class ExpandableOutlineView extends ExpandableView {
outline.setRect(left, top, right, bottom);
} else {
Path clipPath = getClipPath(false /* ignoreTranslation */);
if (clipPath != null && clipPath.isConvex()) {
// The path might not be convex in border cases where the view is small and
// clipped
if (clipPath != null) {
outline.setConvexPath(clipPath);
}
}