1
1
package com.callstack.reactnativebrownfield ;
2
2
3
3
import android.annotation.TargetApi
4
- import android.content.Context
5
- import android.content.Intent
6
4
import android.os.Build
7
5
import android.os.Bundle
8
6
import androidx.fragment.app.Fragment
@@ -13,8 +11,6 @@ import android.view.ViewGroup
13
11
import com.facebook.infer.annotation.Assertions
14
12
import com.facebook.react.ReactRootView
15
13
import com.facebook.react.bridge.Callback
16
- import com.facebook.react.bridge.ReadableArray
17
- import com.facebook.react.bridge.ReadableMap
18
14
import com.facebook.react.bridge.WritableMap
19
15
import com.facebook.react.common.LifecycleState
20
16
import com.facebook.react.devsupport.DoubleTapReloadRecognizer
@@ -28,14 +24,13 @@ private const val INITIAL_PROPS = "com.callstack.reactnativebrownfield.FRAGMENT_
28
24
class ReactNativeFragment : Fragment (), PermissionAwareActivity {
29
25
30
26
private var reactRootView: ReactRootView ? = null
31
- private lateinit var moduleName: String
32
27
private lateinit var doubleTapReloadRecognizer: DoubleTapReloadRecognizer
33
28
private lateinit var permissionsCallback: Callback
34
29
private var permissionListener: PermissionListener ? = null
35
30
36
31
override fun onCreate (savedInstanceState : Bundle ? ) {
37
32
super .onCreate(savedInstanceState)
38
- moduleName = arguments?.getString(MODULE_NAME )!!
33
+ val moduleName = arguments?.getString(MODULE_NAME )!!
39
34
val initialProps = arguments?.getBundle(INITIAL_PROPS )
40
35
41
36
doubleTapReloadRecognizer = DoubleTapReloadRecognizer ()
@@ -44,7 +39,7 @@ class ReactNativeFragment : Fragment(), PermissionAwareActivity {
44
39
reactRootView?.startReactApplication(
45
40
BridgeManager .shared.reactNativeHost.reactInstanceManager,
46
41
moduleName,
47
- null
42
+ initialProps
48
43
)
49
44
}
50
45
@@ -167,36 +162,13 @@ class ReactNativeFragment : Fragment(), PermissionAwareActivity {
167
162
}
168
163
169
164
@JvmStatic
170
- fun createReactNativeFragment (moduleName : String , initialProps : WritableMap ): ReactNativeFragment {
171
- val bundle = Bundle ()
172
- initialProps.toHashMap().forEach {
173
- when (it.value) {
174
- // Should we go recursively with arrays and maps?
175
- is ReadableArray -> {
176
- bundle.putSerializable(it.key, (it.value as ReadableArray ).toArrayList())
177
- }
178
- is ReadableMap -> {
179
- bundle.putSerializable(it.key, (it.value as ReadableMap ).toHashMap())
180
- }
181
- is Boolean -> {
182
- bundle.putBoolean(it.key, it.value as Boolean )
183
- }
184
- is Int -> {
185
- bundle.putInt(it.key, it.value as Int )
186
- }
187
- is String -> {
188
- bundle.putString(it.key, it.value as String )
189
- }
190
- is Double -> {
191
- bundle.putDouble(it.key, it.value as Double )
192
- }
193
- else -> {
194
- bundle.putSerializable(it.key, null )
195
- }
196
- }
197
- }
165
+ fun createReactNativeFragment (moduleName : String , initialProps : HashMap <String , * >): ReactNativeFragment {
166
+ return createReactNativeFragment(moduleName, PropsBundle .fromHashMap(initialProps))
167
+ }
198
168
199
- return createReactNativeFragment(moduleName, bundle)
169
+ @JvmStatic
170
+ fun createReactNativeFragment (moduleName : String , initialProps : WritableMap ): ReactNativeFragment {
171
+ return createReactNativeFragment(moduleName, initialProps.toHashMap())
200
172
}
201
173
}
202
174
0 commit comments