mirror of
https://github.com/react/react-native.git
synced 2026-09-29 16:58:04 +08:00
Undo moving of TurboModule to internal and expose utility function for TurboModule.class.isAssignableFrom (#43219)
Summary: After discussing with mdvacca, we prefer to undo the change of `TurboModule` package to `.internal` as this is a quite aggressive breaking change for the ecosystem. Moreover: users should not invoke `TurboModule.class.isAssignableFrom` because `TurboModule` is `.internal`. Therefore I'm exposing another API to check if a class is a TurboModule as a static field of `ReactModuleInfo`. ## Changelog: [INTERNAL] - Do not use TurboModule.class.isAssignableFrom Pull Request resolved: https://github.com/facebook/react-native/pull/43219 Test Plan: Tests are attached Reviewed By: mdvacca, cipolleschi Differential Revision: D54280882 Pulled By: cortinico fbshipit-source-id: 9443c8aa23cf70dd5cfe574fe573d83313134358
This commit is contained in:
committed by
Facebook GitHub Bot
parent
d889d77aed
commit
4d982dcdae
+1
-1
@@ -462,7 +462,7 @@ module.exports = {
|
||||
'com.facebook.react.bridge.ReactApplicationContext',
|
||||
'com.facebook.react.bridge.ReactContextBaseJavaModule',
|
||||
'com.facebook.react.bridge.ReactMethod',
|
||||
'com.facebook.react.internal.turbomodule.core.interfaces.TurboModule',
|
||||
'com.facebook.react.turbomodule.core.interfaces.TurboModule',
|
||||
'com.facebook.proguard.annotations.DoNotStrip',
|
||||
'javax.annotation.Nonnull',
|
||||
]);
|
||||
|
||||
+9
-9
@@ -20,7 +20,7 @@ import com.facebook.proguard.annotations.DoNotStrip;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule;
|
||||
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaModule implements TurboModule {
|
||||
@@ -66,7 +66,7 @@ import com.facebook.react.bridge.ReadableArray;
|
||||
import com.facebook.react.bridge.ReadableMap;
|
||||
import com.facebook.react.bridge.WritableArray;
|
||||
import com.facebook.react.bridge.WritableMap;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule;
|
||||
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
@@ -136,7 +136,7 @@ import com.facebook.proguard.annotations.DoNotStrip;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule;
|
||||
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaModule implements TurboModule {
|
||||
@@ -178,7 +178,7 @@ import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.bridge.ReadableMap;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule;
|
||||
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public abstract class AliasTurboModuleSpec extends ReactContextBaseJavaModule implements TurboModule {
|
||||
@@ -224,7 +224,7 @@ import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.bridge.ReadableArray;
|
||||
import com.facebook.react.bridge.ReadableMap;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule;
|
||||
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public abstract class NativeCameraRollManagerSpec extends ReactContextBaseJavaModule implements TurboModule {
|
||||
@@ -272,7 +272,7 @@ import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.bridge.ReadableArray;
|
||||
import com.facebook.react.bridge.ReadableMap;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule;
|
||||
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public abstract class NativeExceptionsManagerSpec extends ReactContextBaseJavaModule implements TurboModule {
|
||||
@@ -338,7 +338,7 @@ import com.facebook.react.bridge.ReadableMap;
|
||||
import com.facebook.react.bridge.WritableArray;
|
||||
import com.facebook.react.bridge.WritableMap;
|
||||
import com.facebook.react.common.build.ReactBuildConfig;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule;
|
||||
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
@@ -462,7 +462,7 @@ import com.facebook.proguard.annotations.DoNotStrip;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule;
|
||||
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public abstract class NativeSampleTurboModuleSpec extends ReactContextBaseJavaModule implements TurboModule {
|
||||
@@ -500,7 +500,7 @@ import com.facebook.proguard.annotations.DoNotStrip;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule;
|
||||
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public abstract class NativeSampleTurboModule2Spec extends ReactContextBaseJavaModule implements TurboModule {
|
||||
|
||||
@@ -322,7 +322,7 @@ public abstract class com/facebook/react/ReactPackageTurboModuleManagerDelegate
|
||||
protected fun <init> (Lcom/facebook/react/bridge/ReactApplicationContext;Ljava/util/List;Lcom/facebook/jni/HybridData;)V
|
||||
public fun getEagerInitModuleNames ()Ljava/util/List;
|
||||
public fun getLegacyModule (Ljava/lang/String;)Lcom/facebook/react/bridge/NativeModule;
|
||||
public fun getModule (Ljava/lang/String;)Lcom/facebook/react/internal/turbomodule/core/interfaces/TurboModule;
|
||||
public fun getModule (Ljava/lang/String;)Lcom/facebook/react/turbomodule/core/interfaces/TurboModule;
|
||||
public fun unstable_enableSyncVoidMethods ()Z
|
||||
public fun unstable_isLegacyModuleRegistered (Ljava/lang/String;)Z
|
||||
public fun unstable_isModuleRegistered (Ljava/lang/String;)Z
|
||||
@@ -2846,6 +2846,7 @@ public class com/facebook/react/module/model/ReactModuleInfo {
|
||||
public fun <init> (Ljava/lang/String;Ljava/lang/String;ZZZZ)V
|
||||
public fun <init> (Ljava/lang/String;Ljava/lang/String;ZZZZZ)V
|
||||
public fun canOverrideExistingModule ()Z
|
||||
public static fun classIsTurboModule (Ljava/lang/Class;)Z
|
||||
public fun className ()Ljava/lang/String;
|
||||
public fun hasConstants ()Z
|
||||
public fun isCxxModule ()Z
|
||||
@@ -3189,7 +3190,7 @@ public class com/facebook/react/modules/dialog/DialogModule : com/facebook/fbrea
|
||||
public fun showAlert (Lcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/bridge/Callback;Lcom/facebook/react/bridge/Callback;)V
|
||||
}
|
||||
|
||||
public class com/facebook/react/modules/fresco/FrescoModule : com/facebook/react/bridge/ReactContextBaseJavaModule, com/facebook/react/bridge/LifecycleEventListener, com/facebook/react/internal/turbomodule/core/interfaces/TurboModule, com/facebook/react/modules/common/ModuleDataCleaner$Cleanable {
|
||||
public class com/facebook/react/modules/fresco/FrescoModule : com/facebook/react/bridge/ReactContextBaseJavaModule, com/facebook/react/bridge/LifecycleEventListener, com/facebook/react/modules/common/ModuleDataCleaner$Cleanable, com/facebook/react/turbomodule/core/interfaces/TurboModule {
|
||||
public static final field NAME Ljava/lang/String;
|
||||
public fun <init> (Lcom/facebook/react/bridge/ReactApplicationContext;)V
|
||||
public fun <init> (Lcom/facebook/react/bridge/ReactApplicationContext;Lcom/facebook/imagepipeline/core/ImagePipeline;Z)V
|
||||
@@ -3430,7 +3431,7 @@ public class com/facebook/react/modules/systeminfo/AndroidInfoHelpers {
|
||||
public static fun getServerHost (Ljava/lang/Integer;)Ljava/lang/String;
|
||||
}
|
||||
|
||||
public class com/facebook/react/modules/systeminfo/AndroidInfoModule : com/facebook/fbreact/specs/NativePlatformConstantsAndroidSpec, com/facebook/react/internal/turbomodule/core/interfaces/TurboModule {
|
||||
public class com/facebook/react/modules/systeminfo/AndroidInfoModule : com/facebook/fbreact/specs/NativePlatformConstantsAndroidSpec, com/facebook/react/turbomodule/core/interfaces/TurboModule {
|
||||
public fun <init> (Lcom/facebook/react/bridge/ReactApplicationContext;)V
|
||||
public fun getAndroidID ()Ljava/lang/String;
|
||||
public fun getTypedExportedConstants ()Ljava/util/Map;
|
||||
@@ -3797,7 +3798,9 @@ public abstract interface class com/facebook/react/turbomodule/core/interfaces/C
|
||||
public abstract interface class com/facebook/react/turbomodule/core/interfaces/NativeMethodCallInvokerHolder {
|
||||
}
|
||||
|
||||
public abstract interface class com/facebook/react/turbomodule/core/interfaces/TurboModule : com/facebook/react/internal/turbomodule/core/interfaces/TurboModule {
|
||||
public abstract interface class com/facebook/react/turbomodule/core/interfaces/TurboModule {
|
||||
public abstract fun initialize ()V
|
||||
public abstract fun invalidate ()V
|
||||
}
|
||||
|
||||
public abstract class com/facebook/react/uimanager/BaseViewManager : com/facebook/react/uimanager/ViewManager, android/view/View$OnLayoutChangeListener, com/facebook/react/uimanager/BaseViewManagerInterface {
|
||||
|
||||
+1
-2
@@ -17,7 +17,6 @@ import com.facebook.react.bridge.NativeModule;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactMarker;
|
||||
import com.facebook.react.devsupport.LogBoxModule;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule;
|
||||
import com.facebook.react.module.annotations.ReactModule;
|
||||
import com.facebook.react.module.annotations.ReactModuleList;
|
||||
import com.facebook.react.module.model.ReactModuleInfo;
|
||||
@@ -115,7 +114,7 @@ class CoreModulesPackage extends TurboReactPackage implements ReactPackageLogger
|
||||
reactModule.canOverrideExistingModule(),
|
||||
reactModule.needsEagerInit(),
|
||||
reactModule.isCxxModule(),
|
||||
TurboModule.class.isAssignableFrom(moduleClass)));
|
||||
ReactModuleInfo.classIsTurboModule(moduleClass)));
|
||||
}
|
||||
|
||||
return () -> reactModuleInfoMap;
|
||||
|
||||
+1
-2
@@ -12,7 +12,6 @@ import com.facebook.react.bridge.ModuleSpec;
|
||||
import com.facebook.react.bridge.NativeModule;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.devsupport.JSCHeapCapture;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule;
|
||||
import com.facebook.react.module.annotations.ReactModule;
|
||||
import com.facebook.react.module.annotations.ReactModuleList;
|
||||
import com.facebook.react.module.model.ReactModuleInfo;
|
||||
@@ -74,7 +73,7 @@ class DebugCorePackage extends TurboReactPackage implements ViewManagerOnDemandR
|
||||
reactModule.canOverrideExistingModule(),
|
||||
reactModule.needsEagerInit(),
|
||||
reactModule.isCxxModule(),
|
||||
TurboModule.class.isAssignableFrom(moduleClass)));
|
||||
ReactModuleInfo.classIsTurboModule(moduleClass)));
|
||||
}
|
||||
|
||||
return () -> reactModuleInfoMap;
|
||||
|
||||
+3
-3
@@ -16,9 +16,9 @@ import com.facebook.react.bridge.NativeModule;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.config.ReactFeatureFlags;
|
||||
import com.facebook.react.internal.turbomodule.core.TurboModuleManagerDelegate;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule;
|
||||
import com.facebook.react.module.annotations.ReactModule;
|
||||
import com.facebook.react.module.model.ReactModuleInfo;
|
||||
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -121,14 +121,14 @@ public abstract class ReactPackageTurboModuleManagerDelegate extends TurboModule
|
||||
reactModule.canOverrideExistingModule(),
|
||||
true,
|
||||
reactModule.isCxxModule(),
|
||||
TurboModule.class.isAssignableFrom(moduleClass))
|
||||
ReactModuleInfo.classIsTurboModule(moduleClass))
|
||||
: new ReactModuleInfo(
|
||||
moduleName,
|
||||
moduleClass.getName(),
|
||||
module.canOverrideExistingModule(),
|
||||
true,
|
||||
CxxModuleWrapper.class.isAssignableFrom(moduleClass),
|
||||
TurboModule.class.isAssignableFrom(moduleClass));
|
||||
ReactModuleInfo.classIsTurboModule(moduleClass));
|
||||
|
||||
reactModuleInfoMap.put(moduleName, moduleInfo);
|
||||
moduleMap.put(moduleName, module);
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ import static com.facebook.systrace.Systrace.TRACE_TAG_REACT_JAVA_BRIDGE;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import com.facebook.proguard.annotations.DoNotStrip;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule;
|
||||
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
||||
import com.facebook.systrace.Systrace;
|
||||
import com.facebook.systrace.SystraceMessage;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
+1
-2
@@ -20,7 +20,6 @@ import com.facebook.debug.tags.ReactDebugOverlayTags;
|
||||
import com.facebook.infer.annotation.Assertions;
|
||||
import com.facebook.proguard.annotations.DoNotStrip;
|
||||
import com.facebook.react.common.ReactConstants;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule;
|
||||
import com.facebook.react.module.model.ReactModuleInfo;
|
||||
import com.facebook.systrace.SystraceMessage;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
@@ -73,7 +72,7 @@ public class ModuleHolder {
|
||||
nativeModule.canOverrideExistingModule(),
|
||||
true,
|
||||
CxxModuleWrapper.class.isAssignableFrom(nativeModule.getClass()),
|
||||
TurboModule.class.isAssignableFrom(nativeModule.getClass()));
|
||||
ReactModuleInfo.classIsTurboModule(nativeModule.getClass()));
|
||||
|
||||
mModule = nativeModule;
|
||||
PrinterHolder.getPrinter()
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ import com.facebook.react.bridge.ReadableArray;
|
||||
import com.facebook.react.bridge.ReadableMap;
|
||||
import com.facebook.react.bridge.WritableArray;
|
||||
import com.facebook.react.bridge.WritableMap;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule;
|
||||
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
|
||||
+1
-1
@@ -19,12 +19,12 @@ import com.facebook.react.bridge.NativeModule;
|
||||
import com.facebook.react.bridge.ReactNoCrashSoftException;
|
||||
import com.facebook.react.bridge.ReactSoftExceptionLogger;
|
||||
import com.facebook.react.bridge.RuntimeExecutor;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.TurboModuleRegistry;
|
||||
import com.facebook.react.turbomodule.core.CallInvokerHolderImpl;
|
||||
import com.facebook.react.turbomodule.core.NativeMethodCallInvokerHolderImpl;
|
||||
import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder;
|
||||
import com.facebook.react.turbomodule.core.interfaces.NativeMethodCallInvokerHolder;
|
||||
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ import com.facebook.infer.annotation.Nullsafe;
|
||||
import com.facebook.jni.HybridData;
|
||||
import com.facebook.proguard.annotations.DoNotStrip;
|
||||
import com.facebook.react.bridge.NativeModule;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule;
|
||||
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
-19
@@ -1,19 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
package com.facebook.react.internal.turbomodule.core.interfaces
|
||||
/** All turbo modules should inherit from this interface */
|
||||
public interface TurboModule {
|
||||
/** Initialize the TurboModule. */
|
||||
public fun initialize()
|
||||
|
||||
/**
|
||||
* Called during the turn down process of ReactHost. This method is called before React Native is
|
||||
* stopped. Override this method to clean up resources used by the TurboModule.
|
||||
*/
|
||||
public fun invalidate()
|
||||
}
|
||||
+10
@@ -7,6 +7,8 @@
|
||||
|
||||
package com.facebook.react.module.model;
|
||||
|
||||
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
||||
|
||||
/**
|
||||
* Data holder class holding native module specifications. {@link ReactModuleSpecProcessor} creates
|
||||
* these so Java modules don't have to be instantiated at React Native start up.
|
||||
@@ -80,4 +82,12 @@ public class ReactModuleInfo {
|
||||
public boolean isTurboModule() {
|
||||
return mIsTurboModule;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the passed class is a TurboModule. Useful to populate the parameter [isTurboModule]
|
||||
* in the constructor of ReactModuleInfo.
|
||||
*/
|
||||
public static boolean classIsTurboModule(Class<?> clazz) {
|
||||
return TurboModule.class.isAssignableFrom(clazz);
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -161,13 +161,13 @@ public class ReactModuleSpecProcessor extends ProcessorBase {
|
||||
builder.addStatement("$T map = new $T()", MAP_TYPE, INSTANTIATED_MAP_TYPE);
|
||||
|
||||
String turboModuleInterfaceCanonicalName =
|
||||
"com.facebook.react.internal.turbomodule.core.interfaces.TurboModule";
|
||||
"com.facebook.react.turbomodule.core.interfaces.TurboModule";
|
||||
TypeMirror turboModuleInterface =
|
||||
mElements.getTypeElement(turboModuleInterfaceCanonicalName).asType();
|
||||
|
||||
if (turboModuleInterface == null) {
|
||||
throw new RuntimeException(
|
||||
"com.facebook.react.internal.turbomodule.core.interfaces.TurboModule interface not found.");
|
||||
"com.facebook.react.turbomodule.core.interfaces.TurboModule interface not found.");
|
||||
}
|
||||
|
||||
for (String nativeModule : nativeModules) {
|
||||
|
||||
+1
-1
@@ -19,12 +19,12 @@ import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.common.ReactConstants;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule;
|
||||
import com.facebook.react.module.annotations.ReactModule;
|
||||
import com.facebook.react.modules.common.ModuleDataCleaner;
|
||||
import com.facebook.react.modules.network.CookieJarContainer;
|
||||
import com.facebook.react.modules.network.ForwardingCookieHandler;
|
||||
import com.facebook.react.modules.network.OkHttpClientProvider;
|
||||
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
||||
import java.util.HashSet;
|
||||
import okhttp3.JavaNetCookieJar;
|
||||
import okhttp3.OkHttpClient;
|
||||
|
||||
+1
-1
@@ -18,8 +18,8 @@ import androidx.annotation.Nullable;
|
||||
import com.facebook.fbreact.specs.NativePlatformConstantsAndroidSpec;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.common.build.ReactBuildConfig;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule;
|
||||
import com.facebook.react.module.annotations.ReactModule;
|
||||
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
+1
-2
@@ -14,7 +14,6 @@ import com.facebook.react.bridge.NativeModule;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.devsupport.LogBoxModule;
|
||||
import com.facebook.react.devsupport.interfaces.DevSupportManager;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule;
|
||||
import com.facebook.react.module.annotations.ReactModule;
|
||||
import com.facebook.react.module.annotations.ReactModuleList;
|
||||
import com.facebook.react.module.model.ReactModuleInfo;
|
||||
@@ -103,7 +102,7 @@ class CoreReactPackage extends TurboReactPackage {
|
||||
reactModule.canOverrideExistingModule(),
|
||||
reactModule.needsEagerInit(),
|
||||
reactModule.isCxxModule(),
|
||||
TurboModule.class.isAssignableFrom(moduleClass)));
|
||||
ReactModuleInfo.classIsTurboModule(moduleClass)));
|
||||
}
|
||||
}
|
||||
return () -> reactModuleInfoMap;
|
||||
|
||||
+1
-2
@@ -15,7 +15,6 @@ import com.facebook.react.animated.NativeAnimatedModule;
|
||||
import com.facebook.react.bridge.ModuleSpec;
|
||||
import com.facebook.react.bridge.NativeModule;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule;
|
||||
import com.facebook.react.module.annotations.ReactModule;
|
||||
import com.facebook.react.module.annotations.ReactModuleList;
|
||||
import com.facebook.react.module.model.ReactModuleInfo;
|
||||
@@ -297,7 +296,7 @@ public class MainReactPackage extends TurboReactPackage implements ViewManagerOn
|
||||
reactModule.canOverrideExistingModule(),
|
||||
reactModule.needsEagerInit(),
|
||||
reactModule.isCxxModule(),
|
||||
TurboModule.class.isAssignableFrom(moduleClass)));
|
||||
ReactModuleInfo.classIsTurboModule(moduleClass)));
|
||||
}
|
||||
}
|
||||
return () -> reactModuleInfoMap;
|
||||
|
||||
+10
-11
@@ -6,15 +6,14 @@
|
||||
*/
|
||||
|
||||
package com.facebook.react.turbomodule.core.interfaces
|
||||
/** All turbo modules should inherit from this interface */
|
||||
public interface TurboModule {
|
||||
/** Initialize the TurboModule. */
|
||||
public fun initialize()
|
||||
|
||||
import com.facebook.react.common.annotations.DeprecatedInNewArchitecture
|
||||
|
||||
/**
|
||||
* This interface was introduced for backward compatibility purposes. This interface will be
|
||||
* deprecated as part of the deprecation and removal of ReactModuleInfoProvider in the near future.
|
||||
*
|
||||
* See description of https://github.com/facebook/react-native/pull/41412 for more context.
|
||||
*/
|
||||
@DeprecatedInNewArchitecture
|
||||
public interface TurboModule :
|
||||
com.facebook.react.internal.turbomodule.core.interfaces.TurboModule {}
|
||||
/**
|
||||
* Called during the turn down process of ReactHost. This method is called before React Native is
|
||||
* stopped. Override this method to clean up resources used by the TurboModule.
|
||||
*/
|
||||
public fun invalidate()
|
||||
}
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@
|
||||
|
||||
package com.facebook.react.bridge
|
||||
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule
|
||||
import com.facebook.react.turbomodule.core.interfaces.TurboModule
|
||||
import com.facebook.testutils.shadows.ShadowSoLoader
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
package com.facebook.react.modules.model
|
||||
|
||||
import com.facebook.react.module.model.ReactModuleInfo
|
||||
import com.facebook.react.turbomodule.core.interfaces.TurboModule
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Assert.assertFalse
|
||||
import org.junit.Assert.assertTrue
|
||||
import org.junit.Test
|
||||
|
||||
class ReactModuleInfoTest {
|
||||
|
||||
@Test
|
||||
fun testCreateReactModuleInfo() {
|
||||
val reactModuleInfo =
|
||||
ReactModuleInfo(
|
||||
/* name = */ "name",
|
||||
/* className = */ "class",
|
||||
/* canOverrideExistingModule = */ false,
|
||||
/* needsEagerInit = */ false,
|
||||
/* isCxxModule = */ false,
|
||||
/* isTurboModule = */ false)
|
||||
assertEquals("name", reactModuleInfo.name())
|
||||
assertFalse(reactModuleInfo.canOverrideExistingModule())
|
||||
assertFalse(reactModuleInfo.needsEagerInit())
|
||||
assertFalse(reactModuleInfo.isCxxModule)
|
||||
assertFalse(reactModuleInfo.isTurboModule)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun classIsTurboModule_withRandomClass() {
|
||||
assertFalse(ReactModuleInfo.classIsTurboModule(String::class.java))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun classIsTurboModule_withTurboModule() {
|
||||
assertTrue(ReactModuleInfo.classIsTurboModule(TestTurboModule::class.java))
|
||||
}
|
||||
|
||||
inner class TestTurboModule : TurboModule {
|
||||
override fun initialize() = Unit
|
||||
|
||||
override fun invalidate() = Unit
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -19,7 +19,7 @@ namespace facebook::react {
|
||||
|
||||
struct JTurboModule : jni::JavaClass<JTurboModule> {
|
||||
static auto constexpr kJavaDescriptor =
|
||||
"Lcom/facebook/react/internal/turbomodule/core/interfaces/TurboModule;";
|
||||
"Lcom/facebook/react/turbomodule/core/interfaces/TurboModule;";
|
||||
};
|
||||
|
||||
class JSI_EXPORT JavaTurboModule : public TurboModule {
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@ import com.facebook.react.bridge.ReadableMap;
|
||||
import com.facebook.react.bridge.WritableArray;
|
||||
import com.facebook.react.bridge.WritableMap;
|
||||
import com.facebook.react.common.build.ReactBuildConfig;
|
||||
import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule;
|
||||
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
|
||||
Reference in New Issue
Block a user