From 2d5db284b061aec33af671b25065632e20217f62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Danilo=20B=C3=BCrger?= Date: Mon, 12 Sep 2022 15:07:19 -0700 Subject: [PATCH] Support PlatformColor in borderColor on Android (#33544) Summary: PlatformColor should work on all *color style attributes on all platform. Partially fixes https://github.com/facebook/react-native/issues/32942 ## Changelog [Android] [Fixed] - Support PlatformColor in borderColor Pull Request resolved: https://github.com/facebook/react-native/pull/33544 Test Plan: Open rn tester (USE_FABRIC=false) platform color api examples. Without the changes to ViewProps.java, it will error out. Reviewed By: lunaleaps Differential Revision: D39413519 Pulled By: NickGerleman fbshipit-source-id: 58962ba2956aa3df45144108eec194aedf23886b --- .../java/com/facebook/react/uimanager/ViewProps.java | 10 ++++++---- .../js/examples/PlatformColor/PlatformColorExample.js | 1 + 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.java index d78d1f7e5a8e8b..5ebc907f81930b 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewProps.java @@ -278,14 +278,16 @@ public static boolean isLayoutOnly(ReadableMap map, String prop) { } return true; case BORDER_LEFT_COLOR: - return !map.isNull(BORDER_LEFT_COLOR) && map.getInt(BORDER_LEFT_COLOR) == Color.TRANSPARENT; + return map.getType(BORDER_LEFT_COLOR) == ReadableType.Number + && map.getInt(BORDER_LEFT_COLOR) == Color.TRANSPARENT; case BORDER_RIGHT_COLOR: - return !map.isNull(BORDER_RIGHT_COLOR) + return map.getType(BORDER_RIGHT_COLOR) == ReadableType.Number && map.getInt(BORDER_RIGHT_COLOR) == Color.TRANSPARENT; case BORDER_TOP_COLOR: - return !map.isNull(BORDER_TOP_COLOR) && map.getInt(BORDER_TOP_COLOR) == Color.TRANSPARENT; + return map.getType(BORDER_TOP_COLOR) == ReadableType.Number + && map.getInt(BORDER_TOP_COLOR) == Color.TRANSPARENT; case BORDER_BOTTOM_COLOR: - return !map.isNull(BORDER_BOTTOM_COLOR) + return map.getType(BORDER_BOTTOM_COLOR) == ReadableType.Number && map.getInt(BORDER_BOTTOM_COLOR) == Color.TRANSPARENT; case BORDER_WIDTH: return map.isNull(BORDER_WIDTH) || map.getDouble(BORDER_WIDTH) == 0d; diff --git a/packages/rn-tester/js/examples/PlatformColor/PlatformColorExample.js b/packages/rn-tester/js/examples/PlatformColor/PlatformColorExample.js index 6ca70fe28597a1..cb41b818280c68 100644 --- a/packages/rn-tester/js/examples/PlatformColor/PlatformColorExample.js +++ b/packages/rn-tester/js/examples/PlatformColor/PlatformColorExample.js @@ -214,6 +214,7 @@ function FallbackColorsExample() { style={{ ...styles.colorCell, backgroundColor: color.color, + borderColor: color.color, }} />