From a05b409b385147cabdbd255dad04e39ee8f04411 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D1=91=D1=82=D1=80=20=D0=9F=D0=BE=D1=82=D0=B0=D0=BF?= =?UTF-8?q?=D0=BE=D0=B2?= <dr.potapoff.peter@gmail.com> Date: Wed, 10 Apr 2019 06:41:12 -0700 Subject: [PATCH] Fix: specific border radius corner causes visual bug on other corners (#24390) Summary: Fixes #22511 I understand the motivation of adding extraRadiusForOutline to corner radius: without it there can be an empty space between border and view's background color. So I add simple check: if corner radius is more than zero we still add extraRadiusForOutline. And if not, we don't add it to prevent all the corners to become slightly curved. [GENERAL] [Fixed] - fix of Android's bug that causes all the corners to become slightly curved if only specific corners' radius should be more than zero. Pull Request resolved: https://github.com/facebook/react-native/pull/24390 Differential Revision: D14870476 Pulled By: cpojer fbshipit-source-id: df40fc584a2f8badc499413cb3c4e4d96b9e18cf --- .../views/view/ReactViewBackgroundDrawable.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java b/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java index 430c5895bd156a..6fffa363d0ce99 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java @@ -662,14 +662,14 @@ private void updatePath() { mCenterDrawPath.addRoundRect( mTempRectForCenterDrawPath, new float[] { - innerTopLeftRadiusX + extraRadiusForOutline, - innerTopLeftRadiusY + extraRadiusForOutline, - innerTopRightRadiusX + extraRadiusForOutline, - innerTopRightRadiusY + extraRadiusForOutline, - innerBottomRightRadiusX + extraRadiusForOutline, - innerBottomRightRadiusY + extraRadiusForOutline, - innerBottomLeftRadiusX + extraRadiusForOutline, - innerBottomLeftRadiusY + extraRadiusForOutline + innerTopLeftRadiusX + (innerTopLeftRadiusX > 0 ? extraRadiusForOutline : 0), + innerTopLeftRadiusY + (innerTopLeftRadiusY > 0 ? extraRadiusForOutline : 0), + innerTopRightRadiusX + (innerTopRightRadiusX > 0 ? extraRadiusForOutline : 0), + innerTopRightRadiusY + (innerTopRightRadiusY > 0 ? extraRadiusForOutline : 0), + innerBottomRightRadiusX + (innerBottomRightRadiusX > 0 ? extraRadiusForOutline : 0), + innerBottomRightRadiusY + (innerBottomRightRadiusY > 0 ? extraRadiusForOutline : 0), + innerBottomLeftRadiusX + (innerBottomLeftRadiusX > 0 ? extraRadiusForOutline : 0), + innerBottomLeftRadiusY + (innerBottomLeftRadiusY > 0 ? extraRadiusForOutline : 0) }, Path.Direction.CW);