mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Deprecate TurboModuleManagerDelegate.getLegacyCxxModule (#36667)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/36667 ## Context TurboModuleManagerDelegate exposes two methods that create TurboModules: - TurboModule getModule() - CxxModuleWrapper getLegacyCxxModule() ## Problem TurboModuleManagerDelegate.getLegacyCxxModule() is redundant: getModule() could just return all the modules that getLegacyCxxModule() returns: getLegacyCxxModule returns modules that implement TurboModule. ## Changes So, let's deprecate getLegacyCxxModule(). This will simplify the implementation of TurboModuleManager. Changelog: [Android][Deprecated] - Deprecate TurboModuleManager.getLegacyCxxModule Reviewed By: cortinico Differential Revision: D44407802 fbshipit-source-id: 88a6cf6597db76d8a74fd777d68ccf4f43aa6811
This commit is contained in:
committed by
Facebook GitHub Bot
parent
3af66bf7fb
commit
7a08fbb088
+7
-31
@@ -9,7 +9,6 @@ package com.facebook.react;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import com.facebook.infer.annotation.Assertions;
|
||||
import com.facebook.proguard.annotations.DoNotStrip;
|
||||
import com.facebook.react.bridge.CxxModuleWrapper;
|
||||
import com.facebook.react.bridge.ModuleSpec;
|
||||
import com.facebook.react.bridge.NativeModule;
|
||||
@@ -142,36 +141,6 @@ public abstract class ReactPackageTurboModuleManagerDelegate extends TurboModule
|
||||
@Nullable
|
||||
@Override
|
||||
public TurboModule getModule(String moduleName) {
|
||||
TurboModule module = resolveModule(moduleName);
|
||||
if (module == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (module instanceof CxxModuleWrapper) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return module;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
@DoNotStrip
|
||||
public CxxModuleWrapper getLegacyCxxModule(String moduleName) {
|
||||
TurboModule module = resolveModule(moduleName);
|
||||
if (module == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!(module instanceof CxxModuleWrapper)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (CxxModuleWrapper) module;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private TurboModule resolveModule(String moduleName) {
|
||||
NativeModule resolvedModule = null;
|
||||
|
||||
for (final ModuleProvider moduleProvider : mModuleProviders) {
|
||||
@@ -203,6 +172,13 @@ public abstract class ReactPackageTurboModuleManagerDelegate extends TurboModule
|
||||
return null;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
@Nullable
|
||||
@Override
|
||||
public CxxModuleWrapper getLegacyCxxModule(String moduleName) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getEagerInitModuleNames() {
|
||||
List<String> moduleNames = new ArrayList<>();
|
||||
|
||||
+14
-27
@@ -31,8 +31,7 @@ import java.util.*;
|
||||
public class TurboModuleManager implements JSIModule, TurboModuleRegistry {
|
||||
private static volatile boolean sIsSoLibraryLoaded;
|
||||
private final List<String> mEagerInitModuleNames;
|
||||
private final ModuleProvider<TurboModule> mJavaModuleProvider;
|
||||
private final ModuleProvider<TurboModule> mCxxModuleProvider;
|
||||
private final ModuleProvider<TurboModule> mModuleProvider;
|
||||
|
||||
// Prevents the creation of new TurboModules once cleanup as been initiated.
|
||||
private final Object mModuleCleanupLock = new Object();
|
||||
@@ -65,7 +64,7 @@ public class TurboModuleManager implements JSIModule, TurboModuleRegistry {
|
||||
mEagerInitModuleNames =
|
||||
delegate == null ? new ArrayList<String>() : delegate.getEagerInitModuleNames();
|
||||
|
||||
mJavaModuleProvider =
|
||||
mModuleProvider =
|
||||
new ModuleProvider<TurboModule>() {
|
||||
@Nullable
|
||||
public TurboModule getModule(String moduleName) {
|
||||
@@ -73,27 +72,19 @@ public class TurboModuleManager implements JSIModule, TurboModuleRegistry {
|
||||
return null;
|
||||
}
|
||||
|
||||
return delegate.getModule(moduleName);
|
||||
}
|
||||
};
|
||||
TurboModule module = delegate.getModule(moduleName);
|
||||
if (module == null) {
|
||||
CxxModuleWrapper legacyCxxModule = delegate.getLegacyCxxModule(moduleName);
|
||||
|
||||
mCxxModuleProvider =
|
||||
new ModuleProvider<TurboModule>() {
|
||||
@Nullable
|
||||
public TurboModule getModule(String moduleName) {
|
||||
if (delegate == null) {
|
||||
return null;
|
||||
if (legacyCxxModule != null) {
|
||||
// TurboModuleManagerDelegate.getLegacyCxxModule() must always return TurboModules
|
||||
Assertions.assertCondition(
|
||||
legacyCxxModule instanceof TurboModule,
|
||||
"CxxModuleWrapper \"" + moduleName + "\" is not a TurboModule");
|
||||
module = (TurboModule) legacyCxxModule;
|
||||
}
|
||||
}
|
||||
|
||||
CxxModuleWrapper nativeModule = delegate.getLegacyCxxModule(moduleName);
|
||||
if (nativeModule != null) {
|
||||
// TurboModuleManagerDelegate must always return TurboModules
|
||||
Assertions.assertCondition(
|
||||
nativeModule instanceof TurboModule,
|
||||
"CxxModuleWrapper \"" + moduleName + "\" is not a TurboModule");
|
||||
return (TurboModule) nativeModule;
|
||||
}
|
||||
return null;
|
||||
return module;
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -194,11 +185,7 @@ public class TurboModuleManager implements JSIModule, TurboModuleRegistry {
|
||||
|
||||
if (shouldCreateModule) {
|
||||
TurboModulePerfLogger.moduleCreateConstructStart(moduleName, moduleHolder.getModuleId());
|
||||
NativeModule nativeModule = (NativeModule) mJavaModuleProvider.getModule(moduleName);
|
||||
|
||||
if (nativeModule == null) {
|
||||
nativeModule = (NativeModule) mCxxModuleProvider.getModule(moduleName);
|
||||
}
|
||||
NativeModule nativeModule = (NativeModule) mModuleProvider.getModule(moduleName);
|
||||
|
||||
TurboModulePerfLogger.moduleCreateConstructEnd(moduleName, moduleHolder.getModuleId());
|
||||
TurboModulePerfLogger.moduleCreateSetUpStart(moduleName, moduleHolder.getModuleId());
|
||||
|
||||
+5
-2
@@ -39,9 +39,12 @@ public abstract class TurboModuleManagerDelegate {
|
||||
public abstract TurboModule getModule(String moduleName);
|
||||
|
||||
/**
|
||||
* Create an return a CxxModuleWrapper NativeModule with name `moduleName`. If `moduleName` isn't
|
||||
* a CxxModule, return null.
|
||||
* Create and return a CxxModuleWrapper NativeModule with name `moduleName`. If `moduleName` isn't
|
||||
* a CxxModule, return null. CxxModuleWrapper must implement TurboModule.
|
||||
*
|
||||
* <p>Deprecated. Please just return your CxxModuleWrappers from getModule.
|
||||
*/
|
||||
@Deprecated
|
||||
@Nullable
|
||||
public abstract CxxModuleWrapper getLegacyCxxModule(String moduleName);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user