Skip to content

Commit f6d2e81

Browse files
committed
[TurboModule] Register a new TurboModulePackage
1 parent 7ae59dd commit f6d2e81

File tree

1 file changed

+40
-1
lines changed

1 file changed

+40
-1
lines changed

android/app/src/main/java/com/rnnewarchitectureapp/MainApplication.java

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,26 @@
44
import android.content.Context;
55

66
import androidx.annotation.NonNull;
7+
import androidx.annotation.Nullable;
78

89
import com.facebook.react.PackageList;
910
import com.facebook.react.ReactApplication;
1011
import com.facebook.react.ReactInstanceManager;
1112
import com.facebook.react.ReactNativeHost;
1213
import com.facebook.react.ReactPackage;
1314
import com.facebook.react.ReactPackageTurboModuleManagerDelegate;
15+
import com.facebook.react.TurboReactPackage;
16+
import com.facebook.react.bridge.NativeModule;
17+
import com.facebook.react.bridge.ReactApplicationContext;
18+
import com.facebook.react.module.model.ReactModuleInfo;
19+
import com.facebook.react.module.model.ReactModuleInfoProvider;
1420
import com.facebook.soloader.SoLoader;
1521
import com.rnnewarchitectureapp.modules.MainApplicationTurboModuleManagerDelegate;
22+
import com.rnnewarchitectureapp.modules.NativeAnswerSolver;
1623
import java.lang.reflect.InvocationTargetException;
24+
import java.util.HashMap;
1725
import java.util.List;
26+
import java.util.Map;
1827

1928
public class MainApplication extends Application implements ReactApplication {
2029

@@ -27,10 +36,40 @@ public boolean getUseDeveloperSupport() {
2736

2837
@Override
2938
protected List<ReactPackage> getPackages() {
30-
@SuppressWarnings("UnnecessaryLocalVariable")
3139
List<ReactPackage> packages = new PackageList(this).getPackages();
3240
// Packages that cannot be autolinked yet can be added manually here, for example:
3341
// packages.add(new MyReactNativePackage());
42+
packages.add(new TurboReactPackage() {
43+
@Nullable
44+
@Override
45+
public NativeModule getModule(String name, ReactApplicationContext reactContext) {
46+
if (name.equals(NativeAnswerSolver.NAME)) {
47+
return new NativeAnswerSolver(reactContext);
48+
} else {
49+
return null;
50+
}
51+
}
52+
53+
@Override
54+
public ReactModuleInfoProvider getReactModuleInfoProvider() {
55+
return () -> {
56+
final Map<String, ReactModuleInfo> moduleInfos = new HashMap<>();
57+
moduleInfos.put(
58+
NativeAnswerSolver.NAME,
59+
new ReactModuleInfo(
60+
NativeAnswerSolver.NAME,
61+
"NativeAnswerSolver",
62+
false, // canOverrideExistingModule
63+
false, // needsEagerInit
64+
true, // hasConstants
65+
false, // isCxxModule
66+
true // isTurboModule
67+
)
68+
);
69+
return moduleInfos;
70+
};
71+
}
72+
});
3473
return packages;
3574
}
3675

0 commit comments

Comments
 (0)