@iternio/react-native-auto-play 0.1.18 → 0.2.0-alpha.14

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 (557) hide show
  1. package/README.md +161 -10
  2. package/android/build.gradle +15 -1
  3. package/android/gradle.properties +1 -1
  4. package/android/src/{main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidAutoTelemetryObserver.kt → auto/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidTelemetryObserver.kt} +31 -76
  5. package/android/src/auto/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAndroidAutomotive.kt +25 -0
  6. package/android/src/automotive/AndroidManifest.xml +93 -0
  7. package/android/src/automotive/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidTelemetryObserver.kt +204 -0
  8. package/android/src/automotive/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAndroidAutomotive.kt +185 -0
  9. package/android/src/main/AndroidManifest.xml +0 -10
  10. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidAutoScreen.kt +3 -0
  11. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidAutoTelemetryHolder.kt +128 -18
  12. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAndroidAutoTelemetry.kt +39 -3
  13. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridSignInTemplate.kt +22 -0
  14. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/SignInWithGoogleActivity.kt +57 -0
  15. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/TelemetryObserver.kt +56 -0
  16. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/VirtualRenderer.kt +15 -10
  17. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/template/AutomotivePermissionRequestTemplate.kt +103 -0
  18. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/template/GridTemplate.kt +0 -2
  19. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/template/Parser.kt +8 -2
  20. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/template/SignInTemplate.kt +214 -0
  21. package/android/src/main/res/drawable/google.xml +18 -0
  22. package/ios/extensions/CarPlayExtensions.swift +4 -2
  23. package/ios/extensions/NitroImageExtensions.swift +4 -4
  24. package/ios/hybrid/HybridAutoPlay.swift +32 -42
  25. package/ios/hybrid/HybridCluster.swift +4 -2
  26. package/ios/hybrid/HybridGridTemplate.swift +11 -11
  27. package/ios/hybrid/HybridInformationTemplate.swift +12 -13
  28. package/ios/hybrid/HybridListTemplate.swift +12 -13
  29. package/ios/hybrid/HybridMapTemplate.swift +13 -16
  30. package/ios/hybrid/HybridMessageTemplate.swift +7 -4
  31. package/ios/hybrid/HybridSearchTemplate.swift +12 -13
  32. package/ios/scenes/AutoPlayInterfaceController.swift +41 -13
  33. package/ios/scenes/AutoPlayScene.swift +2 -1
  34. package/ios/scenes/AutoPlaySceneViewController.swift +8 -2
  35. package/ios/scenes/DashboardSceneDelegate.swift +15 -7
  36. package/ios/scenes/HeadUnitSceneDelegate.swift +7 -5
  37. package/ios/scenes/WindowApplicationSceneDelegate.swift +1 -1
  38. package/ios/templates/AutoPlayTemplate.swift +25 -17
  39. package/ios/templates/GridTemplate.swift +36 -31
  40. package/ios/templates/InformationTemplate.swift +23 -24
  41. package/ios/templates/ListTemplate.swift +22 -24
  42. package/ios/templates/MapTemplate.swift +53 -47
  43. package/ios/templates/MessageTemplate.swift +8 -12
  44. package/ios/templates/Parser.swift +27 -11
  45. package/ios/templates/SearchTemplate.swift +26 -21
  46. package/ios/templates/TemplateStore.swift +17 -9
  47. package/ios/utils/RootModule.swift +19 -12
  48. package/ios/utils/SymbolFont.swift +2 -1
  49. package/ios/utils/ViewUtils.swift +2 -2
  50. package/lib/hooks/useAndroidAutoTelemetry.d.ts +34 -7
  51. package/lib/hooks/useAndroidAutoTelemetry.js +57 -26
  52. package/lib/index.d.ts +6 -0
  53. package/lib/index.js +6 -0
  54. package/lib/specs/AndroidAutoTelemetry.nitro.d.ts +14 -1
  55. package/lib/specs/AndroidAutomotive.nitro.d.ts +33 -0
  56. package/lib/specs/AndroidAutomotive.nitro.js +13 -0
  57. package/lib/templates/Template.js +1 -1
  58. package/lib/types/SignInMethod.d.ts +18 -2
  59. package/lib/types/SignInMethod.js +1 -1
  60. package/lib/types/Telemetry.d.ts +31 -0
  61. package/lib/types/Telemetry.js +7 -0
  62. package/lib/types/Trip.d.ts +4 -0
  63. package/nitro.json +6 -0
  64. package/nitrogen/generated/android/ReactNativeAutoPlay+autolinking.cmake +6 -1
  65. package/nitrogen/generated/android/ReactNativeAutoPlay+autolinking.gradle +1 -1
  66. package/nitrogen/generated/android/ReactNativeAutoPlayOnLoad.cpp +31 -5
  67. package/nitrogen/generated/android/ReactNativeAutoPlayOnLoad.hpp +1 -1
  68. package/nitrogen/generated/android/c++/JActiveCarUxRestrictions.hpp +89 -0
  69. package/nitrogen/generated/android/c++/JAlertActionStyle.hpp +4 -5
  70. package/nitrogen/generated/android/c++/JAlertDismissalReason.hpp +4 -5
  71. package/nitrogen/generated/android/c++/JAppFocusState.hpp +61 -0
  72. package/nitrogen/generated/android/c++/JAssetImage.hpp +1 -1
  73. package/nitrogen/generated/android/c++/JAutoText.hpp +1 -1
  74. package/nitrogen/generated/android/c++/JBooleanTelemetryItem.hpp +61 -0
  75. package/nitrogen/generated/android/c++/JCarUxRestrictions.hpp +82 -0
  76. package/nitrogen/generated/android/c++/JClusterEventName.hpp +5 -6
  77. package/nitrogen/generated/android/c++/JColorScheme.hpp +3 -4
  78. package/nitrogen/generated/android/c++/JDistance.hpp +1 -1
  79. package/nitrogen/generated/android/c++/JDistanceUnits.hpp +6 -7
  80. package/nitrogen/generated/android/c++/JDurationWithTimeZone.hpp +1 -1
  81. package/nitrogen/generated/android/c++/JEventName.hpp +3 -4
  82. package/nitrogen/generated/android/c++/JForkType.hpp +3 -4
  83. package/nitrogen/generated/android/c++/JFunc_void.hpp +1 -1
  84. package/nitrogen/generated/android/c++/JFunc_void_ActiveCarUxRestrictions.hpp +80 -0
  85. package/nitrogen/generated/android/c++/JFunc_void_AlertDismissalReason.hpp +1 -1
  86. package/nitrogen/generated/android/c++/JFunc_void_AppFocusState.hpp +78 -0
  87. package/nitrogen/generated/android/c++/JFunc_void_ColorScheme.hpp +1 -1
  88. package/nitrogen/generated/android/c++/JFunc_void_Point.hpp +1 -1
  89. package/nitrogen/generated/android/c++/JFunc_void_Point_double.hpp +1 -1
  90. package/nitrogen/generated/android/c++/JFunc_void_Point_std__optional_Point_.hpp +1 -1
  91. package/nitrogen/generated/android/c++/JFunc_void_SafeAreaInsets.hpp +1 -1
  92. package/nitrogen/generated/android/c++/JFunc_void_VisibilityState.hpp +1 -1
  93. package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +1 -1
  94. package/nitrogen/generated/android/c++/JFunc_void_std__optional_Location__std__optional_std__string_.hpp +1 -1
  95. package/nitrogen/generated/android/c++/JFunc_void_std__optional_Telemetry_.hpp +87 -0
  96. package/nitrogen/generated/android/c++/JFunc_void_std__optional_bool_.hpp +1 -1
  97. package/nitrogen/generated/android/c++/JFunc_void_std__optional_std__string__std__optional_GoogleSignInAccount_.hpp +79 -0
  98. package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +11 -11
  99. package/nitrogen/generated/android/c++/JFunc_void_std__string_ColorScheme.hpp +1 -1
  100. package/nitrogen/generated/android/c++/JFunc_void_std__string_ZoomEvent.hpp +1 -1
  101. package/nitrogen/generated/android/c++/JFunc_void_std__string_bool.hpp +1 -1
  102. package/nitrogen/generated/android/c++/JFunc_void_std__string_std__string.hpp +1 -1
  103. package/nitrogen/generated/android/c++/JGlyphImage.hpp +1 -1
  104. package/nitrogen/generated/android/c++/JGoogleSignIn.hpp +85 -0
  105. package/nitrogen/generated/android/c++/JGoogleSignInAccount.hpp +86 -0
  106. package/nitrogen/generated/android/c++/JGridTemplateConfig.hpp +1 -1
  107. package/nitrogen/generated/android/c++/JHybridAndroidAutoTelemetrySpec.cpp +49 -6
  108. package/nitrogen/generated/android/c++/JHybridAndroidAutoTelemetrySpec.hpp +4 -2
  109. package/nitrogen/generated/android/c++/JHybridAndroidAutomotiveSpec.cpp +120 -0
  110. package/nitrogen/generated/android/c++/JHybridAndroidAutomotiveSpec.hpp +70 -0
  111. package/nitrogen/generated/android/c++/JHybridAutoPlaySpec.cpp +9 -1
  112. package/nitrogen/generated/android/c++/JHybridAutoPlaySpec.hpp +2 -1
  113. package/nitrogen/generated/android/c++/JHybridClusterSpec.cpp +9 -1
  114. package/nitrogen/generated/android/c++/JHybridClusterSpec.hpp +2 -1
  115. package/nitrogen/generated/android/c++/JHybridGridTemplateSpec.cpp +9 -1
  116. package/nitrogen/generated/android/c++/JHybridGridTemplateSpec.hpp +2 -1
  117. package/nitrogen/generated/android/c++/JHybridInformationTemplateSpec.cpp +9 -1
  118. package/nitrogen/generated/android/c++/JHybridInformationTemplateSpec.hpp +2 -1
  119. package/nitrogen/generated/android/c++/JHybridListTemplateSpec.cpp +9 -1
  120. package/nitrogen/generated/android/c++/JHybridListTemplateSpec.hpp +2 -1
  121. package/nitrogen/generated/android/c++/JHybridMapTemplateSpec.cpp +9 -1
  122. package/nitrogen/generated/android/c++/JHybridMapTemplateSpec.hpp +2 -1
  123. package/nitrogen/generated/android/c++/JHybridMessageTemplateSpec.cpp +8 -1
  124. package/nitrogen/generated/android/c++/JHybridMessageTemplateSpec.hpp +2 -1
  125. package/nitrogen/generated/android/c++/JHybridSearchTemplateSpec.cpp +9 -1
  126. package/nitrogen/generated/android/c++/JHybridSearchTemplateSpec.hpp +2 -1
  127. package/nitrogen/generated/android/c++/JHybridSignInTemplateSpec.cpp +150 -0
  128. package/nitrogen/generated/android/c++/JHybridSignInTemplateSpec.hpp +67 -0
  129. package/nitrogen/generated/android/c++/JImageLane.hpp +1 -1
  130. package/nitrogen/generated/android/c++/JInformationTemplateConfig.hpp +1 -1
  131. package/nitrogen/generated/android/c++/JInputSignIn.hpp +103 -0
  132. package/nitrogen/generated/android/c++/JKeepType.hpp +4 -5
  133. package/nitrogen/generated/android/c++/JKeyboardType.hpp +64 -0
  134. package/nitrogen/generated/android/c++/JLaneGuidance.hpp +1 -1
  135. package/nitrogen/generated/android/c++/JListTemplateConfig.hpp +1 -1
  136. package/nitrogen/generated/android/c++/JLocation.hpp +1 -1
  137. package/nitrogen/generated/android/c++/JManeuverType.hpp +13 -14
  138. package/nitrogen/generated/android/c++/JMapTemplateConfig.hpp +1 -1
  139. package/nitrogen/generated/android/c++/JMessageTemplateConfig.hpp +1 -1
  140. package/nitrogen/generated/android/c++/JNavigationAlertAction.hpp +1 -1
  141. package/nitrogen/generated/android/c++/JNitroAction.hpp +1 -1
  142. package/nitrogen/generated/android/c++/JNitroActionType.hpp +4 -5
  143. package/nitrogen/generated/android/c++/JNitroAlignment.hpp +3 -4
  144. package/nitrogen/generated/android/c++/JNitroAttributedString.hpp +1 -1
  145. package/nitrogen/generated/android/c++/JNitroAttributedStringImage.hpp +1 -1
  146. package/nitrogen/generated/android/c++/JNitroBaseMapTemplateConfig.hpp +1 -1
  147. package/nitrogen/generated/android/c++/JNitroButtonStyle.hpp +6 -7
  148. package/nitrogen/generated/android/c++/JNitroColor.hpp +1 -1
  149. package/nitrogen/generated/android/c++/JNitroGridButton.hpp +1 -1
  150. package/nitrogen/generated/android/c++/JNitroImage.cpp +1 -1
  151. package/nitrogen/generated/android/c++/JNitroImage.hpp +3 -3
  152. package/nitrogen/generated/android/c++/JNitroLoadingManeuver.hpp +1 -1
  153. package/nitrogen/generated/android/c++/JNitroManeuver.cpp +1 -1
  154. package/nitrogen/generated/android/c++/JNitroManeuver.hpp +7 -4
  155. package/nitrogen/generated/android/c++/JNitroMapButton.hpp +1 -1
  156. package/nitrogen/generated/android/c++/JNitroMapButtonType.hpp +3 -4
  157. package/nitrogen/generated/android/c++/JNitroMessageManeuver.hpp +1 -1
  158. package/nitrogen/generated/android/c++/JNitroNavigationAlert.hpp +1 -1
  159. package/nitrogen/generated/android/c++/JNitroRoutingManeuver.hpp +4 -1
  160. package/nitrogen/generated/android/c++/JNitroRow.hpp +1 -1
  161. package/nitrogen/generated/android/c++/JNitroSection.hpp +1 -1
  162. package/nitrogen/generated/android/c++/JNitroSectionType.hpp +3 -4
  163. package/nitrogen/generated/android/c++/JNumericTelemetryItem.hpp +1 -1
  164. package/nitrogen/generated/android/c++/JOffRampType.hpp +5 -6
  165. package/nitrogen/generated/android/c++/JOnRampType.hpp +9 -10
  166. package/nitrogen/generated/android/c++/JPermissionRequestResult.hpp +98 -0
  167. package/nitrogen/generated/android/c++/JPinSignIn.hpp +63 -0
  168. package/nitrogen/generated/android/c++/JPoint.hpp +1 -1
  169. package/nitrogen/generated/android/c++/JPreferredImageLane.hpp +1 -1
  170. package/nitrogen/generated/android/c++/JQrSignIn.hpp +63 -0
  171. package/nitrogen/generated/android/c++/JRouteChoice.hpp +4 -1
  172. package/nitrogen/generated/android/c++/JSafeAreaInsets.hpp +1 -1
  173. package/nitrogen/generated/android/c++/JSearchTemplateConfig.hpp +1 -1
  174. package/nitrogen/generated/android/c++/JSignInMethods.hpp +64 -0
  175. package/nitrogen/generated/android/c++/JSignInTemplateConfig.hpp +222 -0
  176. package/nitrogen/generated/android/c++/JStringTelemetryItem.hpp +1 -1
  177. package/nitrogen/generated/android/c++/JTelemetry.hpp +30 -4
  178. package/nitrogen/generated/android/c++/JTextInputType.hpp +58 -0
  179. package/nitrogen/generated/android/c++/JTrafficSide.hpp +3 -4
  180. package/nitrogen/generated/android/c++/JTravelEstimates.hpp +19 -4
  181. package/nitrogen/generated/android/c++/JTripConfig.hpp +4 -1
  182. package/nitrogen/generated/android/c++/JTripPoint.hpp +4 -1
  183. package/nitrogen/generated/android/c++/JTripPreviewTextConfiguration.hpp +1 -1
  184. package/nitrogen/generated/android/c++/JTripSelectorCallback.hpp +1 -1
  185. package/nitrogen/generated/android/c++/JTripsConfig.hpp +4 -1
  186. package/nitrogen/generated/android/c++/JTurnType.hpp +10 -11
  187. package/nitrogen/generated/android/c++/JVariant_GlyphImage_AssetImage.cpp +1 -1
  188. package/nitrogen/generated/android/c++/JVariant_GlyphImage_AssetImage.hpp +3 -3
  189. package/nitrogen/generated/android/c++/JVariant_PreferredImageLane_ImageLane.cpp +1 -1
  190. package/nitrogen/generated/android/c++/JVariant_PreferredImageLane_ImageLane.hpp +3 -3
  191. package/nitrogen/generated/android/c++/JVariant_QrSignIn_PinSignIn_InputSignIn_GoogleSignIn.cpp +34 -0
  192. package/nitrogen/generated/android/c++/JVariant_QrSignIn_PinSignIn_InputSignIn_GoogleSignIn.hpp +119 -0
  193. package/nitrogen/generated/android/c++/JVehicleTelemetryItem.hpp +1 -1
  194. package/nitrogen/generated/android/c++/JVisibilityState.hpp +5 -6
  195. package/nitrogen/generated/android/c++/JVisibleTravelEstimate.hpp +3 -4
  196. package/nitrogen/generated/android/c++/JZoomEvent.hpp +3 -4
  197. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ActiveCarUxRestrictions.kt +47 -0
  198. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/AlertActionStyle.kt +3 -1
  199. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/AlertDismissalReason.kt +3 -1
  200. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/AppFocusState.kt +41 -0
  201. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/AssetImage.kt +1 -1
  202. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/AutoText.kt +1 -1
  203. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/BooleanTelemetryItem.kt +41 -0
  204. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/CarUxRestrictions.kt +31 -0
  205. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ClusterEventName.kt +3 -1
  206. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ColorScheme.kt +3 -1
  207. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Distance.kt +1 -1
  208. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/DistanceUnits.kt +3 -1
  209. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/DurationWithTimeZone.kt +1 -1
  210. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/EventName.kt +3 -1
  211. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ForkType.kt +3 -1
  212. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void.kt +1 -1
  213. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/{Func_void_std__optional_Telemetry__std__optional_std__string_.kt → Func_void_ActiveCarUxRestrictions.kt} +15 -15
  214. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_AlertDismissalReason.kt +1 -1
  215. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_AppFocusState.kt +80 -0
  216. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_ColorScheme.kt +1 -1
  217. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_Point.kt +1 -1
  218. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_Point_double.kt +1 -1
  219. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_Point_std__optional_Point_.kt +1 -1
  220. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_SafeAreaInsets.kt +1 -1
  221. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_VisibilityState.kt +1 -1
  222. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_bool.kt +1 -1
  223. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__optional_Location__std__optional_std__string_.kt +1 -1
  224. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__optional_Telemetry_.kt +80 -0
  225. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__optional_bool_.kt +1 -1
  226. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__optional_std__string__std__optional_GoogleSignInAccount_.kt +80 -0
  227. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__string.kt +10 -10
  228. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__string_ColorScheme.kt +1 -1
  229. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__string_ZoomEvent.kt +1 -1
  230. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__string_bool.kt +1 -1
  231. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__string_std__string.kt +1 -1
  232. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/GlyphImage.kt +1 -1
  233. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/GoogleSignIn.kt +51 -0
  234. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/GoogleSignInAccount.kt +59 -0
  235. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/GridTemplateConfig.kt +1 -1
  236. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAndroidAutoTelemetrySpec.kt +8 -3
  237. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAndroidAutomotiveSpec.kt +88 -0
  238. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAutoPlaySpec.kt +1 -1
  239. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridClusterSpec.kt +1 -1
  240. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridGridTemplateSpec.kt +1 -1
  241. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridInformationTemplateSpec.kt +1 -1
  242. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridListTemplateSpec.kt +1 -1
  243. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridMapTemplateSpec.kt +1 -1
  244. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridMessageTemplateSpec.kt +1 -1
  245. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridSearchTemplateSpec.kt +1 -1
  246. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridSignInTemplateSpec.kt +62 -0
  247. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ImageLane.kt +1 -1
  248. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/InformationTemplateConfig.kt +1 -1
  249. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/InputSignIn.kt +63 -0
  250. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/KeepType.kt +3 -1
  251. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/KeyboardType.kt +25 -0
  252. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/LaneGuidance.kt +1 -1
  253. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ListTemplateConfig.kt +1 -1
  254. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Location.kt +1 -1
  255. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ManeuverType.kt +3 -1
  256. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/MapTemplateConfig.kt +1 -1
  257. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/MessageTemplateConfig.kt +1 -1
  258. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NavigationAlertAction.kt +1 -1
  259. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroAction.kt +1 -1
  260. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroActionType.kt +3 -1
  261. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroAlignment.kt +3 -1
  262. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroAttributedString.kt +1 -1
  263. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroAttributedStringImage.kt +1 -1
  264. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroBaseMapTemplateConfig.kt +1 -1
  265. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroButtonStyle.kt +3 -1
  266. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroColor.kt +1 -1
  267. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroGridButton.kt +1 -1
  268. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroImage.kt +1 -1
  269. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroLoadingManeuver.kt +1 -1
  270. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroManeuver.kt +1 -1
  271. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroMapButton.kt +1 -1
  272. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroMapButtonType.kt +3 -1
  273. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroMessageManeuver.kt +1 -1
  274. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroNavigationAlert.kt +1 -1
  275. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroRoutingManeuver.kt +1 -1
  276. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroRow.kt +1 -1
  277. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroSection.kt +1 -1
  278. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroSectionType.kt +3 -1
  279. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NumericTelemetryItem.kt +1 -1
  280. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/OffRampType.kt +3 -1
  281. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/OnRampType.kt +3 -1
  282. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/PermissionRequestResult.kt +41 -0
  283. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/PinSignIn.kt +41 -0
  284. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Point.kt +1 -1
  285. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/PreferredImageLane.kt +1 -1
  286. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/QrSignIn.kt +41 -0
  287. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ReactNativeAutoPlayOnLoad.kt +1 -1
  288. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/RouteChoice.kt +1 -1
  289. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/SafeAreaInsets.kt +1 -1
  290. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/SearchTemplateConfig.kt +1 -1
  291. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/SignInMethods.kt +25 -0
  292. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/SignInTemplateConfig.kt +78 -0
  293. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/StringTelemetryItem.kt +1 -1
  294. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Telemetry.kt +22 -4
  295. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TextInputType.kt +23 -0
  296. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TrafficSide.kt +3 -1
  297. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TravelEstimates.kt +12 -5
  298. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TripConfig.kt +1 -1
  299. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TripPoint.kt +1 -1
  300. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TripPreviewTextConfiguration.kt +1 -1
  301. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TripSelectorCallback.kt +1 -1
  302. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TripsConfig.kt +1 -1
  303. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TurnType.kt +3 -1
  304. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Variant_GlyphImage_AssetImage.kt +1 -1
  305. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Variant_PreferredImageLane_ImageLane.kt +1 -1
  306. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Variant_QrSignIn_PinSignIn_InputSignIn_GoogleSignIn.kt +85 -0
  307. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/VehicleTelemetryItem.kt +1 -1
  308. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/VisibilityState.kt +3 -1
  309. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/VisibleTravelEstimate.kt +3 -1
  310. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ZoomEvent.kt +3 -1
  311. package/nitrogen/generated/ios/ReactNativeAutoPlay+autolinking.rb +2 -2
  312. package/nitrogen/generated/ios/ReactNativeAutoPlay-Swift-Cxx-Bridge.cpp +1 -1
  313. package/nitrogen/generated/ios/ReactNativeAutoPlay-Swift-Cxx-Bridge.hpp +4 -4
  314. package/nitrogen/generated/ios/ReactNativeAutoPlay-Swift-Cxx-Umbrella.hpp +1 -1
  315. package/nitrogen/generated/ios/ReactNativeAutoPlayAutolinking.mm +1 -1
  316. package/nitrogen/generated/ios/ReactNativeAutoPlayAutolinking.swift +41 -64
  317. package/nitrogen/generated/ios/c++/HybridAutoPlaySpecSwift.cpp +1 -1
  318. package/nitrogen/generated/ios/c++/HybridAutoPlaySpecSwift.hpp +7 -1
  319. package/nitrogen/generated/ios/c++/HybridCarPlayDashboardSpecSwift.cpp +1 -1
  320. package/nitrogen/generated/ios/c++/HybridCarPlayDashboardSpecSwift.hpp +7 -1
  321. package/nitrogen/generated/ios/c++/HybridClusterSpecSwift.cpp +1 -1
  322. package/nitrogen/generated/ios/c++/HybridClusterSpecSwift.hpp +7 -1
  323. package/nitrogen/generated/ios/c++/HybridGridTemplateSpecSwift.cpp +1 -1
  324. package/nitrogen/generated/ios/c++/HybridGridTemplateSpecSwift.hpp +7 -1
  325. package/nitrogen/generated/ios/c++/HybridInformationTemplateSpecSwift.cpp +1 -1
  326. package/nitrogen/generated/ios/c++/HybridInformationTemplateSpecSwift.hpp +7 -1
  327. package/nitrogen/generated/ios/c++/HybridListTemplateSpecSwift.cpp +1 -1
  328. package/nitrogen/generated/ios/c++/HybridListTemplateSpecSwift.hpp +7 -1
  329. package/nitrogen/generated/ios/c++/HybridMapTemplateSpecSwift.cpp +1 -1
  330. package/nitrogen/generated/ios/c++/HybridMapTemplateSpecSwift.hpp +7 -1
  331. package/nitrogen/generated/ios/c++/HybridMessageTemplateSpecSwift.cpp +1 -1
  332. package/nitrogen/generated/ios/c++/HybridMessageTemplateSpecSwift.hpp +7 -1
  333. package/nitrogen/generated/ios/c++/HybridSearchTemplateSpecSwift.cpp +1 -1
  334. package/nitrogen/generated/ios/c++/HybridSearchTemplateSpecSwift.hpp +7 -1
  335. package/nitrogen/generated/ios/swift/AlertActionStyle.swift +1 -1
  336. package/nitrogen/generated/ios/swift/AlertDismissalReason.swift +1 -1
  337. package/nitrogen/generated/ios/swift/AssetImage.swift +13 -55
  338. package/nitrogen/generated/ios/swift/AutoText.swift +7 -37
  339. package/nitrogen/generated/ios/swift/ClusterEventName.swift +1 -1
  340. package/nitrogen/generated/ios/swift/ColorScheme.swift +1 -1
  341. package/nitrogen/generated/ios/swift/Distance.swift +5 -17
  342. package/nitrogen/generated/ios/swift/DistanceUnits.swift +1 -1
  343. package/nitrogen/generated/ios/swift/DurationWithTimeZone.swift +5 -17
  344. package/nitrogen/generated/ios/swift/EventName.swift +1 -1
  345. package/nitrogen/generated/ios/swift/ForkType.swift +1 -1
  346. package/nitrogen/generated/ios/swift/Func_void.swift +1 -1
  347. package/nitrogen/generated/ios/swift/Func_void_AlertDismissalReason.swift +1 -1
  348. package/nitrogen/generated/ios/swift/Func_void_ColorScheme.swift +1 -1
  349. package/nitrogen/generated/ios/swift/Func_void_Point.swift +1 -1
  350. package/nitrogen/generated/ios/swift/Func_void_Point_double.swift +1 -1
  351. package/nitrogen/generated/ios/swift/Func_void_Point_std__optional_Point_.swift +1 -1
  352. package/nitrogen/generated/ios/swift/Func_void_SafeAreaInsets.swift +1 -1
  353. package/nitrogen/generated/ios/swift/Func_void_VisibilityState.swift +1 -1
  354. package/nitrogen/generated/ios/swift/Func_void_bool.swift +1 -1
  355. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +1 -1
  356. package/nitrogen/generated/ios/swift/Func_void_std__optional_Location__std__optional_std__string_.swift +1 -1
  357. package/nitrogen/generated/ios/swift/Func_void_std__optional_bool_.swift +1 -1
  358. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +1 -1
  359. package/nitrogen/generated/ios/swift/Func_void_std__string_ColorScheme.swift +1 -1
  360. package/nitrogen/generated/ios/swift/Func_void_std__string_ZoomEvent.swift +1 -1
  361. package/nitrogen/generated/ios/swift/Func_void_std__string_bool.swift +1 -1
  362. package/nitrogen/generated/ios/swift/Func_void_std__string_std__string.swift +1 -1
  363. package/nitrogen/generated/ios/swift/GlyphImage.swift +9 -39
  364. package/nitrogen/generated/ios/swift/GridTemplateConfig.swift +114 -255
  365. package/nitrogen/generated/ios/swift/HybridAutoPlaySpec.swift +3 -3
  366. package/nitrogen/generated/ios/swift/HybridAutoPlaySpec_cxx.swift +9 -1
  367. package/nitrogen/generated/ios/swift/HybridCarPlayDashboardSpec.swift +3 -3
  368. package/nitrogen/generated/ios/swift/HybridCarPlayDashboardSpec_cxx.swift +9 -1
  369. package/nitrogen/generated/ios/swift/HybridClusterSpec.swift +3 -3
  370. package/nitrogen/generated/ios/swift/HybridClusterSpec_cxx.swift +9 -1
  371. package/nitrogen/generated/ios/swift/HybridGridTemplateSpec.swift +3 -3
  372. package/nitrogen/generated/ios/swift/HybridGridTemplateSpec_cxx.swift +9 -1
  373. package/nitrogen/generated/ios/swift/HybridInformationTemplateSpec.swift +3 -3
  374. package/nitrogen/generated/ios/swift/HybridInformationTemplateSpec_cxx.swift +9 -1
  375. package/nitrogen/generated/ios/swift/HybridListTemplateSpec.swift +3 -3
  376. package/nitrogen/generated/ios/swift/HybridListTemplateSpec_cxx.swift +9 -1
  377. package/nitrogen/generated/ios/swift/HybridMapTemplateSpec.swift +3 -3
  378. package/nitrogen/generated/ios/swift/HybridMapTemplateSpec_cxx.swift +9 -1
  379. package/nitrogen/generated/ios/swift/HybridMessageTemplateSpec.swift +3 -3
  380. package/nitrogen/generated/ios/swift/HybridMessageTemplateSpec_cxx.swift +9 -1
  381. package/nitrogen/generated/ios/swift/HybridSearchTemplateSpec.swift +3 -3
  382. package/nitrogen/generated/ios/swift/HybridSearchTemplateSpec_cxx.swift +9 -1
  383. package/nitrogen/generated/ios/swift/ImageLane.swift +17 -42
  384. package/nitrogen/generated/ios/swift/InformationTemplateConfig.swift +123 -276
  385. package/nitrogen/generated/ios/swift/KeepType.swift +1 -1
  386. package/nitrogen/generated/ios/swift/LaneGuidance.swift +17 -48
  387. package/nitrogen/generated/ios/swift/ListTemplateConfig.swift +121 -268
  388. package/nitrogen/generated/ios/swift/Location.swift +5 -17
  389. package/nitrogen/generated/ios/swift/ManeuverType.swift +1 -1
  390. package/nitrogen/generated/ios/swift/MapTemplateConfig.swift +232 -499
  391. package/nitrogen/generated/ios/swift/MessageTemplateConfig.swift +144 -322
  392. package/nitrogen/generated/ios/swift/NavigationAlertAction.swift +12 -39
  393. package/nitrogen/generated/ios/swift/NitroAction.swift +55 -149
  394. package/nitrogen/generated/ios/swift/NitroActionType.swift +1 -1
  395. package/nitrogen/generated/ios/swift/NitroAlignment.swift +1 -1
  396. package/nitrogen/generated/ios/swift/NitroAttributedString.swift +12 -36
  397. package/nitrogen/generated/ios/swift/NitroAttributedStringImage.swift +17 -36
  398. package/nitrogen/generated/ios/swift/NitroBaseMapTemplateConfig.swift +129 -267
  399. package/nitrogen/generated/ios/swift/NitroButtonStyle.swift +1 -1
  400. package/nitrogen/generated/ios/swift/NitroCarPlayDashboardButton.swift +35 -93
  401. package/nitrogen/generated/ios/swift/NitroColor.swift +5 -17
  402. package/nitrogen/generated/ios/swift/NitroGridButton.swift +24 -52
  403. package/nitrogen/generated/ios/swift/NitroImage.swift +1 -1
  404. package/nitrogen/generated/ios/swift/NitroLoadingManeuver.swift +3 -9
  405. package/nitrogen/generated/ios/swift/NitroManeuver.swift +1 -1
  406. package/nitrogen/generated/ios/swift/NitroMapButton.swift +31 -65
  407. package/nitrogen/generated/ios/swift/NitroMapButtonType.swift +1 -1
  408. package/nitrogen/generated/ios/swift/NitroMessageManeuver.swift +35 -78
  409. package/nitrogen/generated/ios/swift/NitroNavigationAlert.swift +64 -167
  410. package/nitrogen/generated/ios/swift/NitroRoutingManeuver.swift +91 -309
  411. package/nitrogen/generated/ios/swift/NitroRow.swift +75 -169
  412. package/nitrogen/generated/ios/swift/NitroSection.swift +14 -44
  413. package/nitrogen/generated/ios/swift/NitroSectionType.swift +1 -1
  414. package/nitrogen/generated/ios/swift/OffRampType.swift +1 -1
  415. package/nitrogen/generated/ios/swift/OnRampType.swift +1 -1
  416. package/nitrogen/generated/ios/swift/Point.swift +5 -17
  417. package/nitrogen/generated/ios/swift/PreferredImageLane.swift +21 -58
  418. package/nitrogen/generated/ios/swift/RouteChoice.swift +11 -65
  419. package/nitrogen/generated/ios/swift/SafeAreaInsets.swift +18 -54
  420. package/nitrogen/generated/ios/swift/SearchTemplateConfig.swift +144 -309
  421. package/nitrogen/generated/ios/swift/TrafficSide.swift +1 -1
  422. package/nitrogen/generated/ios/swift/TravelEstimates.swift +34 -32
  423. package/nitrogen/generated/ios/swift/TripConfig.swift +5 -17
  424. package/nitrogen/generated/ios/swift/TripPoint.swift +9 -33
  425. package/nitrogen/generated/ios/swift/TripPreviewTextConfiguration.swift +9 -33
  426. package/nitrogen/generated/ios/swift/TripSelectorCallback.swift +8 -17
  427. package/nitrogen/generated/ios/swift/TripsConfig.swift +5 -23
  428. package/nitrogen/generated/ios/swift/TurnType.swift +1 -1
  429. package/nitrogen/generated/ios/swift/Variant_GlyphImage_AssetImage.swift +1 -1
  430. package/nitrogen/generated/ios/swift/Variant_PreferredImageLane_ImageLane.swift +1 -1
  431. package/nitrogen/generated/ios/swift/VisibilityState.swift +1 -1
  432. package/nitrogen/generated/ios/swift/VisibleTravelEstimate.swift +1 -1
  433. package/nitrogen/generated/ios/swift/ZoomEvent.swift +1 -1
  434. package/nitrogen/generated/shared/c++/ActiveCarUxRestrictions.hpp +97 -0
  435. package/nitrogen/generated/shared/c++/AlertActionStyle.hpp +1 -1
  436. package/nitrogen/generated/shared/c++/AlertDismissalReason.hpp +1 -1
  437. package/nitrogen/generated/shared/c++/AppFocusState.hpp +87 -0
  438. package/nitrogen/generated/shared/c++/AssetImage.hpp +28 -20
  439. package/nitrogen/generated/shared/c++/AutoText.hpp +19 -11
  440. package/nitrogen/generated/shared/c++/BooleanTelemetryItem.hpp +87 -0
  441. package/nitrogen/generated/shared/c++/CarUxRestrictions.hpp +81 -0
  442. package/nitrogen/generated/shared/c++/ClusterEventName.hpp +1 -1
  443. package/nitrogen/generated/shared/c++/ColorScheme.hpp +1 -1
  444. package/nitrogen/generated/shared/c++/Distance.hpp +16 -8
  445. package/nitrogen/generated/shared/c++/DistanceUnits.hpp +1 -1
  446. package/nitrogen/generated/shared/c++/DurationWithTimeZone.hpp +16 -8
  447. package/nitrogen/generated/shared/c++/EventName.hpp +1 -1
  448. package/nitrogen/generated/shared/c++/ForkType.hpp +1 -1
  449. package/nitrogen/generated/shared/c++/GlyphImage.hpp +22 -14
  450. package/nitrogen/generated/shared/c++/GoogleSignIn.hpp +102 -0
  451. package/nitrogen/generated/shared/c++/GoogleSignInAccount.hpp +112 -0
  452. package/nitrogen/generated/shared/c++/GridTemplateConfig.hpp +43 -35
  453. package/nitrogen/generated/shared/c++/HybridAndroidAutoTelemetrySpec.cpp +2 -1
  454. package/nitrogen/generated/shared/c++/HybridAndroidAutoTelemetrySpec.hpp +8 -2
  455. package/nitrogen/generated/shared/c++/HybridAndroidAutomotiveSpec.cpp +25 -0
  456. package/nitrogen/generated/shared/c++/HybridAndroidAutomotiveSpec.hpp +71 -0
  457. package/nitrogen/generated/shared/c++/HybridAutoPlaySpec.cpp +1 -1
  458. package/nitrogen/generated/shared/c++/HybridAutoPlaySpec.hpp +1 -1
  459. package/nitrogen/generated/shared/c++/HybridCarPlayDashboardSpec.cpp +1 -1
  460. package/nitrogen/generated/shared/c++/HybridCarPlayDashboardSpec.hpp +1 -1
  461. package/nitrogen/generated/shared/c++/HybridClusterSpec.cpp +1 -1
  462. package/nitrogen/generated/shared/c++/HybridClusterSpec.hpp +1 -1
  463. package/nitrogen/generated/shared/c++/HybridGridTemplateSpec.cpp +1 -1
  464. package/nitrogen/generated/shared/c++/HybridGridTemplateSpec.hpp +1 -1
  465. package/nitrogen/generated/shared/c++/HybridInformationTemplateSpec.cpp +1 -1
  466. package/nitrogen/generated/shared/c++/HybridInformationTemplateSpec.hpp +1 -1
  467. package/nitrogen/generated/shared/c++/HybridListTemplateSpec.cpp +1 -1
  468. package/nitrogen/generated/shared/c++/HybridListTemplateSpec.hpp +1 -1
  469. package/nitrogen/generated/shared/c++/HybridMapTemplateSpec.cpp +1 -1
  470. package/nitrogen/generated/shared/c++/HybridMapTemplateSpec.hpp +1 -1
  471. package/nitrogen/generated/shared/c++/HybridMessageTemplateSpec.cpp +1 -1
  472. package/nitrogen/generated/shared/c++/HybridMessageTemplateSpec.hpp +1 -1
  473. package/nitrogen/generated/shared/c++/HybridSearchTemplateSpec.cpp +1 -1
  474. package/nitrogen/generated/shared/c++/HybridSearchTemplateSpec.hpp +1 -1
  475. package/nitrogen/generated/shared/c++/HybridSignInTemplateSpec.cpp +22 -0
  476. package/nitrogen/generated/shared/c++/HybridSignInTemplateSpec.hpp +66 -0
  477. package/nitrogen/generated/shared/c++/ImageLane.hpp +16 -8
  478. package/nitrogen/generated/shared/c++/InformationTemplateConfig.hpp +46 -38
  479. package/nitrogen/generated/shared/c++/InputSignIn.hpp +121 -0
  480. package/nitrogen/generated/shared/c++/KeepType.hpp +1 -1
  481. package/nitrogen/generated/shared/c++/KeyboardType.hpp +64 -0
  482. package/nitrogen/generated/shared/c++/LaneGuidance.hpp +16 -8
  483. package/nitrogen/generated/shared/c++/ListTemplateConfig.hpp +43 -35
  484. package/nitrogen/generated/shared/c++/Location.hpp +16 -8
  485. package/nitrogen/generated/shared/c++/ManeuverType.hpp +1 -1
  486. package/nitrogen/generated/shared/c++/MapTemplateConfig.hpp +67 -59
  487. package/nitrogen/generated/shared/c++/MessageTemplateConfig.hpp +49 -41
  488. package/nitrogen/generated/shared/c++/NavigationAlertAction.hpp +19 -11
  489. package/nitrogen/generated/shared/c++/NitroAction.hpp +34 -26
  490. package/nitrogen/generated/shared/c++/NitroActionType.hpp +1 -1
  491. package/nitrogen/generated/shared/c++/NitroAlignment.hpp +1 -1
  492. package/nitrogen/generated/shared/c++/NitroAttributedString.hpp +16 -8
  493. package/nitrogen/generated/shared/c++/NitroAttributedStringImage.hpp +16 -8
  494. package/nitrogen/generated/shared/c++/NitroBaseMapTemplateConfig.hpp +37 -29
  495. package/nitrogen/generated/shared/c++/NitroButtonStyle.hpp +1 -1
  496. package/nitrogen/generated/shared/c++/NitroCarPlayDashboardButton.hpp +25 -17
  497. package/nitrogen/generated/shared/c++/NitroColor.hpp +16 -8
  498. package/nitrogen/generated/shared/c++/NitroGridButton.hpp +19 -11
  499. package/nitrogen/generated/shared/c++/NitroLoadingManeuver.hpp +13 -5
  500. package/nitrogen/generated/shared/c++/NitroMapButton.hpp +19 -11
  501. package/nitrogen/generated/shared/c++/NitroMapButtonType.hpp +1 -1
  502. package/nitrogen/generated/shared/c++/NitroMessageManeuver.hpp +22 -14
  503. package/nitrogen/generated/shared/c++/NitroNavigationAlert.hpp +40 -32
  504. package/nitrogen/generated/shared/c++/NitroRoutingManeuver.hpp +67 -59
  505. package/nitrogen/generated/shared/c++/NitroRow.hpp +34 -26
  506. package/nitrogen/generated/shared/c++/NitroSection.hpp +19 -11
  507. package/nitrogen/generated/shared/c++/NitroSectionType.hpp +1 -1
  508. package/nitrogen/generated/shared/c++/NumericTelemetryItem.hpp +16 -8
  509. package/nitrogen/generated/shared/c++/OffRampType.hpp +1 -1
  510. package/nitrogen/generated/shared/c++/OnRampType.hpp +1 -1
  511. package/nitrogen/generated/shared/c++/PermissionRequestResult.hpp +88 -0
  512. package/nitrogen/generated/shared/c++/PinSignIn.hpp +89 -0
  513. package/nitrogen/generated/shared/c++/Point.hpp +16 -8
  514. package/nitrogen/generated/shared/c++/PreferredImageLane.hpp +22 -14
  515. package/nitrogen/generated/shared/c++/QrSignIn.hpp +89 -0
  516. package/nitrogen/generated/shared/c++/RouteChoice.hpp +25 -17
  517. package/nitrogen/generated/shared/c++/SafeAreaInsets.hpp +25 -17
  518. package/nitrogen/generated/shared/c++/SearchTemplateConfig.hpp +52 -44
  519. package/nitrogen/generated/shared/c++/SignInMethods.hpp +64 -0
  520. package/nitrogen/generated/shared/c++/SignInTemplateConfig.hpp +149 -0
  521. package/nitrogen/generated/shared/c++/StringTelemetryItem.hpp +16 -8
  522. package/nitrogen/generated/shared/c++/Telemetry.hpp +56 -21
  523. package/nitrogen/generated/shared/c++/TextInputType.hpp +62 -0
  524. package/nitrogen/generated/shared/c++/TrafficSide.hpp +1 -1
  525. package/nitrogen/generated/shared/c++/TravelEstimates.hpp +25 -12
  526. package/nitrogen/generated/shared/c++/TripConfig.hpp +16 -8
  527. package/nitrogen/generated/shared/c++/TripPoint.hpp +22 -14
  528. package/nitrogen/generated/shared/c++/TripPreviewTextConfiguration.hpp +22 -14
  529. package/nitrogen/generated/shared/c++/TripSelectorCallback.hpp +13 -5
  530. package/nitrogen/generated/shared/c++/TripsConfig.hpp +16 -8
  531. package/nitrogen/generated/shared/c++/TurnType.hpp +1 -1
  532. package/nitrogen/generated/shared/c++/VehicleTelemetryItem.hpp +19 -11
  533. package/nitrogen/generated/shared/c++/VisibilityState.hpp +1 -1
  534. package/nitrogen/generated/shared/c++/VisibleTravelEstimate.hpp +1 -1
  535. package/nitrogen/generated/shared/c++/ZoomEvent.hpp +1 -1
  536. package/package.json +4 -3
  537. package/src/hooks/useAndroidAutoTelemetry.ts +111 -42
  538. package/src/index.ts +13 -0
  539. package/src/specs/AndroidAutoTelemetry.nitro.ts +19 -1
  540. package/src/specs/AndroidAutomotive.nitro.ts +37 -0
  541. package/src/specs/SignInTemplate.nitro.ts +10 -0
  542. package/src/templates/SignInTemplate.ts +117 -0
  543. package/src/templates/Template.ts +4 -1
  544. package/src/types/SignInMethod.ts +59 -0
  545. package/src/types/Telemetry.ts +33 -0
  546. package/src/types/Trip.ts +4 -0
  547. package/lib/hooks/useIsAutoPlayFocused.d.ts +0 -7
  548. package/lib/hooks/useIsAutoPlayFocused.js +0 -20
  549. package/lib/hybrid.d.ts +0 -2
  550. package/lib/hybrid.js +0 -2
  551. package/lib/specs/AutomotivePermissionRequestTemplate.d.ts +0 -11
  552. package/lib/specs/AutomotivePermissionRequestTemplate.js +0 -1
  553. package/lib/specs/AutomotivePermissionRequestTemplate.nitro.d.ts +0 -11
  554. package/lib/specs/AutomotivePermissionRequestTemplate.nitro.js +0 -1
  555. package/lib/templates/AutomotivePermissionRequestTemplate.d.ts +0 -23
  556. package/lib/templates/AutomotivePermissionRequestTemplate.js +0 -18
  557. package/nitrogen/generated/android/c++/JFunc_void_std__optional_Telemetry__std__optional_std__string_.hpp +0 -85
package/README.md CHANGED
@@ -220,6 +220,89 @@ You can customize certain behaviors of the library on Android Auto by setting pr
220
220
  ```
221
221
  The default values are `1000` for the delay and `500` for the duration.
222
222
 
223
+ ### Android Automotive
224
+
225
+ This library also supports Android Automotive. To enable Android Automotive support, you need to configure a few properties in your Android project.
226
+
227
+ - **`minSdkVersion`**: The minimum API level for Android Automotive is 29. You must set `minSdkVersion` to at least `29`. For Android Auto, the minimum is `24`.
228
+
229
+ - **`isAutomotiveApp` flag**: You need to inform the library if this is an Automotive app by setting the `isAutomotiveApp` property to `true`. For Android Auto, it should be `false`.
230
+
231
+ You can set these properties directly in your `android/gradle.properties` file:
232
+ ```properties
233
+ # For Android Automotive
234
+ minSdkVersion=29
235
+ isAutomotiveApp=true
236
+ ```
237
+
238
+ Alternatively, if you need to support different build variants (e.g., for both Android Auto and Android Automotive from the same codebase), using `react-native-config` is the recommended approach.
239
+
240
+ 1. Install `react-native-config`:
241
+ ```bash
242
+ yarn add react-native-config
243
+ ```
244
+
245
+ 2. Create different `.env` files for your variants. Create a default `.env` for Android Auto:
246
+ ```
247
+ # .env (for Android Auto)
248
+ isAutomotiveApp=false
249
+ minSdkVersion=24
250
+ ```
251
+ And an `.env.automotive` for Android Automotive:
252
+ ```
253
+ # .env.automotive
254
+ minSdkVersion=29
255
+ isAutomotiveApp=true
256
+ ```
257
+
258
+ 3. In your `android/app/build.gradle`, apply the configuration from `react-native-config` based on your build flavors.
259
+ ```groovy
260
+ // android/app/build.gradle
261
+
262
+ project.ext.envConfigFiles = [
263
+ automotive: ".env.automotive",
264
+ // other flavors...
265
+ ]
266
+ apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"
267
+
268
+ if (project.ext.has("env")) {
269
+ rootProject.ext.minSdkVersion = project.ext.env.minSdkVersion
270
+ rootProject.ext.isAutomotiveApp = project.ext.env.isAutomotiveApp
271
+ }
272
+ ```
273
+ Adjust to the build variants your app provides. Check the example app for details.
274
+
275
+ This approach allows you to dynamically set the required flags based on your build variant, which is demonstrated in the example app.
276
+
277
+ #### App launch on Android Automotive
278
+
279
+ Android Automotive requires you to remove your app activity since it invokes the libraries Android Auto service in a different way. Not doing so will bring up 2 app icons on the Android Automotive launcher.
280
+ To get rid of your default activity, do an automotive specific build variant and add this AndroidManifest.xml for that variant.
281
+ ```xml
282
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android"
283
+ xmlns:tools="http://schemas.android.com/tools">
284
+
285
+ <application>
286
+ <activity
287
+ android:name=".MainActivity"
288
+ tools:node="remove" /> <!-- remove main activity -->
289
+ </application>
290
+
291
+ </manifest>
292
+ ```
293
+ For details check the example app and its build variants.
294
+
295
+ #### Non-template Automotive app ####
296
+
297
+ The library can also be used for Android Automotive apps that do not make use of templates. In case you do a navigation app HybridAndroidAutomotive provides methods to monitor and request the app focus to let the system know your app is taking over the navigation focus.
298
+ Do not use app focus related functions on template applications as it fights with the navigation manager used on the map template.
299
+
300
+ #### A Note on Android Studio
301
+
302
+ When using build variants, Android Studio may not be aware of the selected variant during a Gradle sync. This can cause the IDE to show the incorrect implementation of native classes like `AndroidTelemetryObserver` (e.g., it might show the Android Auto version instead of the Automotive version).
303
+
304
+ To work around this and allow for debugging or enhancing the Android Automotive-specific implementation, you can temporarily set the automotive flags in your `gradle.properties` file or your default `.env` file before running a Gradle sync.
305
+
223
306
  ## Icons
224
307
  The library is using [Material Symbols](https://fonts.google.com/icons) for iconography. The font is bundled with the library, so no extra setup is required. You can use these icons on both Android Auto and CarPlay.
225
308
 
@@ -374,7 +457,7 @@ Below is a concise overview of the most important props per template. Optional p
374
457
  | `component` | `React.ComponentType<RootComponentInitialProps>` | ✅ | React component to render on the map surface. |
375
458
  | `onStopNavigation` | `(template: MapTemplate) => void` | ✅ | Called when navigation is stopped by the system. |
376
459
  | `headerActions` | `MapHeaderActions<MapTemplate>` | ❌ | Top action strip. See **Header Actions** below. |
377
- | `mapButtons` | `MapButtons<MapTemplate>` | ❌ | 1–4 map buttons shown on the map. |
460
+ | `mapButtons` | `MapButtons<MapTemplate>` | ❌ | 1–4 map buttons shown on the map. To get working gestures on the MapTemplate running on Android Auto you have to add a `MapPanButton` |
378
461
  | `visibleTravelEstimate` | `'first'` `'last'` | ❌ | Which travel estimate to display. |
379
462
  | `onDidPan` / `onDidUpdateZoomGestureWithCenter` | callbacks | ❌ | Map gesture events. |
380
463
  | `onAppearanceDidChange` | `(colorScheme) => void` | ❌ | Listen for light/dark mode changes. |
@@ -431,13 +514,39 @@ Below is a concise overview of the most important props per template. Optional p
431
514
  | `headerActions` | `HeaderActionsAndroid<MessageTemplate>` | ❌ | Android-only header actions. |
432
515
  | `mapConfig` | `BaseMapTemplateConfig<MessageTemplate>` | ❌ | Android map-with-content layout. |
433
516
 
517
+ #### SignInTemplateConfig (Android-only)
518
+
519
+ | Prop | Type | Required | Notes |
520
+ | --- | --- | --- | --- |
521
+ | `signInMethod` | `SignInMethod` | ✅ | The sign-in method configuration. Can be QRSignIn, PinSignIn, InputSignIn. |
522
+ | `title` | `string` | ❌ | Header title. |
523
+ | `additionalText` | `string` | ❌ | Additional descriptive text. |
524
+ | `instructions` | `string` | ❌ | Sign-in Instructions text. |
525
+ | `actions` | `ActionButton<SignInTemplate>[]` | ❌ | Up to 2 buttons. |
526
+ | `headerActions` | `SignInHeaderActions<SignInTemplate>` | ❌ | Header actions. See **Header Actions** below. |
527
+
528
+ **SignInMethod**
529
+
530
+ | Method | Type | Notes |
531
+ | --- | --- | --- |
532
+ | QR | `QrSignIn` | QR Code sign in |
533
+ | PIN | `PinSignIn` | PIN Code sign in (1–12 characters) |
534
+ | Input | `InputSignIn` | Text sign in, for example mail/username and password |
535
+
536
+ For InputSignIn the keyboard and input fields can be configured with following properties:
537
+
538
+ **KeyboardType enum:** `DEFAULT`, `EMAIL`, `PHONE`, `NUMBER`
539
+
540
+ **TextInputType enum:** `PASSWORD`, `DEFAULT`
541
+
542
+
434
543
  ### Header Actions (Important)
435
544
 
436
545
  On Android, header actions may be omitted, although this is not recommended. If `headerActions` is `undefined`, the system automatically renders the app icon in the header. Because Android Auto enforces monochrome icons, this can result in a poor-looking button.
437
546
 
438
547
  **Use these rules to avoid crashes:**
439
548
 
440
- 1. **For List/Grid/Information/Search/Message templates on Android**, always pass the structured object format (alignment is implicit via `startHeaderAction`/`endHeaderActions`):
549
+ 1. **For List/Grid/Information/Search/Message/SignIn templates on Android**, always pass the structured object format (alignment is implicit via `startHeaderAction`/`endHeaderActions`):
441
550
 
442
551
  ```ts
443
552
  const headerActions: HeaderActions<MyTemplate> = {
@@ -657,20 +766,39 @@ new ListTemplate({
657
766
  - `useVoiceInput()`: Access voice input functionality - Android Auto only.
658
767
  - `useSafeAreaInsets()`: Get safe area insets for any root component.
659
768
  - `useFocusedEffect()`: A useEffect alternative that executes when the specified component is visible to the user - use any of the `AutoPlayModules` enum or a cluster uuid to sepcify the component the effect should listen for.
660
- - `useAndroidAutoTelemetry()`: Access to car telemetry data on Android Auto.
769
+ - `useAndroidAutoTelemetry()`: Access to car telemetry data on Android Auto and Android Automotive.
661
770
  ```tsx
662
771
  import {
663
772
  useAndroidAutoTelemetry,
664
773
  AndroidAutoTelemetryPermissions,
774
+ AndroidAutomotiveTelemetryPermissions,
665
775
  } from '@iternio/react-native-auto-play';
776
+ import Config from 'react-native-config';
666
777
 
667
778
  const MyComponent = () => {
668
779
  const { telemetry, permissionsGranted, error } = useAndroidAutoTelemetry({
669
- requiredPermissions: [
670
- AndroidAutoTelemetryPermissions.Speed,
671
- AndroidAutoTelemetryPermissions.Energy,
672
- AndroidAutoTelemetryPermissions.Odometer,
673
- ],
780
+ requiredPermissions:
781
+ Config.isAutomotiveApp === 'true'
782
+ ? [
783
+ AndroidAutomotiveTelemetryPermissions.Info,
784
+ AndroidAutomotiveTelemetryPermissions.Speed,
785
+ AndroidAutomotiveTelemetryPermissions.Energy,
786
+ AndroidAutomotiveTelemetryPermissions.ExteriorEnvironment,
787
+ AndroidAutomotiveTelemetryPermissions.EnergyPorts,
788
+ ]
789
+ : [
790
+ AndroidAutoTelemetryPermissions.Speed,
791
+ AndroidAutoTelemetryPermissions.Energy,
792
+ AndroidAutoTelemetryPermissions.Odometer,
793
+ ],
794
+ automotivePermissionRequest:
795
+ Config.isAutomotiveApp === 'true'
796
+ ? {
797
+ cancelButtonText: 'Cancel',
798
+ grantButtonText: 'Grant',
799
+ message: 'Grant permission for vehicle telemetry access.',
800
+ }
801
+ : undefined,
674
802
  });
675
803
 
676
804
  if (!permissionsGranted) {
@@ -688,6 +816,14 @@ new ListTemplate({
688
816
  <Text>Battery Level: {telemetry?.batteryLevel?.value}%</Text>
689
817
  <Text>Range: {telemetry?.range?.value} km</Text>
690
818
  <Text>Odometer: {telemetry?.odometer?.value} km</Text>
819
+ <Text>Selected Gear: {telemetry?.selectedGear?.value}</Text>
820
+ <Text>Outside Temperature: {telemetry?.envOutsideTemperature?.value}°C</Text>
821
+ <Text>EV Charge Port Connected: {String(telemetry?.evChargePortConnected?.value)}</Text>
822
+ <Text>EV Battery Charge Rate: {telemetry?.evBatteryInstantaneousChargeRate?.value} kW</Text>
823
+ <Text>Parking Brake On: {String(telemetry?.parkingBrakeOn?.value)}</Text>
824
+ <Text>Vehicle Name: {telemetry?.vehicle?.name?.value}</Text>
825
+ <Text>Vehicle Manufacturer: {telemetry?.vehicle?.manufacturer?.value}</Text>
826
+ <Text>Vehicle Year: {telemetry?.vehicle?.year?.value}</Text>
691
827
  </View>
692
828
  );
693
829
  }
@@ -699,6 +835,15 @@ new ListTemplate({
699
835
  - `range`: Range in km.
700
836
  - `odometer`: Odometer in km.
701
837
  - `vehicle`: Vehicle information (model name, model year, manufacturer).
838
+ - `selectedGear`: The currently selected gear, one of the `VehicleGear` enum:
839
+ - Neutral = 1
840
+ - Reverse = 2
841
+ - Park = 4
842
+ - Drive = 8
843
+ - `envOutsideTemperature`: The outside temperature in °C.
844
+ - `evChargePortConnected`: Whether the EV charge port is connected.
845
+ - `evBatteryInstantaneousChargeRate`: The instantaneous charge rate of the EV battery in kW.
846
+ - `parkingBrakeOn`: Whether the parking brake is on.
702
847
 
703
848
 
704
849
  ### Scenes
@@ -735,7 +880,7 @@ CarPlayDashboard.setButtons([
735
880
 
736
881
  ### iOS
737
882
 
738
- - **Broken exceptions with `react-native-skia`**: When using `react-native-skia` up to version `2.4.7`, exceptions on iOS are not reported correctly. This is fixed in newer versions of `react-native-skia`. For more details, see this [pull request](https://github.com/Shopify/react-native-skia/pull/3595).
883
+ - **Broken exceptions with `react-native-skia`**: When using `react-native-skia` up to version `2.4.14`, exceptions on iOS are not reported correctly. This is fixed in newer versions of `react-native-skia`. For more details, see this [pull request](https://github.com/Shopify/react-native-skia/pull/3595) and [issue](https://github.com/Shopify/react-native-skia/issues/3635).
739
884
  - **AppState on iOS**: The `AppState` module from React Native does not work correctly on iOS because this library uses scenes, which are not supported by the stock `AppState` module. This library provides a custom state listener that works for both Android and iOS. Use `HybridAutoPlay.addListenerRenderState` instead of `AppState`.
740
885
  - **Timers stop on screen lock**: iOS stops all timers when the device's main screen is turned off. To ensure timers continue to run (which is often necessary for background tasks related to autoplay), a patch for `react-native` is required. A patch is included in the root `patches/` directory and can be applied using `patch-package`.
741
886
  - **expo-splash-screen stuck on iOS**: The `expo-splash-screen` module is broken on iOS because it does not support scenes, which are used by this library. This can cause the splash screen to be stuck on either the mobile device or on CarPlay. To fix this, a patch for `expo-splash-screen` is included in the root `patches/` directory and can be applied using `patch-package`. After applying the patch, you can hide the splash screen for a specific scene by passing the module name to the `hide` or `hideAsync` function. The module name can be one of the values from the `AutoPlayModules` enum or the UUID of a cluster screen.
@@ -749,10 +894,16 @@ CarPlayDashboard.setButtons([
749
894
  // Hide the splash screen for the CarPlay screen
750
895
  hideAsync(AutoPlayModules.AutoPlayRoot);
751
896
  ```
897
+ ### Android
898
+ - **Broken exceptions with `react-native`** up to version 0.79
899
+ When using react-native before 0.80.0 exceptions are broken and are reported as `Unknown runtime_error` or similar.
900
+ See [this issue](https://github.com/mrousavy/nitro/issues/382) for details.
901
+ - **@rnmapbox/maps** The map view/camera might take the primary screens scale factor into account when interacting with the map.
902
+ This might lead to broken gestures, in case you face this issue try to apply either the `Dimensions.get('window').scale` or `RootComponentInitialProps.window.scale` to your coordinates.
752
903
 
753
904
  ## Contributing
754
905
 
755
- Contributions are welcome! Please submit a pull request.
906
+ Contributions are welcome! Feel free to open up a [discussion](https://github.com/Iternio-Planning-AB/react-native-auto-play/discussions) or submit a pull request.
756
907
 
757
908
  ## License
758
909
 
@@ -124,8 +124,20 @@ android {
124
124
  "${project.buildDir}/generated/source/codegen/java"
125
125
  ]
126
126
  }
127
+
128
+ if (getExtOrDefault("isAutomotiveApp") == "true") {
129
+ java.srcDirs += 'src/automotive/java'
130
+ manifest.srcFile 'src/automotive/AndroidManifest.xml'
131
+ } else {
132
+ java.srcDirs += 'src/auto/java'
133
+ manifest.srcFile 'src/main/AndroidManifest.xml'
134
+ }
127
135
  }
128
136
  }
137
+
138
+ if (getExtOrDefault("isAutomotiveApp") == "true") {
139
+ useLibrary 'android.car'
140
+ }
129
141
  }
130
142
 
131
143
  repositories {
@@ -133,7 +145,6 @@ repositories {
133
145
  google()
134
146
  }
135
147
 
136
-
137
148
  dependencies {
138
149
  // For < 0.71, this will be from the local maven repo
139
150
  // For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin
@@ -151,5 +162,8 @@ dependencies {
151
162
  println("☎️ Enjoy your nitro powered Android Auto app!")
152
163
  implementation "androidx.car.app:app-projected:1.7.0"
153
164
  }
165
+
166
+ implementation 'com.google.android.gms:play-services-base:18.10.0'
167
+ implementation 'com.google.android.gms:play-services-auth:21.5.0'
154
168
  }
155
169
 
@@ -1,5 +1,5 @@
1
1
  ReactNativeAutoPlay_kotlinVersion=2.1.20
2
- ReactNativeAutoPlay_minSdkVersion=23
2
+ ReactNativeAutoPlay_minSdkVersion=24
3
3
  ReactNativeAutoPlay_targetSdkVersion=36
4
4
  ReactNativeAutoPlay_compileSdkVersion=36
5
5
  ReactNativeAutoPlay_ndkVersion=27.1.12297006
@@ -1,9 +1,5 @@
1
1
  package com.margelo.nitro.swe.iternio.reactnativeautoplay
2
2
 
3
-
4
- import android.os.Handler
5
- import android.os.Looper
6
- import android.util.Log
7
3
  import androidx.car.app.CarContext
8
4
  import androidx.car.app.hardware.CarHardwareManager
9
5
  import androidx.car.app.hardware.common.CarValue
@@ -15,23 +11,27 @@ import androidx.car.app.hardware.info.Speed
15
11
  import androidx.car.app.versioning.CarAppApiLevels
16
12
  import androidx.core.content.ContextCompat
17
13
 
18
- object AndroidAutoTelemetryObserver {
19
- private var telemetryCallbacks: MutableList<(telemetry: Telemetry?, error: String?) -> Unit> =
20
- ArrayList();
21
-
22
- private var isRunning = false
14
+ object AndroidTelemetryObserver : TelemetryObserver() {
23
15
  private var carContext: CarContext? = null
24
16
 
25
- private val telemetryHolder = AndroidAutoTelemetryHolder()
26
- private val handler = Handler(Looper.getMainLooper())
17
+ private val mModelListener = OnCarDataAvailableListener<Model> { model ->
18
+ val name = if (model.name.status == CarValue.STATUS_SUCCESS) {
19
+ model.name.value
20
+ } else null
21
+
22
+ val manufacturer = if (model.manufacturer.status == CarValue.STATUS_SUCCESS) {
23
+ model.manufacturer.value
24
+ } else null
25
+
26
+ val year = if (model.year.status == CarValue.STATUS_SUCCESS) {
27
+ model.year.value
28
+ } else null
27
29
 
28
- private val mModelListener = OnCarDataAvailableListener<Model> {
29
- telemetryHolder.updateVehicle(it)
30
+ telemetryHolder.updateVehicle(name, manufacturer, year)
30
31
 
31
- val tlm = telemetryHolder.toTelemetry()
32
- tlm?.let {
32
+ telemetryHolder.toTelemetry()?.let {
33
33
  telemetryCallbacks.forEach { callback ->
34
- callback(tlm, null)
34
+ callback(it)
35
35
  }
36
36
  }
37
37
  }
@@ -70,51 +70,13 @@ object AndroidAutoTelemetryObserver {
70
70
  }
71
71
  }
72
72
 
73
- private val emitter = object : Runnable {
74
- override fun run() {
75
- val tlm = telemetryHolder.toTelemetry()
76
-
77
- if (tlm != null) {
78
- telemetryCallbacks.forEach { callback ->
79
- callback(tlm, null)
80
- }
81
- }
82
-
83
- handler.postDelayed(this, BuildConfig.TELEMETRY_UPDATE_INTERVAL)
84
- }
85
- }
86
-
87
- fun addListener(callback: (Telemetry?, String?) -> Unit): () -> Unit {
88
- telemetryCallbacks.add(callback)
89
-
90
-
91
- // start is called every time a new listener is registered, so the single shot values are still requested and returned immediately
92
- try {
93
- startTelemetryObserver()
94
- } catch (err: Exception) {
95
- callback(null, err.message)
96
- }
97
-
98
-
99
- return {
100
- telemetryCallbacks.remove(callback)
101
- if (telemetryCallbacks.isEmpty()) {
102
- stopTelemetryObserver()
103
- }
104
- }
105
- }
106
-
107
-
108
- fun startTelemetryObserver(
109
- ) {
110
- val carContext =
111
- AndroidAutoSession.Companion.getCarContext(AndroidAutoSession.Companion.ROOT_SESSION)
112
- ?: throw IllegalArgumentException(
113
- "Car context not available, failed to start telemetry"
114
- )
73
+ override fun startTelemetryObserver(): Boolean {
74
+ val carContext = AndroidAutoSession.getRootContext() ?: throw IllegalArgumentException(
75
+ "Car context not available, failed to start telemetry"
76
+ )
115
77
 
116
78
 
117
- AndroidAutoTelemetryObserver.carContext = carContext
79
+ AndroidTelemetryObserver.carContext = carContext
118
80
  if (carContext.carAppApiLevel < CarAppApiLevels.LEVEL_3) {
119
81
  throw UnsupportedOperationException("Telemetry not supported for this API level ${carContext.carAppApiLevel}")
120
82
  }
@@ -133,13 +95,10 @@ object AndroidAutoTelemetryObserver {
133
95
  } catch (_: NullPointerException) {
134
96
  }
135
97
 
136
- if (isRunning) {
137
- // we stop here to not re-register multiple listeners, only the single shot values can be requested multiple times by registering another tlm listener on RN side
138
- Log.d(
139
- AndroidAutoTelemetryObserver.javaClass.name,
140
- "Telemetry observer is already running"
141
- )
142
- return
98
+ if (isObserverRunning) {
99
+ // we stop here to not re-register multiple listeners
100
+ // only the single shot values can be requested multiple times by registering another tlm listener on RN side
101
+ return false
143
102
  }
144
103
 
145
104
  try {
@@ -160,19 +119,17 @@ object AndroidAutoTelemetryObserver {
160
119
  } catch (_: NullPointerException) {
161
120
  }
162
121
 
163
- handler.post(emitter)
164
-
165
- isRunning = true
166
122
 
167
- Log.d(AndroidAutoTelemetryObserver.javaClass.name, "Telemetry observer started")
123
+ isObserverRunning = true
124
+ return true
168
125
  }
169
126
 
170
- fun stopTelemetryObserver() {
171
- if (!isRunning) {
127
+ override fun stopTelemetryObserver() {
128
+ if (!isObserverRunning) {
172
129
  return
173
130
  }
174
131
 
175
- isRunning = false
132
+ isObserverRunning = false
176
133
 
177
134
  carContext?.let {
178
135
  val carHardwareManager = it.getCarService(
@@ -195,7 +152,5 @@ object AndroidAutoTelemetryObserver {
195
152
  } catch (_: SecurityException) {
196
153
  }
197
154
  }
198
-
199
- handler.removeCallbacks(emitter)
200
155
  }
201
- }
156
+ }
@@ -0,0 +1,25 @@
1
+ package com.margelo.nitro.swe.iternio.reactnativeautoplay
2
+
3
+ class InvalidPlatformException(message: String) : Exception(message)
4
+
5
+ class HybridAndroidAutomotive : HybridAndroidAutomotiveSpec() {
6
+ override fun registerCarUxRestrictionsListener(callback: (restrictions: ActiveCarUxRestrictions) -> Unit): () -> Unit {
7
+ throw InvalidPlatformException("registerCarUxRestrictionsListener is supported on Android Automotive only!")
8
+ }
9
+
10
+ override fun getCarUxRestrictions(): ActiveCarUxRestrictions {
11
+ throw InvalidPlatformException("getCarUxRestrictions is supported on Android Automotive only!")
12
+ }
13
+
14
+ override fun registerAppFocusListener(callback: (state: AppFocusState) -> Unit): () -> Unit {
15
+ throw InvalidPlatformException("registerAppFocusListener is supported on Android Automotive only!")
16
+ }
17
+
18
+ override fun getAppFocusState(): AppFocusState {
19
+ throw InvalidPlatformException("getAppFocusState is supported on Android Automotive only!")
20
+ }
21
+
22
+ override fun requestAppFocus(): () -> Unit {
23
+ throw InvalidPlatformException("requestAppFocus is supported on Android Automotive only!")
24
+ }
25
+ }
@@ -0,0 +1,93 @@
1
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android">
2
+
3
+ <uses-feature
4
+ android:name="android.hardware.type.automotive"
5
+ android:required="true" />
6
+
7
+ <uses-feature
8
+ android:name="android.software.car.templates_host"
9
+ android:required="true" />
10
+
11
+ <uses-permission android:name="androidx.car.app.NAVIGATION_TEMPLATES" />
12
+ <uses-permission android:name="androidx.car.app.MAP_TEMPLATES" />
13
+ <uses-permission android:name="androidx.car.app.ACCESS_SURFACE" />
14
+
15
+ <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
16
+ <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
17
+
18
+ <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
19
+ <uses-permission android:name="android.permission.FOREGROUND_SERVICE_LOCATION" />
20
+
21
+ <uses-permission android:name="android.permission.WAKE_LOCK" />
22
+
23
+
24
+ <!-- Android Automotive specific permissions -->
25
+ <uses-permission android:name="android.car.permission.CAR_ENERGY" />
26
+ <uses-permission android:name="android.car.permission.CAR_ENERGY_PORTS" />
27
+ <uses-permission android:name="android.car.permission.CAR_EXTERIOR_ENVIRONMENT" />
28
+ <uses-permission android:name="android.car.permission.CAR_IDENTIFICATION" />
29
+ <uses-permission android:name="android.car.permission.CAR_INFO" />
30
+ <uses-permission android:name="android.car.permission.CAR_POWERTRAIN" />
31
+ <uses-permission android:name="android.car.permission.CAR_SPEED" />
32
+
33
+ <application>
34
+ <activity
35
+ android:name="androidx.car.app.activity.CarAppActivity"
36
+ android:exported="true"
37
+ android:launchMode="singleTask"
38
+ android:theme="@android:style/Theme.DeviceDefault.NoActionBar">
39
+
40
+ <intent-filter>
41
+ <action android:name="android.intent.action.MAIN" />
42
+
43
+ <category android:name="android.intent.category.LAUNCHER" />
44
+ <category android:name="android.intent.category.APP_MAPS" />
45
+ </intent-filter>
46
+
47
+ <intent-filter>
48
+ <action android:name="androidx.car.app.action.NAVIGATE" />
49
+ <category android:name="android.intent.category.DEFAULT" />
50
+ <data android:scheme="geo" />
51
+ </intent-filter>
52
+
53
+ <meta-data
54
+ android:name="distractionOptimized"
55
+ android:value="true" />
56
+
57
+ </activity>
58
+
59
+ <service
60
+ android:name="com.margelo.nitro.swe.iternio.reactnativeautoplay.AndroidAutoService"
61
+ android:exported="true"
62
+ android:foregroundServiceType="location">
63
+ <intent-filter>
64
+ <action android:name="androidx.car.app.CarAppService" />
65
+
66
+ <category android:name="androidx.car.app.category.NAVIGATION" />
67
+ <category android:name="androidx.car.app.category.FEATURE_CLUSTER" />
68
+ </intent-filter>
69
+ <intent-filter>
70
+ <action android:name="androidx.car.app.action.NAVIGATE" />
71
+ <category android:name="android.intent.category.DEFAULT" />
72
+ <data android:scheme="geo" />
73
+ </intent-filter>
74
+ </service>
75
+
76
+ <service android:name="com.margelo.nitro.swe.iternio.reactnativeautoplay.HeadlessTaskService" />
77
+
78
+ <activity android:name="com.margelo.nitro.swe.iternio.reactnativeautoplay.SignInWithGoogleActivity" />
79
+
80
+ <provider
81
+ android:name="com.margelo.nitro.swe.iternio.reactnativeautoplay.ActivityRenderStateProvider"
82
+ android:authorities="${applicationId}.ActivityRenderStateProvider"
83
+ android:exported="false" />
84
+
85
+ <meta-data
86
+ android:name="com.android.automotive"
87
+ android:resource="@xml/automotive_app_desc" />
88
+ <meta-data
89
+ android:name="androidx.car.app.minCarApiLevel"
90
+ android:value="1" />
91
+ </application>
92
+
93
+ </manifest>