Skip to content

Commit 73d0cf5

Browse files
RSNarafacebook-github-bot
authored andcommitted
Introduce cxxreactpackage provider into default tmmdelegate (#41735)
Summary: Pull Request resolved: #41735 Changelog: [Internal] Reviewed By: christophpurrer Differential Revision: D51734655 fbshipit-source-id: 2966e9d7ef0af852750c35b35ec39d9e8f9b9a80
1 parent 1c57e96 commit 73d0cf5

File tree

1 file changed

+24
-5
lines changed

1 file changed

+24
-5
lines changed

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultTurboModuleManagerDelegate.kt

+24-5
Original file line numberDiff line numberDiff line change
@@ -47,20 +47,39 @@ private constructor(
4747

4848
class Builder : ReactPackageTurboModuleManagerDelegate.Builder() {
4949
private var eagerInitModuleNames: List<String> = emptyList()
50-
private var cxxReactPackages: MutableList<CxxReactPackage> = mutableListOf()
50+
private var cxxReactPackageProviders:
51+
MutableList<((context: ReactApplicationContext) -> CxxReactPackage)> =
52+
mutableListOf()
5153

5254
fun setEagerInitModuleNames(eagerInitModuleNames: List<String>): Builder {
5355
this.eagerInitModuleNames = eagerInitModuleNames
5456
return this
5557
}
5658

57-
fun addCxxReactPackage(cxxReactPackage: CxxReactPackage): Builder {
58-
this.cxxReactPackages.add(cxxReactPackage)
59+
fun addCxxReactPackage(provider: () -> CxxReactPackage): Builder {
60+
this.cxxReactPackageProviders.add({ _ -> provider() })
5961
return this
6062
}
6163

62-
override fun build(context: ReactApplicationContext, packages: List<ReactPackage>) =
63-
DefaultTurboModuleManagerDelegate(context, packages, eagerInitModuleNames, cxxReactPackages)
64+
fun addCxxReactPackage(
65+
provider: (context: ReactApplicationContext) -> CxxReactPackage
66+
): Builder {
67+
this.cxxReactPackageProviders.add(provider)
68+
return this
69+
}
70+
71+
override fun build(
72+
context: ReactApplicationContext,
73+
packages: List<ReactPackage>
74+
): DefaultTurboModuleManagerDelegate {
75+
val cxxReactPackages = mutableListOf<CxxReactPackage>()
76+
for (cxxReactPackageProvider in cxxReactPackageProviders) {
77+
cxxReactPackages.add(cxxReactPackageProvider(context))
78+
}
79+
80+
return DefaultTurboModuleManagerDelegate(
81+
context, packages, eagerInitModuleNames, cxxReactPackages)
82+
}
6483
}
6584

6685
companion object {

0 commit comments

Comments
 (0)