From 6a0cdd24df52283d5e22157f3ddc8a35671ea2d4 Mon Sep 17 00:00:00 2001 From: Leon Scroggins III Date: Thu, 23 Jan 2020 12:41:08 -0500 Subject: [PATCH] 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 --- api/current.txt | 2 +- .../android/graphics/drawable/AdaptiveIconDrawableTest.java | 6 ------ graphics/java/android/graphics/Path.java | 6 ++++++ .../statusbar/notification/row/ExpandableOutlineView.java | 4 +--- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/api/current.txt b/api/current.txt index 74328c4a333ac..fc6c7988f4c0c 100644 --- a/api/current.txt +++ b/api/current.txt @@ -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); diff --git a/core/tests/coretests/src/android/graphics/drawable/AdaptiveIconDrawableTest.java b/core/tests/coretests/src/android/graphics/drawable/AdaptiveIconDrawableTest.java index 3dc998709b8f9..7338c3a3ea8ae 100644 --- a/core/tests/coretests/src/android/graphics/drawable/AdaptiveIconDrawableTest.java +++ b/core/tests/coretests/src/android/graphics/drawable/AdaptiveIconDrawableTest.java @@ -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 diff --git a/graphics/java/android/graphics/Path.java b/graphics/java/android/graphics/Path.java index 1362fd864d299..84fe392906812 100644 --- a/graphics/java/android/graphics/Path.java +++ b/graphics/java/android/graphics/Path.java @@ -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); } 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 6aadcb7b30e10..28f4136d5ecb2 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 @@ -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); } }