Skip to content

Commit 0686296

Browse files
authored
fix(android): handle ReactRootView deprecation in 0.86 (#2750)
1 parent c9958b1 commit 0686296

4 files changed

Lines changed: 58 additions & 1 deletion

File tree

packages/app/android/app/build.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,10 @@ android {
188188
"src/reactactivitydelegate-0.75/java",
189189
"src/reactapplication-0.76/java",
190190
"src/reacthost-0.76/java",
191+
192+
reactNativeVersion >= v(0, 82, 0)
193+
? "src/reactsurface-0.82/java"
194+
: "src/reactsurface-old/java"
191195
]
192196
}
193197

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.microsoft.reacttestapp.component
2+
3+
import android.os.Bundle
4+
import android.view.LayoutInflater
5+
import android.view.View
6+
import android.view.ViewGroup
7+
import com.facebook.react.ReactActivity
8+
import com.facebook.react.ReactRootView
9+
import com.facebook.react.interfaces.fabric.ReactSurface
10+
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
11+
import com.microsoft.reacttestapp.TestApp
12+
13+
class ComponentBottomSheetDialogFragment : BottomSheetDialogFragment() {
14+
15+
companion object {
16+
const val TAG = "ReactComponentBottomSheetDialog"
17+
18+
private const val DISPLAY_NAME = "displayName"
19+
private const val INITIAL_PROPERTIES = "initialProperties"
20+
private const val NAME = "name"
21+
22+
fun newInstance(component: ComponentViewModel): ComponentBottomSheetDialogFragment {
23+
val args = Bundle()
24+
args.putString(NAME, component.name)
25+
args.putString(DISPLAY_NAME, component.displayName)
26+
args.putBundle(INITIAL_PROPERTIES, component.initialProperties)
27+
28+
val fragment = ComponentBottomSheetDialogFragment()
29+
fragment.arguments = args
30+
return fragment
31+
}
32+
}
33+
34+
private var surface: ReactSurface? = null
35+
36+
override fun onCreateView(
37+
inflater: LayoutInflater,
38+
container: ViewGroup?,
39+
savedInstanceState: Bundle?
40+
): View {
41+
val activity = requireActivity() as ReactActivity
42+
val application = activity.application as TestApp
43+
val surface = application.reactHost.createSurface(
44+
activity,
45+
requireNotNull(requireArguments().getString(NAME)),
46+
requireArguments().getBundle(INITIAL_PROPERTIES)
47+
)
48+
this.surface = requireNotNull(surface)
49+
surface.start()
50+
return surface.view as View
51+
}
52+
}

packages/app/android/app/src/main/java/com/microsoft/reacttestapp/component/ComponentBottomSheetDialogFragment.kt renamed to packages/app/android/app/src/reactsurface-old/java/com/microsoft/reacttestapp/component/ComponentBottomSheetDialogFragment.kt

File renamed without changes.

packages/app/test/pack.test.mts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ describe("npm pack", () => {
3939
"android/app/src/main/java/com/microsoft/reacttestapp/MainActivity.kt",
4040
"android/app/src/main/java/com/microsoft/reacttestapp/Session.kt",
4141
"android/app/src/main/java/com/microsoft/reacttestapp/component/ComponentActivity.kt",
42-
"android/app/src/main/java/com/microsoft/reacttestapp/component/ComponentBottomSheetDialogFragment.kt",
4342
"android/app/src/main/java/com/microsoft/reacttestapp/component/ComponentListAdapter.kt",
4443
"android/app/src/main/java/com/microsoft/reacttestapp/component/ComponentViewModel.kt",
4544
"android/app/src/main/java/com/microsoft/reacttestapp/manifest/Manifest.kt",
@@ -88,6 +87,8 @@ describe("npm pack", () => {
8887
"android/app/src/reactactivitydelegate-0.75/java/com/microsoft/reacttestapp/component/ComponentActivityDelegate.kt",
8988
"android/app/src/reactapplication-0.76/java/com/microsoft/reacttestapp/TestApp.kt",
9089
"android/app/src/reacthost-0.76/java/com/microsoft/reacttetapp/react/MainReactNativeHost.kt",
90+
"android/app/src/reactsurface-0.82/java/com/microsoft/reacttestapp/component/ComponentBottomSheetDialogFragment.kt",
91+
"android/app/src/reactsurface-old/java/com/microsoft/reacttestapp/component/ComponentBottomSheetDialogFragment.kt",
9192
"android/autolink.gradle",
9293
"android/autolink.mjs",
9394
"android/config-plugins.gradle",

0 commit comments

Comments
 (0)