@iternio/react-native-auto-play 0.3.6 → 0.3.8

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.
Files changed (200) hide show
  1. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidAutoService.kt +5 -16
  2. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidAutoSession.kt +21 -33
  3. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAutoPlay.kt +7 -0
  4. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridCluster.kt +6 -0
  5. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/VirtualRenderer.kt +67 -64
  6. package/ios/hybrid/HybridAutoPlay.swift +7 -0
  7. package/ios/hybrid/HybridCluster.swift +22 -8
  8. package/lib/AutoPlayHeadlessJsTask.d.ts +2 -1
  9. package/lib/AutoPlayHeadlessJsTask.js +4 -5
  10. package/lib/components/SafeAreaInsetsContext.d.ts +1 -1
  11. package/lib/components/SafeAreaInsetsContext.js +1 -1
  12. package/lib/hooks/useAndroidAutoTelemetry.js +2 -1
  13. package/lib/hooks/useFocusedEffect.js +1 -1
  14. package/lib/hooks/useVoiceInput.d.ts +1 -1
  15. package/lib/hooks/useVoiceInput.js +1 -1
  16. package/lib/hybrid/HybridAndroidAutoTelemetry.android.d.ts +2 -0
  17. package/lib/hybrid/HybridAndroidAutoTelemetry.android.js +2 -0
  18. package/lib/hybrid/HybridAndroidAutoTelemetry.d.ts +2 -0
  19. package/lib/hybrid/HybridAndroidAutoTelemetry.js +1 -0
  20. package/lib/hybrid/HybridAutoPlay.d.ts +2 -0
  21. package/lib/hybrid/HybridAutoPlay.js +2 -0
  22. package/lib/index.d.ts +4 -4
  23. package/lib/index.js +5 -5
  24. package/lib/scenes/CarPlayDashboardScene.d.ts +3 -3
  25. package/lib/scenes/CarPlayDashboardScene.js +1 -1
  26. package/lib/templates/MapTemplate.d.ts +1 -1
  27. package/lib/templates/MapTemplate.js +1 -1
  28. package/lib/templates/MessageTemplate.d.ts +1 -1
  29. package/lib/templates/MessageTemplate.js +1 -1
  30. package/lib/templates/Template.js +1 -1
  31. package/nitro.json +77 -20
  32. package/nitrogen/generated/android/ReactNativeAutoPlayOnLoad.cpp +194 -124
  33. package/nitrogen/generated/android/ReactNativeAutoPlayOnLoad.hpp +13 -4
  34. package/nitrogen/generated/android/c++/JActiveCarUxRestrictions.hpp +1 -1
  35. package/nitrogen/generated/android/c++/JAlertActionStyle.hpp +1 -1
  36. package/nitrogen/generated/android/c++/JAlertDismissalReason.hpp +1 -1
  37. package/nitrogen/generated/android/c++/JAppFocusState.hpp +1 -1
  38. package/nitrogen/generated/android/c++/JAssetImage.hpp +1 -1
  39. package/nitrogen/generated/android/c++/JAutoText.hpp +1 -1
  40. package/nitrogen/generated/android/c++/JBooleanTelemetryItem.hpp +1 -1
  41. package/nitrogen/generated/android/c++/JCarUxRestrictions.hpp +1 -1
  42. package/nitrogen/generated/android/c++/JClusterEventName.hpp +1 -1
  43. package/nitrogen/generated/android/c++/JColorScheme.hpp +1 -1
  44. package/nitrogen/generated/android/c++/JDistance.hpp +1 -1
  45. package/nitrogen/generated/android/c++/JDistanceUnits.hpp +1 -1
  46. package/nitrogen/generated/android/c++/JDurationWithTimeZone.hpp +1 -1
  47. package/nitrogen/generated/android/c++/JEventName.hpp +1 -1
  48. package/nitrogen/generated/android/c++/JForkType.hpp +1 -1
  49. package/nitrogen/generated/android/c++/JFunc_void.hpp +2 -2
  50. package/nitrogen/generated/android/c++/JFunc_void_ActiveCarUxRestrictions.hpp +2 -2
  51. package/nitrogen/generated/android/c++/JFunc_void_AlertDismissalReason.hpp +2 -2
  52. package/nitrogen/generated/android/c++/JFunc_void_AppFocusState.hpp +2 -2
  53. package/nitrogen/generated/android/c++/JFunc_void_ColorScheme.hpp +2 -2
  54. package/nitrogen/generated/android/c++/JFunc_void_Point.hpp +2 -2
  55. package/nitrogen/generated/android/c++/JFunc_void_Point_double.hpp +2 -2
  56. package/nitrogen/generated/android/c++/JFunc_void_Point_std__optional_Point_.hpp +2 -2
  57. package/nitrogen/generated/android/c++/JFunc_void_SafeAreaInsets.hpp +2 -2
  58. package/nitrogen/generated/android/c++/JFunc_void_VisibilityState.hpp +2 -2
  59. package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +2 -2
  60. package/nitrogen/generated/android/c++/JFunc_void_std__optional_Location__std__optional_std__string_.hpp +2 -2
  61. package/nitrogen/generated/android/c++/JFunc_void_std__optional_Telemetry_.hpp +2 -2
  62. package/nitrogen/generated/android/c++/JFunc_void_std__optional_bool_.hpp +2 -2
  63. package/nitrogen/generated/android/c++/JFunc_void_std__optional_std__string__std__optional_GoogleSignInAccount_.hpp +2 -2
  64. package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +2 -2
  65. package/nitrogen/generated/android/c++/JFunc_void_std__string_ColorScheme.hpp +2 -2
  66. package/nitrogen/generated/android/c++/JFunc_void_std__string_ZoomEvent.hpp +2 -2
  67. package/nitrogen/generated/android/c++/JFunc_void_std__string_bool.hpp +2 -2
  68. package/nitrogen/generated/android/c++/JFunc_void_std__string_std__string.hpp +2 -2
  69. package/nitrogen/generated/android/c++/JGlyphImage.hpp +1 -1
  70. package/nitrogen/generated/android/c++/JGoogleSignIn.hpp +1 -1
  71. package/nitrogen/generated/android/c++/JGoogleSignInAccount.hpp +1 -1
  72. package/nitrogen/generated/android/c++/JGridTemplateConfig.hpp +1 -1
  73. package/nitrogen/generated/android/c++/JHybridAndroidAutoTelemetrySpec.cpp +20 -26
  74. package/nitrogen/generated/android/c++/JHybridAndroidAutoTelemetrySpec.hpp +19 -22
  75. package/nitrogen/generated/android/c++/JHybridAndroidAutomotiveSpec.cpp +23 -29
  76. package/nitrogen/generated/android/c++/JHybridAndroidAutomotiveSpec.hpp +19 -22
  77. package/nitrogen/generated/android/c++/JHybridAutoPlaySpec.cpp +29 -35
  78. package/nitrogen/generated/android/c++/JHybridAutoPlaySpec.hpp +19 -22
  79. package/nitrogen/generated/android/c++/JHybridClusterSpec.cpp +25 -31
  80. package/nitrogen/generated/android/c++/JHybridClusterSpec.hpp +19 -22
  81. package/nitrogen/generated/android/c++/JHybridGridTemplateSpec.cpp +20 -26
  82. package/nitrogen/generated/android/c++/JHybridGridTemplateSpec.hpp +19 -22
  83. package/nitrogen/generated/android/c++/JHybridInformationTemplateSpec.cpp +20 -26
  84. package/nitrogen/generated/android/c++/JHybridInformationTemplateSpec.hpp +19 -22
  85. package/nitrogen/generated/android/c++/JHybridListTemplateSpec.cpp +20 -26
  86. package/nitrogen/generated/android/c++/JHybridListTemplateSpec.hpp +19 -22
  87. package/nitrogen/generated/android/c++/JHybridMapTemplateSpec.cpp +30 -36
  88. package/nitrogen/generated/android/c++/JHybridMapTemplateSpec.hpp +19 -22
  89. package/nitrogen/generated/android/c++/JHybridMessageTemplateSpec.cpp +19 -25
  90. package/nitrogen/generated/android/c++/JHybridMessageTemplateSpec.hpp +19 -22
  91. package/nitrogen/generated/android/c++/JHybridSearchTemplateSpec.cpp +20 -26
  92. package/nitrogen/generated/android/c++/JHybridSearchTemplateSpec.hpp +19 -22
  93. package/nitrogen/generated/android/c++/JHybridSignInTemplateSpec.cpp +20 -26
  94. package/nitrogen/generated/android/c++/JHybridSignInTemplateSpec.hpp +19 -22
  95. package/nitrogen/generated/android/c++/JImageLane.hpp +1 -1
  96. package/nitrogen/generated/android/c++/JInformationTemplateConfig.hpp +1 -1
  97. package/nitrogen/generated/android/c++/JInputSignIn.hpp +1 -1
  98. package/nitrogen/generated/android/c++/JKeepType.hpp +1 -1
  99. package/nitrogen/generated/android/c++/JKeyboardType.hpp +1 -1
  100. package/nitrogen/generated/android/c++/JLaneGuidance.hpp +1 -1
  101. package/nitrogen/generated/android/c++/JListTemplateConfig.hpp +1 -1
  102. package/nitrogen/generated/android/c++/JLocation.hpp +1 -1
  103. package/nitrogen/generated/android/c++/JManeuverType.hpp +1 -1
  104. package/nitrogen/generated/android/c++/JMapTemplateConfig.hpp +1 -1
  105. package/nitrogen/generated/android/c++/JMessageTemplateConfig.hpp +1 -1
  106. package/nitrogen/generated/android/c++/JNavigationAlertAction.hpp +1 -1
  107. package/nitrogen/generated/android/c++/JNitroAction.hpp +1 -1
  108. package/nitrogen/generated/android/c++/JNitroActionType.hpp +1 -1
  109. package/nitrogen/generated/android/c++/JNitroAlignment.hpp +1 -1
  110. package/nitrogen/generated/android/c++/JNitroAttributedString.hpp +1 -1
  111. package/nitrogen/generated/android/c++/JNitroAttributedStringImage.hpp +1 -1
  112. package/nitrogen/generated/android/c++/JNitroBaseMapTemplateConfig.hpp +1 -1
  113. package/nitrogen/generated/android/c++/JNitroButtonStyle.hpp +1 -1
  114. package/nitrogen/generated/android/c++/JNitroColor.hpp +1 -1
  115. package/nitrogen/generated/android/c++/JNitroGridButton.hpp +1 -1
  116. package/nitrogen/generated/android/c++/JNitroImage.hpp +3 -3
  117. package/nitrogen/generated/android/c++/JNitroLoadingManeuver.hpp +1 -1
  118. package/nitrogen/generated/android/c++/JNitroManeuver.hpp +4 -4
  119. package/nitrogen/generated/android/c++/JNitroMapButton.hpp +1 -1
  120. package/nitrogen/generated/android/c++/JNitroMapButtonType.hpp +1 -1
  121. package/nitrogen/generated/android/c++/JNitroMessageManeuver.hpp +1 -1
  122. package/nitrogen/generated/android/c++/JNitroNavigationAlert.hpp +1 -1
  123. package/nitrogen/generated/android/c++/JNitroRoutingManeuver.hpp +1 -1
  124. package/nitrogen/generated/android/c++/JNitroRow.hpp +1 -1
  125. package/nitrogen/generated/android/c++/JNitroSection.hpp +1 -1
  126. package/nitrogen/generated/android/c++/JNitroSectionType.hpp +1 -1
  127. package/nitrogen/generated/android/c++/JNumericTelemetryItem.hpp +1 -1
  128. package/nitrogen/generated/android/c++/JOffRampType.hpp +1 -1
  129. package/nitrogen/generated/android/c++/JOnRampType.hpp +1 -1
  130. package/nitrogen/generated/android/c++/JPermissionRequestResult.hpp +1 -1
  131. package/nitrogen/generated/android/c++/JPinSignIn.hpp +1 -1
  132. package/nitrogen/generated/android/c++/JPoint.hpp +1 -1
  133. package/nitrogen/generated/android/c++/JPreferredImageLane.hpp +1 -1
  134. package/nitrogen/generated/android/c++/JQrSignIn.hpp +1 -1
  135. package/nitrogen/generated/android/c++/JRouteChoice.hpp +1 -1
  136. package/nitrogen/generated/android/c++/JSafeAreaInsets.hpp +1 -1
  137. package/nitrogen/generated/android/c++/JSearchTemplateConfig.hpp +1 -1
  138. package/nitrogen/generated/android/c++/JSignInMethods.hpp +1 -1
  139. package/nitrogen/generated/android/c++/JSignInTemplateConfig.hpp +1 -1
  140. package/nitrogen/generated/android/c++/JStringTelemetryItem.hpp +1 -1
  141. package/nitrogen/generated/android/c++/JTelemetry.hpp +1 -1
  142. package/nitrogen/generated/android/c++/JTextInputType.hpp +1 -1
  143. package/nitrogen/generated/android/c++/JTrafficSide.hpp +1 -1
  144. package/nitrogen/generated/android/c++/JTravelEstimates.hpp +1 -1
  145. package/nitrogen/generated/android/c++/JTripConfig.hpp +1 -1
  146. package/nitrogen/generated/android/c++/JTripPoint.hpp +1 -1
  147. package/nitrogen/generated/android/c++/JTripPreviewTextConfiguration.hpp +1 -1
  148. package/nitrogen/generated/android/c++/JTripSelectorCallback.hpp +1 -1
  149. package/nitrogen/generated/android/c++/JTripsConfig.hpp +1 -1
  150. package/nitrogen/generated/android/c++/JTurnType.hpp +1 -1
  151. package/nitrogen/generated/android/c++/JVariant_GlyphImage_AssetImage.hpp +3 -3
  152. package/nitrogen/generated/android/c++/JVariant_PreferredImageLane_ImageLane.hpp +3 -3
  153. package/nitrogen/generated/android/c++/JVariant_QrSignIn_PinSignIn_InputSignIn_GoogleSignIn.hpp +5 -5
  154. package/nitrogen/generated/android/c++/JVehicleTelemetryItem.hpp +1 -1
  155. package/nitrogen/generated/android/c++/JVisibilityState.hpp +1 -1
  156. package/nitrogen/generated/android/c++/JVisibleTravelEstimate.hpp +1 -1
  157. package/nitrogen/generated/android/c++/JZoomEvent.hpp +1 -1
  158. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAndroidAutoTelemetrySpec.kt +15 -18
  159. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAndroidAutomotiveSpec.kt +15 -18
  160. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAutoPlaySpec.kt +15 -18
  161. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridClusterSpec.kt +15 -18
  162. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridGridTemplateSpec.kt +15 -18
  163. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridInformationTemplateSpec.kt +15 -18
  164. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridListTemplateSpec.kt +15 -18
  165. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridMapTemplateSpec.kt +15 -18
  166. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridMessageTemplateSpec.kt +14 -17
  167. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridSearchTemplateSpec.kt +15 -18
  168. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridSignInTemplateSpec.kt +15 -18
  169. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroImage.kt +0 -6
  170. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroManeuver.kt +0 -7
  171. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Variant_GlyphImage_AssetImage.kt +0 -6
  172. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Variant_PreferredImageLane_ImageLane.kt +0 -6
  173. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Variant_QrSignIn_PinSignIn_InputSignIn_GoogleSignIn.kt +0 -8
  174. package/nitrogen/generated/ios/ReactNativeAutoPlay-Swift-Cxx-Bridge.hpp +36 -36
  175. package/nitrogen/generated/ios/swift/AutoText.swift +8 -1
  176. package/nitrogen/generated/ios/swift/GlyphImage.swift +8 -1
  177. package/nitrogen/generated/ios/swift/GridTemplateConfig.swift +8 -1
  178. package/nitrogen/generated/ios/swift/InformationTemplateConfig.swift +8 -1
  179. package/nitrogen/generated/ios/swift/ListTemplateConfig.swift +8 -1
  180. package/nitrogen/generated/ios/swift/MapTemplateConfig.swift +16 -2
  181. package/nitrogen/generated/ios/swift/MessageTemplateConfig.swift +8 -1
  182. package/nitrogen/generated/ios/swift/NitroAction.swift +8 -1
  183. package/nitrogen/generated/ios/swift/NitroBaseMapTemplateConfig.swift +8 -1
  184. package/nitrogen/generated/ios/swift/NitroRoutingManeuver.swift +16 -2
  185. package/nitrogen/generated/ios/swift/SearchTemplateConfig.swift +8 -1
  186. package/package.json +7 -5
  187. package/src/AutoPlayHeadlessJsTask.ts +12 -9
  188. package/src/components/SafeAreaInsetsContext.tsx +2 -1
  189. package/src/hooks/useAndroidAutoTelemetry.ts +2 -1
  190. package/src/hooks/useFocusedEffect.ts +1 -1
  191. package/src/hooks/useVoiceInput.ts +2 -1
  192. package/src/hybrid/HybridAndroidAutoTelemetry.android.ts +5 -0
  193. package/src/hybrid/HybridAndroidAutoTelemetry.ts +3 -0
  194. package/src/hybrid/HybridAutoPlay.ts +4 -0
  195. package/src/index.ts +5 -9
  196. package/src/scenes/CarPlayDashboardScene.ts +1 -1
  197. package/src/templates/MapTemplate.ts +2 -1
  198. package/src/templates/MessageTemplate.ts +7 -7
  199. package/src/templates/Template.ts +1 -1
  200. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/utils/ReactContextResolver.kt +0 -36
package/src/index.ts CHANGED
@@ -1,18 +1,14 @@
1
1
  import { Platform } from 'react-native';
2
2
  import { NitroModules } from 'react-native-nitro-modules';
3
3
  import AutoPlayHeadlessJsTask from './AutoPlayHeadlessJsTask';
4
+ import { HybridAndroidAutoTelemetry } from './hybrid/HybridAndroidAutoTelemetry';
5
+ import { HybridAutoPlay } from './hybrid/HybridAutoPlay';
4
6
  import type { AndroidAutomotive } from './specs/AndroidAutomotive.nitro';
5
- import type { AndroidAutoTelemetry as NitroAndroidAutoTelemetry } from './specs/AndroidAutoTelemetry.nitro';
6
- import type { AutoPlay as NitroAutoPlay } from './specs/AutoPlay.nitro';
7
7
 
8
- AutoPlayHeadlessJsTask.registerHeadlessTask();
8
+ AutoPlayHeadlessJsTask.registerHeadlessTask(HybridAutoPlay);
9
9
 
10
- export const HybridAutoPlay = NitroModules.createHybridObject<NitroAutoPlay>('AutoPlay');
11
-
12
- export const HybridAndroidAutoTelemetry =
13
- Platform.OS === 'android'
14
- ? NitroModules.createHybridObject<NitroAndroidAutoTelemetry>('AndroidAutoTelemetry')
15
- : null;
10
+ export { HybridAutoPlay };
11
+ export { HybridAndroidAutoTelemetry };
16
12
 
17
13
  export const HybridAndroidAutomotive =
18
14
  Platform.OS === 'android'
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
2
  import { AppRegistry, Platform } from 'react-native';
3
3
  import { NitroModules } from 'react-native-nitro-modules';
4
- import { HybridAutoPlay } from '..';
5
4
  import { SafeAreaInsetsProvider } from '../components/SafeAreaInsetsContext';
5
+ import { HybridAutoPlay } from '../hybrid/HybridAutoPlay';
6
6
  import type {
7
7
  BaseCarPlayDashboardButton,
8
8
  CarPlayDashboard as NitroCarPlayDashboard,
@@ -1,9 +1,10 @@
1
1
  import React from 'react';
2
2
  import { AppRegistry, Platform } from 'react-native';
3
3
  import { NitroModules } from 'react-native-nitro-modules';
4
- import { type AutoText, HybridAutoPlay } from '..';
4
+ import type { AutoText } from '..';
5
5
  import { MapTemplateProvider } from '../components/MapTemplateContext';
6
6
  import { SafeAreaInsetsProvider } from '../components/SafeAreaInsetsContext';
7
+ import { HybridAutoPlay } from '../hybrid/HybridAutoPlay';
7
8
  import type { MapTemplate as NitroMapTemplate } from '../specs/MapTemplate.nitro';
8
9
  import type { ActionButtonAndroid, MapButton, MapPanButton } from '../types/Button';
9
10
  import type { AutoManeuver } from '../types/Maneuver';
@@ -1,14 +1,14 @@
1
1
  import { Platform } from 'react-native';
2
2
  import { NitroModules } from 'react-native-nitro-modules';
3
3
  import uuid from 'react-native-uuid';
4
- import {
5
- type AutoImage,
6
- type BaseMapTemplateConfig,
7
- type CustomActionButtonAndroid,
8
- type HeaderActionsAndroid,
9
- HybridAutoPlay,
10
- type TextButton,
4
+ import type {
5
+ AutoImage,
6
+ BaseMapTemplateConfig,
7
+ CustomActionButtonAndroid,
8
+ HeaderActionsAndroid,
9
+ TextButton,
11
10
  } from '..';
11
+ import { HybridAutoPlay } from '../hybrid/HybridAutoPlay';
12
12
  import type { MessageTemplate as NitroMessageTemplate } from '../specs/MessageTemplate.nitro';
13
13
  import type { AutoText } from '../types/Text';
14
14
  import { type NitroAction, NitroActionUtil } from '../utils/NitroAction';
@@ -1,5 +1,5 @@
1
1
  import uuid from 'react-native-uuid';
2
- import { HybridAutoPlay } from '..';
2
+ import { HybridAutoPlay } from '../hybrid/HybridAutoPlay';
3
3
  import type { ActionButtonAndroid, ActionButtonIos, AppButton, BackButton } from '../types/Button';
4
4
  import { type NitroAction, NitroActionUtil } from '../utils/NitroAction';
5
5
  import type { NitroMapButton } from '../utils/NitroMapButton';
@@ -1,36 +0,0 @@
1
- package com.margelo.nitro.swe.iternio.reactnativeautoplay.utils
2
-
3
- import com.facebook.react.ReactApplication
4
- import com.facebook.react.ReactInstanceEventListener
5
- import com.facebook.react.bridge.ReactContext
6
- import kotlinx.coroutines.suspendCancellableCoroutine
7
- import kotlin.coroutines.resume
8
-
9
- object ReactContextResolver {
10
- suspend fun getReactContext(application: ReactApplication): ReactContext {
11
- val host =
12
- application.reactHost ?: throw IllegalArgumentException("application host null")
13
-
14
- return suspendCancellableCoroutine { continuation ->
15
- host.currentReactContext?.let {
16
- continuation.resume(it)
17
- return@suspendCancellableCoroutine
18
- }
19
-
20
- val listener = object : ReactInstanceEventListener {
21
- override fun onReactContextInitialized(context: ReactContext) {
22
- host.removeReactInstanceEventListener(this)
23
- continuation.resume(context)
24
- }
25
- }
26
- host.addReactInstanceEventListener(listener)
27
-
28
- continuation.invokeOnCancellation {
29
- host.removeReactInstanceEventListener(listener)
30
- }
31
-
32
- host.start()
33
- }
34
-
35
- }
36
- }