@@ -47,20 +47,39 @@ private constructor(
47
47
48
48
class Builder : ReactPackageTurboModuleManagerDelegate .Builder () {
49
49
private var eagerInitModuleNames: List <String > = emptyList()
50
- private var cxxReactPackages: MutableList <CxxReactPackage > = mutableListOf ()
50
+ private var cxxReactPackageProviders:
51
+ MutableList < ((context: ReactApplicationContext ) -> CxxReactPackage )> =
52
+ mutableListOf ()
51
53
52
54
fun setEagerInitModuleNames (eagerInitModuleNames : List <String >): Builder {
53
55
this .eagerInitModuleNames = eagerInitModuleNames
54
56
return this
55
57
}
56
58
57
- fun addCxxReactPackage (cxxReactPackage : CxxReactPackage ): Builder {
58
- this .cxxReactPackages .add(cxxReactPackage )
59
+ fun addCxxReactPackage (provider : () -> CxxReactPackage ): Builder {
60
+ this .cxxReactPackageProviders .add({ _ -> provider() } )
59
61
return this
60
62
}
61
63
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
+ }
64
83
}
65
84
66
85
companion object {
0 commit comments