1 package expo.modules
2 
3 import android.app.Application
4 import com.facebook.react.ReactNativeHost
5 import com.facebook.react.ReactPackageTurboModuleManagerDelegate
6 import com.facebook.react.common.SurfaceDelegateFactory
7 import com.facebook.react.devsupport.DevSupportManagerFactory
8 import com.facebook.react.devsupport.interfaces.RedBoxHandler
9 
10 class ReactNativeHostWrapper(
11   application: Application,
12   host: ReactNativeHost
13 ) : ReactNativeHostWrapperBase(application, host) {
getDevSupportManagerFactorynull14   override fun getDevSupportManagerFactory(): DevSupportManagerFactory? {
15     return reactNativeHostHandlers
16       .asSequence()
17       .mapNotNull { it.devSupportManagerFactory }
18       .firstOrNull() as DevSupportManagerFactory?
19       ?: invokeDelegateMethod("getDevSupportManagerFactory")
20   }
21 
getReactPackageTurboModuleManagerDelegateBuildernull22   override fun getReactPackageTurboModuleManagerDelegateBuilder(): ReactPackageTurboModuleManagerDelegate.Builder? {
23     return invokeDelegateMethod("getReactPackageTurboModuleManagerDelegateBuilder")
24   }
25 
getShouldRequireActivitynull26   override fun getShouldRequireActivity(): Boolean {
27     return host.shouldRequireActivity
28   }
29 
getSurfaceDelegateFactorynull30   override fun getSurfaceDelegateFactory(): SurfaceDelegateFactory {
31     return host.surfaceDelegateFactory
32   }
33 
getRedBoxHandlernull34   override fun getRedBoxHandler(): RedBoxHandler? {
35     return invokeDelegateMethod("getRedBoxHandler")
36   }
37 }
38