mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Provide easy registration of C++ TurboModules in rn-tester Android (#35225)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/35225 Changelog: [Android] [Changed] - Provide easy registration of C++ TurboModules in rn-tester Android Reviewed By: javache Differential Revision: D41069277 fbshipit-source-id: 450de9302df2916acf324d4c316996b185b2833f
This commit is contained in:
committed by
Lorenzo Sciandra
parent
7ef7d99f1c
commit
775d5cd00c
+15
-6
@@ -12,10 +12,15 @@
|
||||
namespace facebook {
|
||||
namespace react {
|
||||
|
||||
std::function<std::shared_ptr<TurboModule>(
|
||||
const std::string &,
|
||||
const std::shared_ptr<CallInvoker> &)>
|
||||
DefaultTurboModuleManagerDelegate::cxxModuleProvider{nullptr};
|
||||
|
||||
std::function<std::shared_ptr<TurboModule>(
|
||||
const std::string &,
|
||||
const JavaTurboModule::InitParams &)>
|
||||
DefaultTurboModuleManagerDelegate::moduleProvidersFromEntryPoint{nullptr};
|
||||
DefaultTurboModuleManagerDelegate::javaModuleProvider{nullptr};
|
||||
|
||||
jni::local_ref<DefaultTurboModuleManagerDelegate::jhybriddata>
|
||||
DefaultTurboModuleManagerDelegate::initHybrid(jni::alias_ref<jhybridobject>) {
|
||||
@@ -32,17 +37,21 @@ void DefaultTurboModuleManagerDelegate::registerNatives() {
|
||||
std::shared_ptr<TurboModule> DefaultTurboModuleManagerDelegate::getTurboModule(
|
||||
const std::string &name,
|
||||
const std::shared_ptr<CallInvoker> &jsInvoker) {
|
||||
// Not implemented yet: provide pure-C++ NativeModules here.
|
||||
auto moduleProvider = DefaultTurboModuleManagerDelegate::cxxModuleProvider;
|
||||
if (moduleProvider) {
|
||||
return moduleProvider(name, jsInvoker);
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
std::shared_ptr<TurboModule> DefaultTurboModuleManagerDelegate::getTurboModule(
|
||||
const std::string &name,
|
||||
const JavaTurboModule::InitParams ¶ms) {
|
||||
auto resolvedModule = (DefaultTurboModuleManagerDelegate::
|
||||
moduleProvidersFromEntryPoint)(name, params);
|
||||
if (resolvedModule != nullptr) {
|
||||
return resolvedModule;
|
||||
auto moduleProvider = DefaultTurboModuleManagerDelegate::javaModuleProvider;
|
||||
if (moduleProvider) {
|
||||
if (auto resolvedModule = moduleProvider(name, params)) {
|
||||
return resolvedModule;
|
||||
}
|
||||
}
|
||||
return rncore_ModuleProvider(name, params);
|
||||
}
|
||||
|
||||
@@ -27,10 +27,15 @@ class DefaultTurboModuleManagerDelegate : public jni::HybridClass<
|
||||
|
||||
static void registerNatives();
|
||||
|
||||
static std::function<std::shared_ptr<TurboModule>(
|
||||
const std::string &,
|
||||
const std::shared_ptr<CallInvoker> &)>
|
||||
cxxModuleProvider;
|
||||
|
||||
static std::function<std::shared_ptr<TurboModule>(
|
||||
const std::string &,
|
||||
const JavaTurboModule::InitParams &)>
|
||||
moduleProvidersFromEntryPoint;
|
||||
javaModuleProvider;
|
||||
|
||||
std::shared_ptr<TurboModule> getTurboModule(
|
||||
const std::string &name,
|
||||
|
||||
Reference in New Issue
Block a user