From 575f7d478d3171eed05d7053b03360c9baff2361 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Tue, 28 Aug 2018 22:49:21 -0700 Subject: [PATCH] Implement HorizontalScrollView component Summary: This diff implements the HorizontalScrollView component for Android Fabric C++, as part of this diff I also re-named the components AndroidHorizontalScrollContentView for RCTAndroidHorizontalScrollContentView and AndroidHorizontalScrollView for RCTAndroidHorizontalScrollView. This might sound against our plan of removing the RCT preffix, but it is to make it simpler to map components between current implementation of RN and Fabric (otherwise we don't know when to add the RCT preffix in Android side to find the right View Manager), later we can just remove the preffix from C++, Android, iOS and JS. Reviewed By: shergin, achen1 Differential Revision: D9122729 fbshipit-source-id: e9299552857c6dd0c18abfa5fa49a3d50e221729 --- Libraries/Components/ScrollView/ScrollView.js | 4 ++-- .../scroll/ReactHorizontalScrollContainerViewManager.java | 2 +- .../views/scroll/ReactHorizontalScrollViewManager.java | 2 +- .../fabric/components/scrollview/ScrollViewShadowNode.h | 8 ++++---- ReactCommon/fabric/uimanager/FabricUIManager.cpp | 7 ++++++- 5 files changed, 14 insertions(+), 9 deletions(-) diff --git a/Libraries/Components/ScrollView/ScrollView.js b/Libraries/Components/ScrollView/ScrollView.js index aef48e3e1b4..b40f0285d21 100644 --- a/Libraries/Components/ScrollView/ScrollView.js +++ b/Libraries/Components/ScrollView/ScrollView.js @@ -47,10 +47,10 @@ let RCTScrollContentView; if (Platform.OS === 'android') { AndroidScrollView = requireNativeComponent('RCTScrollView'); AndroidHorizontalScrollView = requireNativeComponent( - 'AndroidHorizontalScrollView', + 'RCTAndroidHorizontalScrollView', ); AndroidHorizontalScrollContentView = requireNativeComponent( - 'AndroidHorizontalScrollContentView', + 'RCTAndroidHorizontalScrollContentView', ); } else if (Platform.OS === 'ios') { RCTScrollView = requireNativeComponent('RCTScrollView'); diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerViewManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerViewManager.java index 284f41451f5..894e8286cf0 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerViewManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollContainerViewManager.java @@ -14,7 +14,7 @@ import com.facebook.react.uimanager.ViewGroupManager; public class ReactHorizontalScrollContainerViewManager extends ViewGroupManager { - protected static final String REACT_CLASS = "AndroidHorizontalScrollContentView"; + protected static final String REACT_CLASS = "RCTAndroidHorizontalScrollContentView"; public ReactHorizontalScrollContainerViewManager() {} diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java index e6536a6e53e..29e11e5348d 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java @@ -37,7 +37,7 @@ public class ReactHorizontalScrollViewManager extends ViewGroupManager implements ReactScrollViewCommandHelper.ScrollCommandHandler { - protected static final String REACT_CLASS = "AndroidHorizontalScrollView"; + protected static final String REACT_CLASS = "RCTAndroidHorizontalScrollView"; private static final int[] SPACING_TYPES = { Spacing.ALL, Spacing.LEFT, Spacing.RIGHT, Spacing.TOP, Spacing.BOTTOM, diff --git a/ReactCommon/fabric/components/scrollview/ScrollViewShadowNode.h b/ReactCommon/fabric/components/scrollview/ScrollViewShadowNode.h index 22d91300b54..6bebc8348ba 100644 --- a/ReactCommon/fabric/components/scrollview/ScrollViewShadowNode.h +++ b/ReactCommon/fabric/components/scrollview/ScrollViewShadowNode.h @@ -22,10 +22,10 @@ extern const char ScrollViewComponentName[]; */ class ScrollViewShadowNode final: public ConcreteViewShadowNode< - ScrollViewComponentName, - ScrollViewProps, - ScrollViewEventEmitter - > { + ScrollViewComponentName, + ScrollViewProps, + ScrollViewEventEmitter + > { public: diff --git a/ReactCommon/fabric/uimanager/FabricUIManager.cpp b/ReactCommon/fabric/uimanager/FabricUIManager.cpp index 496ca45d3bc..71d09d420ac 100644 --- a/ReactCommon/fabric/uimanager/FabricUIManager.cpp +++ b/ReactCommon/fabric/uimanager/FabricUIManager.cpp @@ -65,6 +65,10 @@ static const std::string componentNameByReactViewName(std::string viewName) { return "Image"; } + if (viewName == "AndroidHorizontalScrollView") { + return "ScrollView"; + } + // We need this temporarly for testing purposes until we have proper // implementation of core components. if ( @@ -72,7 +76,8 @@ static const std::string componentNameByReactViewName(std::string viewName) { viewName == "MultilineTextInputView" || viewName == "RefreshControl" || viewName == "SafeAreaView" || - viewName == "ScrollContentView" + viewName == "ScrollContentView" || + viewName == "AndroidHorizontalScrollContentView" // Android ) { return "View"; }