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) { 14 override fun getDevSupportManagerFactory(): DevSupportManagerFactory? { 15 return reactNativeHostHandlers 16 .asSequence() 17 .mapNotNull { it.devSupportManagerFactory } 18 .firstOrNull() as DevSupportManagerFactory? 19 ?: invokeDelegateMethod("getDevSupportManagerFactory") 20 } 21 22 override fun getReactPackageTurboModuleManagerDelegateBuilder(): ReactPackageTurboModuleManagerDelegate.Builder? { 23 return invokeDelegateMethod("getReactPackageTurboModuleManagerDelegateBuilder") 24 } 25 26 override fun getShouldRequireActivity(): Boolean { 27 return host.shouldRequireActivity 28 } 29 30 override fun getSurfaceDelegateFactory(): SurfaceDelegateFactory { 31 return host.surfaceDelegateFactory 32 } 33 34 override fun getRedBoxHandler(): RedBoxHandler? { 35 return invokeDelegateMethod("getRedBoxHandler") 36 } 37 } 38