1
1
package com.microsoft.reacttestapp
2
2
3
3
import android.app.Application
4
+ import com.facebook.react.PackageList
4
5
import com.facebook.react.ReactApplication
5
6
import com.microsoft.reacttestapp.di.DaggerTestAppComponent
6
7
import com.microsoft.reacttestapp.react.TestAppReactNativeHost
@@ -9,6 +10,16 @@ import dagger.android.DispatchingAndroidInjector
9
10
import dagger.android.HasAndroidInjector
10
11
import javax.inject.Inject
11
12
13
+ private fun PackageList.invokeLifecycleMethod (name : String ) {
14
+ packages.forEach {
15
+ try {
16
+ val methodToFind = it.javaClass.getMethod(name)
17
+ methodToFind.invoke(it)
18
+ } catch (e: NoSuchMethodException ) {
19
+ }
20
+ }
21
+ }
22
+
12
23
class TestApp : Application (), HasAndroidInjector, ReactApplication {
13
24
14
25
@Inject
@@ -20,12 +31,15 @@ class TestApp : Application(), HasAndroidInjector, ReactApplication {
20
31
override fun onCreate () {
21
32
super .onCreate()
22
33
23
- val testAppComponent = DaggerTestAppComponent .builder()
24
- .binds(this )
25
- .build()
34
+ val packageList = PackageList (this )
35
+ packageList.invokeLifecycleMethod(" onAppCreated" )
26
36
37
+ val testAppComponent = DaggerTestAppComponent .builder()
38
+ .binds(this )
39
+ .build()
27
40
testAppComponent.inject(this )
28
41
42
+ packageList.invokeLifecycleMethod(" onPreReactNativeInit" )
29
43
reactNativeHostInternal.init ()
30
44
}
31
45
0 commit comments