Skip to content

Commit dac613f

Browse files
committed
Call native package if lifecycle methods are present
1 parent a8fd1dd commit dac613f

File tree

1 file changed

+17
-3
lines changed
  • android/app/src/main/java/com/microsoft/reacttestapp

1 file changed

+17
-3
lines changed

android/app/src/main/java/com/microsoft/reacttestapp/TestApp.kt

+17-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.microsoft.reacttestapp
22

33
import android.app.Application
4+
import com.facebook.react.PackageList
45
import com.facebook.react.ReactApplication
56
import com.microsoft.reacttestapp.di.DaggerTestAppComponent
67
import com.microsoft.reacttestapp.react.TestAppReactNativeHost
@@ -9,6 +10,16 @@ import dagger.android.DispatchingAndroidInjector
910
import dagger.android.HasAndroidInjector
1011
import javax.inject.Inject
1112

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+
1223
class TestApp : Application(), HasAndroidInjector, ReactApplication {
1324

1425
@Inject
@@ -20,12 +31,15 @@ class TestApp : Application(), HasAndroidInjector, ReactApplication {
2031
override fun onCreate() {
2132
super.onCreate()
2233

23-
val testAppComponent = DaggerTestAppComponent.builder()
24-
.binds(this)
25-
.build()
34+
val packageList = PackageList(this)
35+
packageList.invokeLifecycleMethod("onAppCreated")
2636

37+
val testAppComponent = DaggerTestAppComponent.builder()
38+
.binds(this)
39+
.build()
2740
testAppComponent.inject(this)
2841

42+
packageList.invokeLifecycleMethod("onPreReactNativeInit")
2943
reactNativeHostInternal.init()
3044
}
3145

0 commit comments

Comments
 (0)