From 19695ed6a90c34fbe53b85420636540f151fbcc4 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Tue, 18 Aug 2020 16:57:50 -0700 Subject: [PATCH] Integrate UnimplementedView into RNTester OSS Summary: This diff integrates and render UnimplementedView into RNTester OSS changelog: [internal] internal Reviewed By: fkgozali Differential Revision: D23170052 fbshipit-source-id: 9306311d114c280fdeeb20d545ef244369040e96 --- .../src/main/java/com/facebook/react/fabric/jni/BUCK | 3 +++ .../react/fabric/jni/CoreComponentsRegistry.cpp | 12 ++++++++++++ .../src/main/java/com/facebook/react/shell/BUCK | 1 + .../com/facebook/react/shell/MainReactPackage.java | 3 +++ 4 files changed, 19 insertions(+) diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/BUCK b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/BUCK index ad42ac54a61..ee65f8ae7cf 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/BUCK @@ -42,5 +42,8 @@ rn_xplat_cxx_library( "//xplat/jsi:jsi", "//xplat/third-party/linker_lib:atomic", FBJNI_TARGET, + # TODO T71316899: Extract CoreComponentsRegistry out of this module + # The following dependencies are required by CoreComponentsRegistry + "//xplat/js/react-native-github:generated_components-rncore", ], ) diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/CoreComponentsRegistry.cpp b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/CoreComponentsRegistry.cpp index 962facf0eb4..f8c23862a3c 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/CoreComponentsRegistry.cpp +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/CoreComponentsRegistry.cpp @@ -12,6 +12,7 @@ #include #include +#include #include namespace facebook { @@ -29,6 +30,7 @@ CoreComponentsRegistry::sharedProviderRegistry() { providerRegistry->add( concreteComponentDescriptorProvider()); + return providerRegistry; }(); @@ -41,6 +43,8 @@ CoreComponentsRegistry::initHybrid( ComponentFactory *delegate) { auto instance = makeCxxInstance(delegate); + // TODO T69453179: Codegen this file + auto buildRegistryFunction = [](EventDispatcher::Weak const &eventDispatcher, ContextContainer::Shared const &contextContainer) @@ -48,6 +52,14 @@ CoreComponentsRegistry::initHybrid( auto registry = CoreComponentsRegistry::sharedProviderRegistry() ->createComponentDescriptorRegistry( {eventDispatcher, contextContainer}); + + auto mutableRegistry = + std::const_pointer_cast(registry); + mutableRegistry->setFallbackComponentDescriptor( + std::make_shared( + ComponentDescriptorParameters{ + eventDispatcher, contextContainer, nullptr})); + return registry; }; diff --git a/ReactAndroid/src/main/java/com/facebook/react/shell/BUCK b/ReactAndroid/src/main/java/com/facebook/react/shell/BUCK index 8c538aa0e96..e8e27ee8e2b 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/shell/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/shell/BUCK @@ -63,6 +63,7 @@ rn_android_library( react_native_target("java/com/facebook/react/views/text:text"), react_native_target("java/com/facebook/react/views/text/frescosupport:frescosupport"), react_native_target("java/com/facebook/react/views/textinput:textinput"), + react_native_target("java/com/facebook/react/views/unimplementedview:unimplementedview"), react_native_target("java/com/facebook/react/views/view:view"), react_native_target("java/com/facebook/react/module/annotations:annotations"), react_native_target("res:shell"), diff --git a/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java b/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java index 35ce74f69b5..471ba0c833e 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +++ b/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java @@ -57,6 +57,7 @@ import com.facebook.react.views.text.ReactTextViewManager; import com.facebook.react.views.text.ReactVirtualTextViewManager; import com.facebook.react.views.text.frescosupport.FrescoBasedReactTextInlineImageViewManager; import com.facebook.react.views.textinput.ReactTextInputManager; +import com.facebook.react.views.unimplementedview.ReactUnimplementedViewManager; import com.facebook.react.views.view.ReactViewManager; import java.util.ArrayList; import java.util.HashMap; @@ -180,6 +181,8 @@ public class MainReactPackage extends TurboReactPackage { viewManagers.add(new ReactViewManager()); viewManagers.add(new ReactVirtualTextViewManager()); + viewManagers.add(new ReactUnimplementedViewManager()); + return viewManagers; }