Replace callback for lambdas in TurboModules classes (#36908)

Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/36908

We can now use Java 8, this diff i'm replacing old callbacks by lambdas
changelog: [internal] internal

Reviewed By: fkgozali

Differential Revision: D44977955

fbshipit-source-id: 0ab0d1c49a013e930041936bb08bbdb86dd30236
This commit is contained in:
David Vacca
2023-04-14 08:00:55 -07:00
committed by Facebook GitHub Bot
parent 234f1999a1
commit ce17c37050
4 changed files with 38 additions and 62 deletions
@@ -25,14 +25,11 @@ public class CompositeReactPackageTurboModuleManagerDelegate
protected native HybridData initHybrid();
private final List<TurboModuleManagerDelegate> mDelegates;
private CompositeReactPackageTurboModuleManagerDelegate(
ReactApplicationContext context,
List<ReactPackage> packages,
List<TurboModuleManagerDelegate> delegates) {
super(context, packages);
mDelegates = delegates;
for (TurboModuleManagerDelegate delegate : delegates) {
addTurboModuleManagerDelegate(delegate);
}
@@ -103,14 +103,7 @@ public class DebugCorePackage extends TurboReactPackage implements ViewManagerOn
if (mViewManagers == null) {
Map<String, ModuleSpec> viewManagers = new HashMap<>();
appendMap(
viewManagers,
TraceUpdateOverlayManager.REACT_CLASS,
new Provider<NativeModule>() {
@Override
public NativeModule get() {
return new TraceUpdateOverlayManager();
}
});
viewManagers, TraceUpdateOverlayManager.REACT_CLASS, TraceUpdateOverlayManager::new);
mViewManagers = viewManagers;
}
@@ -9,7 +9,6 @@ package com.facebook.react;
import static com.facebook.systrace.Systrace.TRACE_TAG_REACT_JAVA_BRIDGE;
import androidx.annotation.NonNull;
import com.facebook.react.bridge.ModuleHolder;
import com.facebook.react.bridge.ModuleSpec;
import com.facebook.react.bridge.NativeModule;
@@ -36,18 +35,14 @@ public abstract class LazyReactPackage implements ReactPackage {
@Deprecated
public static ReactModuleInfoProvider getReactModuleInfoProviderViaReflection(
LazyReactPackage lazyReactPackage) {
return new ReactModuleInfoProvider() {
@Override
public Map<String, ReactModuleInfo> getReactModuleInfos() {
return Collections.emptyMap();
}
};
return Collections::emptyMap;
}
/**
* We return an iterable
*
* @param reactContext
* @return
* @param reactContext context
* @return {@link Iterable<ModuleHolder>} that contains all native modules registered for the
* context
*/
public Iterable<ModuleHolder> getNativeModuleIterator(
final ReactApplicationContext reactContext) {
@@ -55,11 +50,8 @@ public abstract class LazyReactPackage implements ReactPackage {
getReactModuleInfoProvider().getReactModuleInfos();
final List<ModuleSpec> nativeModules = getNativeModules(reactContext);
return new Iterable<ModuleHolder>() {
@NonNull
@Override
public Iterator<ModuleHolder> iterator() {
return new Iterator<ModuleHolder>() {
return () ->
new Iterator<ModuleHolder>() {
int position = 0;
@Override
@@ -93,8 +85,6 @@ public abstract class LazyReactPackage implements ReactPackage {
throw new UnsupportedOperationException("Cannot remove native modules from the list");
}
};
}
};
}
/**
@@ -71,49 +71,43 @@ public class TurboModuleManager implements JSIModule, TurboModuleRegistry {
delegate == null ? new ArrayList<String>() : delegate.getEagerInitModuleNames();
mModuleProvider =
new ModuleProvider<TurboModule>() {
@Nullable
public TurboModule getModule(String moduleName) {
if (delegate == null || shouldRouteTurboModulesThroughInteropLayer()) {
return null;
}
TurboModule module = delegate.getModule(moduleName);
if (module == null) {
CxxModuleWrapper legacyCxxModule = delegate.getLegacyCxxModule(moduleName);
if (legacyCxxModule != null) {
// TurboModuleManagerDelegate.getLegacyCxxModule() must always return TurboModules
Assertions.assertCondition(
legacyCxxModule instanceof TurboModule,
"CxxModuleWrapper \"" + moduleName + "\" is not a TurboModule");
module = (TurboModule) legacyCxxModule;
}
}
return module;
moduleName -> {
if (delegate == null || shouldRouteTurboModulesThroughInteropLayer()) {
return null;
}
TurboModule module = delegate.getModule(moduleName);
if (module == null) {
CxxModuleWrapper legacyCxxModule = delegate.getLegacyCxxModule(moduleName);
if (legacyCxxModule != null) {
// TurboModuleManagerDelegate.getLegacyCxxModule() must always return TurboModules
Assertions.assertCondition(
legacyCxxModule instanceof TurboModule,
"CxxModuleWrapper \"" + moduleName + "\" is not a TurboModule");
module = (TurboModule) legacyCxxModule;
}
}
return module;
};
mLegacyModuleProvider =
new ModuleProvider<NativeModule>() {
@Nullable
public NativeModule getModule(String moduleName) {
if (delegate == null || !shouldCreateLegacyModules()) {
return null;
}
moduleName -> {
if (delegate == null || !shouldCreateLegacyModules()) {
return null;
}
NativeModule nativeModule = delegate.getLegacyModule(moduleName);
if (nativeModule != null) {
if (!shouldRouteTurboModulesThroughInteropLayer()) {
// TurboModuleManagerDelegate.getLegacyModule must never return a TurboModule
Assertions.assertCondition(
!(nativeModule instanceof TurboModule),
"NativeModule \"" + moduleName + "\" is a TurboModule");
}
return nativeModule;
NativeModule nativeModule = delegate.getLegacyModule(moduleName);
if (nativeModule != null) {
if (!shouldRouteTurboModulesThroughInteropLayer()) {
// TurboModuleManagerDelegate.getLegacyModule must never return a TurboModule
Assertions.assertCondition(
!(nativeModule instanceof TurboModule),
"NativeModule \"" + moduleName + "\" is a TurboModule");
}
return nativeModule;
}
return nativeModule;
};
}
@@ -148,6 +142,7 @@ public class TurboModuleManager implements JSIModule, TurboModuleRegistry {
: null;
}
@SuppressWarnings("unused")
@DoNotStrip
@Nullable
private CxxModuleWrapper getLegacyCxxModule(String moduleName) {
@@ -158,6 +153,7 @@ public class TurboModuleManager implements JSIModule, TurboModuleRegistry {
: null;
}
@SuppressWarnings("unused")
@DoNotStrip
@Nullable
private CxxModuleWrapper getTurboLegacyCxxModule(String moduleName) {