react-native-navigation 8.3.1 → 8.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -36,20 +36,22 @@ class NavigationTurboModule(
36
36
  override fun onHostPause() {
37
37
  super.onHostPause()
38
38
  UiUtils.runOnMainThread {
39
- navigator().onHostPause()
39
+ navigator()?.onHostPause()
40
40
  }
41
41
  }
42
42
 
43
43
  override fun onHostResume() {
44
44
  eventEmitter = EventEmitter(reactContext)
45
- navigator().setEventEmitter(eventEmitter)
46
- layoutFactory.init(
47
- activity(),
48
- eventEmitter,
49
- navigator().getChildRegistry(),
50
- (activity().application as NavigationApplication).externalComponents
51
- )
52
- UiUtils.runOnMainThread { navigator().onHostResume() }
45
+ navigator()?.let { navigator: Navigator ->
46
+ navigator.setEventEmitter(eventEmitter)
47
+ layoutFactory.init(
48
+ activity(),
49
+ eventEmitter,
50
+ navigator.childRegistry,
51
+ (reactApplicationContext.applicationContext as NavigationApplication).externalComponents
52
+ )
53
+ UiUtils.runOnMainThread { navigator.onHostResume() }
54
+ }
53
55
  }
54
56
  })
55
57
  }
@@ -82,7 +84,7 @@ class NavigationTurboModule(
82
84
  handle {
83
85
  Log.d("NavigationTurboModule", "setRoot handle ${Thread.currentThread()}")
84
86
  val viewController = layoutFactory.create(layoutTree)
85
- navigator().setRoot(
87
+ navigator()?.setRoot(
86
88
  viewController,
87
89
  NativeCommandListener("setRoot", commandId, promise, eventEmitter, now)
88
90
  )
@@ -93,12 +95,12 @@ class NavigationTurboModule(
93
95
  handle {
94
96
  val defaultOptions = parse(options)
95
97
  layoutFactory.defaultOptions = defaultOptions
96
- navigator().defaultOptions = defaultOptions
98
+ navigator()?.defaultOptions = defaultOptions
97
99
  }
98
100
  }
99
101
 
100
102
  override fun mergeOptions(componentId: String?, options: ReadableMap?) {
101
- handle { navigator().mergeOptions(componentId, parse(options)) }
103
+ handle { navigator()?.mergeOptions(componentId, parse(options)) }
102
104
  }
103
105
 
104
106
  override fun push(
@@ -110,7 +112,7 @@ class NavigationTurboModule(
110
112
  val layoutTree = LayoutNodeParser.parse(jsonParser.parse(layout))
111
113
  handle {
112
114
  val viewController = layoutFactory.create(layoutTree)
113
- navigator().push(
115
+ navigator()?.push(
114
116
  componentId,
115
117
  viewController,
116
118
  NativeCommandListener("push", commandId, promise, eventEmitter, now)
@@ -125,7 +127,7 @@ class NavigationTurboModule(
125
127
  promise: Promise
126
128
  ) {
127
129
  handle {
128
- navigator().pop(
130
+ navigator()?.pop(
129
131
  componentId,
130
132
  parse(options),
131
133
  NativeCommandListener("pop", commandId, promise, eventEmitter, now)
@@ -140,7 +142,7 @@ class NavigationTurboModule(
140
142
  promise: Promise
141
143
  ) {
142
144
  handle {
143
- navigator().popTo(
145
+ navigator()?.popTo(
144
146
  componentId,
145
147
  parse(options),
146
148
  NativeCommandListener("popTo", commandId, promise, eventEmitter, now)
@@ -155,7 +157,7 @@ class NavigationTurboModule(
155
157
  promise: Promise
156
158
  ) {
157
159
  handle {
158
- navigator().popToRoot(
160
+ navigator()?.popToRoot(
159
161
  componentId,
160
162
  parse(options),
161
163
  NativeCommandListener("popToRoot", commandId, promise, eventEmitter, now)
@@ -175,7 +177,7 @@ class NavigationTurboModule(
175
177
  val layoutTree = LayoutNodeParser.parse(jsonParser.parse(children.getMap(i)))
176
178
  _children.add(layoutFactory.create(layoutTree))
177
179
  }
178
- navigator().setStackRoot(
180
+ navigator()?.setStackRoot(
179
181
  componentId,
180
182
  _children,
181
183
  NativeCommandListener("setStackRoot", commandId, promise, eventEmitter, now)
@@ -187,7 +189,7 @@ class NavigationTurboModule(
187
189
  val layoutTree = LayoutNodeParser.parse(jsonParser.parse(layout))
188
190
  handle {
189
191
  val viewController = layoutFactory.create(layoutTree)
190
- navigator().showModal(
192
+ navigator()?.showModal(
191
193
  viewController,
192
194
  NativeCommandListener("showModal", commandId, promise, eventEmitter, now)
193
195
  )
@@ -201,8 +203,8 @@ class NavigationTurboModule(
201
203
  promise: Promise
202
204
  ) {
203
205
  handle {
204
- navigator().mergeOptions(componentId, parse(options))
205
- navigator().dismissModal(
206
+ navigator()?.mergeOptions(componentId, parse(options))
207
+ navigator()?.dismissModal(
206
208
  componentId,
207
209
  NativeCommandListener("dismissModal", commandId, promise, eventEmitter, now)
208
210
  )
@@ -211,7 +213,7 @@ class NavigationTurboModule(
211
213
 
212
214
  override fun dismissAllModals(commandId: String, options: ReadableMap?, promise: Promise) {
213
215
  handle {
214
- navigator().dismissAllModals(
216
+ navigator()?.dismissAllModals(
215
217
  parse(options),
216
218
  NativeCommandListener("dismissAllModals", commandId, promise, eventEmitter, now)
217
219
  )
@@ -222,7 +224,7 @@ class NavigationTurboModule(
222
224
  val layoutTree = LayoutNodeParser.parse(jsonParser.parse(layout))
223
225
  handle {
224
226
  val viewController = layoutFactory.create(layoutTree)
225
- navigator().showOverlay(
227
+ navigator()?.showOverlay(
226
228
  viewController,
227
229
  NativeCommandListener("showOverlay", commandId, promise, eventEmitter, now)
228
230
  )
@@ -231,7 +233,7 @@ class NavigationTurboModule(
231
233
 
232
234
  override fun dismissOverlay(commandId: String, componentId: String, promise: Promise) {
233
235
  handle {
234
- navigator().dismissOverlay(
236
+ navigator()?.dismissOverlay(
235
237
  componentId,
236
238
  NativeCommandListener("dismissOverlay", commandId, promise, eventEmitter, now)
237
239
  )
@@ -240,7 +242,7 @@ class NavigationTurboModule(
240
242
 
241
243
  override fun dismissAllOverlays(commandId: String, promise: Promise) {
242
244
  handle {
243
- navigator().dismissAllOverlays(
245
+ navigator()?.dismissAllOverlays(
244
246
  NativeCommandListener(
245
247
  "dismissAllOverlays",
246
248
  commandId,
@@ -263,25 +265,36 @@ class NavigationTurboModule(
263
265
  null
264
266
  ) Options.EMPTY else Options.parse(
265
267
  ctx,
266
- TypefaceLoader(activity()),
268
+ TypefaceLoader(reactApplicationContext),
267
269
  jsonParser.parse(mergeOptions)
268
270
  )
269
271
  }
270
272
 
271
- private fun navigator(): Navigator {
272
- return activity().navigator
273
+ private fun navigator(): Navigator? {
274
+ val navigator = activity()?.navigator
275
+ if (navigator == null) {
276
+ Log.e("NavigationTurboModule", "navigator is null!")
277
+ }
278
+ return navigator
273
279
  }
274
280
 
275
281
  private fun handle(task: Runnable) {
276
282
  UiThread.post {
277
- if (currentActivity != null && !activity().isFinishing) {
283
+ activity()?.let {
284
+ if (it.isFinishing) {
285
+ return@let
286
+ }
278
287
  task.run()
279
288
  }
280
289
  }
281
290
  }
282
291
 
283
- private fun activity(): NavigationActivity {
284
- return currentActivity as NavigationActivity
292
+ private fun activity(): NavigationActivity? {
293
+ val activity = reactApplicationContext.currentActivity as NavigationActivity?
294
+ if (activity == null) {
295
+ Log.e("NavigationTurboModule", "current activity is null!")
296
+ }
297
+ return currentActivity as NavigationActivity?
285
298
  }
286
299
 
287
300
  companion object {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-navigation",
3
- "version": "8.3.1",
3
+ "version": "8.3.2",
4
4
  "description": "React Native Navigation - truly native navigation for iOS and Android",
5
5
  "license": "MIT",
6
6
  "nativePackage": true,