Skip to content

Commit 2689d4d

Browse files
cortinicofacebook-github-bot
authored andcommitted
RNTester should not use ReactNativeHost (#53398)
Summary: Pull Request resolved: #53398 ReactNativeHost is a legacy architecture class. This migrates the app away from it and converts it to use DefaultReactHost instead. Changelog: [Internal] [Changed] - Reviewed By: mdvacca Differential Revision: D80708460 fbshipit-source-id: 7d88c440414c979a2968fc9c910e828f5851195c
1 parent d35ddb5 commit 2689d4d

File tree

1 file changed

+77
-88
lines changed

1 file changed

+77
-88
lines changed

packages/rn-tester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterApplication.kt

Lines changed: 77 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,12 @@ import com.facebook.react.PackageList
1717
import com.facebook.react.ReactApplication
1818
import com.facebook.react.ReactHost
1919
import com.facebook.react.ReactNativeApplicationEntryPoint.loadReactNative
20-
import com.facebook.react.ReactNativeHost
2120
import com.facebook.react.ReactPackage
2221
import com.facebook.react.ViewManagerOnDemandReactPackage
2322
import com.facebook.react.bridge.NativeModule
2423
import com.facebook.react.bridge.ReactApplicationContext
2524
import com.facebook.react.common.assets.ReactFontManager
2625
import com.facebook.react.defaults.DefaultReactHost
27-
import com.facebook.react.defaults.DefaultReactNativeHost
2826
import com.facebook.react.module.model.ReactModuleInfo
2927
import com.facebook.react.module.model.ReactModuleInfoProvider
3028
import com.facebook.react.uiapp.component.MyLegacyViewManager
@@ -34,100 +32,91 @@ import com.facebook.react.uimanager.ReactShadowNode
3432
import com.facebook.react.uimanager.ViewManager
3533

3634
internal class RNTesterApplication : Application(), ReactApplication {
37-
@Deprecated(
38-
"You should not use ReactNativeHost directly in the New Architecture. Use ReactHost instead.",
39-
replaceWith = ReplaceWith("reactHost"),
40-
)
41-
override val reactNativeHost: ReactNativeHost by
35+
override val reactHost: ReactHost by
4236
lazy(LazyThreadSafetyMode.NONE) {
43-
object : DefaultReactNativeHost(this) {
44-
public override fun getJSMainModuleName(): String = BuildConfig.JS_MAIN_MODULE_NAME
37+
val packages: List<ReactPackage> =
38+
PackageList(this@RNTesterApplication).packages.apply {
39+
add(
40+
object : BaseReactPackage() {
41+
override fun getModule(
42+
name: String,
43+
reactContext: ReactApplicationContext,
44+
): NativeModule? =
45+
when (name) {
46+
SampleTurboModule.NAME -> SampleTurboModule(reactContext)
47+
SampleLegacyModule.NAME -> SampleLegacyModule(reactContext)
48+
else -> null
49+
}
4550

46-
public override fun getBundleAssetName(): String = BuildConfig.BUNDLE_ASSET_NAME
47-
48-
override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG
49-
50-
public override fun getPackages(): List<ReactPackage> =
51-
PackageList(this).packages.apply {
52-
add(
53-
object : BaseReactPackage() {
54-
override fun getModule(
55-
name: String,
56-
reactContext: ReactApplicationContext,
57-
): NativeModule? =
58-
when {
59-
SampleTurboModule.NAME == name -> SampleTurboModule(reactContext)
60-
SampleLegacyModule.NAME == name -> SampleLegacyModule(reactContext)
61-
else -> null
62-
}
63-
64-
// Note: Specialized annotation processor for @ReactModule isn't configured in
65-
// OSS yet. For now, hardcode this information, though it's not necessary for
66-
// most modules.
67-
override fun getReactModuleInfoProvider(): ReactModuleInfoProvider =
68-
ReactModuleInfoProvider {
69-
mapOf(
70-
SampleTurboModule.NAME to
71-
ReactModuleInfo(
72-
SampleTurboModule.NAME,
73-
"SampleTurboModule",
74-
canOverrideExistingModule = false,
75-
needsEagerInit = false,
76-
isCxxModule = false,
77-
isTurboModule = true,
78-
),
79-
SampleLegacyModule.NAME to
80-
ReactModuleInfo(
81-
SampleLegacyModule.NAME,
82-
"SampleLegacyModule",
83-
canOverrideExistingModule = false,
84-
needsEagerInit = false,
85-
isCxxModule = false,
86-
isTurboModule = false,
87-
),
88-
)
89-
}
90-
}
91-
)
92-
add(
93-
object : ReactPackage, ViewManagerOnDemandReactPackage {
94-
override fun getViewManagerNames(reactContext: ReactApplicationContext) =
95-
listOf(
96-
"RNTMyNativeView",
97-
"RNTMyLegacyNativeView",
98-
"RNTReportFullyDrawnView",
51+
// Note: Specialized annotation processor for @ReactModule isn't configured in
52+
// OSS yet. For now, hardcode this information, though it's not necessary for
53+
// most modules.
54+
override fun getReactModuleInfoProvider(): ReactModuleInfoProvider =
55+
ReactModuleInfoProvider {
56+
mapOf(
57+
SampleTurboModule.NAME to
58+
ReactModuleInfo(
59+
SampleTurboModule.NAME,
60+
"SampleTurboModule",
61+
canOverrideExistingModule = false,
62+
needsEagerInit = false,
63+
isCxxModule = false,
64+
isTurboModule = true,
65+
),
66+
SampleLegacyModule.NAME to
67+
ReactModuleInfo(
68+
SampleLegacyModule.NAME,
69+
"SampleLegacyModule",
70+
canOverrideExistingModule = false,
71+
needsEagerInit = false,
72+
isCxxModule = false,
73+
isTurboModule = false,
74+
),
9975
)
76+
}
77+
}
78+
)
79+
add(
80+
object : ReactPackage, ViewManagerOnDemandReactPackage {
81+
override fun getViewManagerNames(reactContext: ReactApplicationContext) =
82+
listOf(
83+
"RNTMyNativeView",
84+
"RNTMyLegacyNativeView",
85+
"RNTReportFullyDrawnView",
86+
)
10087

101-
override fun createViewManagers(
102-
reactContext: ReactApplicationContext
103-
): List<ViewManager<*, *>> =
104-
listOf(
105-
MyNativeViewManager(),
106-
MyLegacyViewManager(reactContext),
107-
ReportFullyDrawnViewManager(),
108-
)
88+
override fun createViewManagers(
89+
reactContext: ReactApplicationContext
90+
): List<ViewManager<*, *>> =
91+
listOf(
92+
MyNativeViewManager(),
93+
MyLegacyViewManager(reactContext),
94+
ReportFullyDrawnViewManager(),
95+
)
10996

110-
override fun createViewManager(
111-
reactContext: ReactApplicationContext,
112-
viewManagerName: String,
113-
): ViewManager<*, out ReactShadowNode<*>>? =
114-
when (viewManagerName) {
115-
"RNTMyNativeView" -> MyNativeViewManager()
116-
"RNTMyLegacyNativeView" -> MyLegacyViewManager(reactContext)
117-
"RNTReportFullyDrawnView" -> ReportFullyDrawnViewManager()
118-
else -> null
119-
}
120-
}
121-
)
122-
}
97+
override fun createViewManager(
98+
reactContext: ReactApplicationContext,
99+
viewManagerName: String,
100+
): ViewManager<*, out ReactShadowNode<*>>? =
101+
when (viewManagerName) {
102+
"RNTMyNativeView" -> MyNativeViewManager()
103+
"RNTMyLegacyNativeView" -> MyLegacyViewManager(reactContext)
104+
"RNTReportFullyDrawnView" -> ReportFullyDrawnViewManager()
105+
else -> null
106+
}
107+
}
108+
)
109+
}
123110

124-
override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED
125-
}
111+
DefaultReactHost.getDefaultReactHost(
112+
applicationContext,
113+
packages,
114+
jsMainModulePath = BuildConfig.JS_MAIN_MODULE_NAME,
115+
jsBundleAssetPath = BuildConfig.BUNDLE_ASSET_NAME,
116+
useDevSupport = BuildConfig.DEBUG,
117+
)
126118
}
127119

128-
override val reactHost: ReactHost
129-
get() = DefaultReactHost.getDefaultReactHost(applicationContext, reactNativeHost)
130-
131120
override fun onCreate() {
132121
ReactFontManager.getInstance().addCustomFont(this, "Rubik", R.font.rubik)
133122
super.onCreate()

0 commit comments

Comments
 (0)