@iternio/react-native-auto-play 0.2.0-alpha.1 → 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 (513) hide show
  1. package/README.md +9 -2
  2. package/android/build.gradle +2 -2
  3. package/android/src/auto/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAndroidAutomotive.kt +25 -0
  4. package/android/src/automotive/AndroidManifest.xml +2 -0
  5. package/android/src/automotive/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidTelemetryObserver.kt +28 -15
  6. package/android/src/automotive/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAndroidAutomotive.kt +185 -0
  7. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidAutoTelemetryHolder.kt +32 -0
  8. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/SignInWithGoogleActivity.kt +57 -0
  9. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/template/AutomotivePermissionRequestTemplate.kt +3 -3
  10. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/template/SignInTemplate.kt +58 -3
  11. package/android/src/main/res/drawable/google.xml +18 -0
  12. package/ios/hybrid/HybridAutoPlay.swift +1 -0
  13. package/ios/hybrid/HybridMapTemplate.swift +1 -1
  14. package/ios/templates/AutoPlayTemplate.swift +2 -2
  15. package/ios/templates/GridTemplate.swift +13 -15
  16. package/ios/templates/InformationTemplate.swift +11 -13
  17. package/ios/templates/ListTemplate.swift +11 -13
  18. package/ios/templates/MapTemplate.swift +24 -20
  19. package/ios/templates/Parser.swift +25 -10
  20. package/ios/templates/SearchTemplate.swift +7 -4
  21. package/lib/hooks/useAndroidAutoTelemetry.d.ts +13 -4
  22. package/lib/hooks/useAndroidAutoTelemetry.js +6 -3
  23. package/lib/index.d.ts +4 -0
  24. package/lib/index.js +4 -0
  25. package/lib/specs/AndroidAutomotive.nitro.d.ts +33 -0
  26. package/lib/specs/AndroidAutomotive.nitro.js +13 -0
  27. package/lib/templates/Template.js +1 -1
  28. package/lib/types/SignInMethod.d.ts +18 -2
  29. package/lib/types/SignInMethod.js +1 -1
  30. package/lib/types/Telemetry.d.ts +4 -0
  31. package/lib/types/Trip.d.ts +4 -0
  32. package/nitro.json +3 -0
  33. package/nitrogen/generated/android/ReactNativeAutoPlay+autolinking.cmake +4 -2
  34. package/nitrogen/generated/android/ReactNativeAutoPlay+autolinking.gradle +1 -1
  35. package/nitrogen/generated/android/ReactNativeAutoPlayOnLoad.cpp +19 -3
  36. package/nitrogen/generated/android/ReactNativeAutoPlayOnLoad.hpp +1 -1
  37. package/nitrogen/generated/android/c++/JActiveCarUxRestrictions.hpp +89 -0
  38. package/nitrogen/generated/android/c++/JAlertActionStyle.hpp +4 -5
  39. package/nitrogen/generated/android/c++/JAlertDismissalReason.hpp +4 -5
  40. package/nitrogen/generated/android/c++/JAppFocusState.hpp +61 -0
  41. package/nitrogen/generated/android/c++/JAssetImage.hpp +1 -1
  42. package/nitrogen/generated/android/c++/JAutoText.hpp +1 -1
  43. package/nitrogen/generated/android/c++/JBooleanTelemetryItem.hpp +1 -1
  44. package/nitrogen/generated/android/c++/JCarUxRestrictions.hpp +82 -0
  45. package/nitrogen/generated/android/c++/JClusterEventName.hpp +5 -6
  46. package/nitrogen/generated/android/c++/JColorScheme.hpp +3 -4
  47. package/nitrogen/generated/android/c++/JDistance.hpp +1 -1
  48. package/nitrogen/generated/android/c++/JDistanceUnits.hpp +6 -7
  49. package/nitrogen/generated/android/c++/JDurationWithTimeZone.hpp +1 -1
  50. package/nitrogen/generated/android/c++/JEventName.hpp +3 -4
  51. package/nitrogen/generated/android/c++/JForkType.hpp +3 -4
  52. package/nitrogen/generated/android/c++/JFunc_void.hpp +1 -1
  53. package/nitrogen/generated/android/c++/JFunc_void_ActiveCarUxRestrictions.hpp +80 -0
  54. package/nitrogen/generated/android/c++/JFunc_void_AlertDismissalReason.hpp +1 -1
  55. package/nitrogen/generated/android/c++/JFunc_void_AppFocusState.hpp +78 -0
  56. package/nitrogen/generated/android/c++/JFunc_void_ColorScheme.hpp +1 -1
  57. package/nitrogen/generated/android/c++/JFunc_void_Point.hpp +1 -1
  58. package/nitrogen/generated/android/c++/JFunc_void_Point_double.hpp +1 -1
  59. package/nitrogen/generated/android/c++/JFunc_void_Point_std__optional_Point_.hpp +1 -1
  60. package/nitrogen/generated/android/c++/JFunc_void_SafeAreaInsets.hpp +1 -1
  61. package/nitrogen/generated/android/c++/JFunc_void_VisibilityState.hpp +1 -1
  62. package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +1 -1
  63. package/nitrogen/generated/android/c++/JFunc_void_std__optional_Location__std__optional_std__string_.hpp +1 -1
  64. package/nitrogen/generated/android/c++/JFunc_void_std__optional_Telemetry_.hpp +1 -1
  65. package/nitrogen/generated/android/c++/JFunc_void_std__optional_bool_.hpp +1 -1
  66. package/nitrogen/generated/android/c++/JFunc_void_std__optional_std__string__std__optional_GoogleSignInAccount_.hpp +79 -0
  67. package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +1 -1
  68. package/nitrogen/generated/android/c++/JFunc_void_std__string_ColorScheme.hpp +1 -1
  69. package/nitrogen/generated/android/c++/JFunc_void_std__string_ZoomEvent.hpp +1 -1
  70. package/nitrogen/generated/android/c++/JFunc_void_std__string_bool.hpp +1 -1
  71. package/nitrogen/generated/android/c++/JFunc_void_std__string_std__string.hpp +1 -1
  72. package/nitrogen/generated/android/c++/JGlyphImage.hpp +1 -1
  73. package/nitrogen/generated/android/c++/JGoogleSignIn.hpp +85 -0
  74. package/nitrogen/generated/android/c++/JGoogleSignInAccount.hpp +86 -0
  75. package/nitrogen/generated/android/c++/JGridTemplateConfig.hpp +1 -1
  76. package/nitrogen/generated/android/c++/JHybridAndroidAutoTelemetrySpec.cpp +8 -1
  77. package/nitrogen/generated/android/c++/JHybridAndroidAutoTelemetrySpec.hpp +2 -1
  78. package/nitrogen/generated/android/c++/JHybridAndroidAutomotiveSpec.cpp +120 -0
  79. package/nitrogen/generated/android/c++/JHybridAndroidAutomotiveSpec.hpp +70 -0
  80. package/nitrogen/generated/android/c++/JHybridAutoPlaySpec.cpp +9 -1
  81. package/nitrogen/generated/android/c++/JHybridAutoPlaySpec.hpp +2 -1
  82. package/nitrogen/generated/android/c++/JHybridClusterSpec.cpp +9 -1
  83. package/nitrogen/generated/android/c++/JHybridClusterSpec.hpp +2 -1
  84. package/nitrogen/generated/android/c++/JHybridGridTemplateSpec.cpp +9 -1
  85. package/nitrogen/generated/android/c++/JHybridGridTemplateSpec.hpp +2 -1
  86. package/nitrogen/generated/android/c++/JHybridInformationTemplateSpec.cpp +9 -1
  87. package/nitrogen/generated/android/c++/JHybridInformationTemplateSpec.hpp +2 -1
  88. package/nitrogen/generated/android/c++/JHybridListTemplateSpec.cpp +9 -1
  89. package/nitrogen/generated/android/c++/JHybridListTemplateSpec.hpp +2 -1
  90. package/nitrogen/generated/android/c++/JHybridMapTemplateSpec.cpp +9 -1
  91. package/nitrogen/generated/android/c++/JHybridMapTemplateSpec.hpp +2 -1
  92. package/nitrogen/generated/android/c++/JHybridMessageTemplateSpec.cpp +8 -1
  93. package/nitrogen/generated/android/c++/JHybridMessageTemplateSpec.hpp +2 -1
  94. package/nitrogen/generated/android/c++/JHybridSearchTemplateSpec.cpp +9 -1
  95. package/nitrogen/generated/android/c++/JHybridSearchTemplateSpec.hpp +2 -1
  96. package/nitrogen/generated/android/c++/JHybridSignInTemplateSpec.cpp +19 -2
  97. package/nitrogen/generated/android/c++/JHybridSignInTemplateSpec.hpp +2 -1
  98. package/nitrogen/generated/android/c++/JImageLane.hpp +1 -1
  99. package/nitrogen/generated/android/c++/JInformationTemplateConfig.hpp +1 -1
  100. package/nitrogen/generated/android/c++/JInputSignIn.hpp +1 -1
  101. package/nitrogen/generated/android/c++/JKeepType.hpp +4 -5
  102. package/nitrogen/generated/android/c++/JKeyboardType.hpp +5 -6
  103. package/nitrogen/generated/android/c++/JLaneGuidance.hpp +1 -1
  104. package/nitrogen/generated/android/c++/JListTemplateConfig.hpp +1 -1
  105. package/nitrogen/generated/android/c++/JLocation.hpp +1 -1
  106. package/nitrogen/generated/android/c++/JManeuverType.hpp +13 -14
  107. package/nitrogen/generated/android/c++/JMapTemplateConfig.hpp +1 -1
  108. package/nitrogen/generated/android/c++/JMessageTemplateConfig.hpp +1 -1
  109. package/nitrogen/generated/android/c++/JNavigationAlertAction.hpp +1 -1
  110. package/nitrogen/generated/android/c++/JNitroAction.hpp +1 -1
  111. package/nitrogen/generated/android/c++/JNitroActionType.hpp +4 -5
  112. package/nitrogen/generated/android/c++/JNitroAlignment.hpp +3 -4
  113. package/nitrogen/generated/android/c++/JNitroAttributedString.hpp +1 -1
  114. package/nitrogen/generated/android/c++/JNitroAttributedStringImage.hpp +1 -1
  115. package/nitrogen/generated/android/c++/JNitroBaseMapTemplateConfig.hpp +1 -1
  116. package/nitrogen/generated/android/c++/JNitroButtonStyle.hpp +6 -7
  117. package/nitrogen/generated/android/c++/JNitroColor.hpp +1 -1
  118. package/nitrogen/generated/android/c++/JNitroGridButton.hpp +1 -1
  119. package/nitrogen/generated/android/c++/JNitroImage.cpp +1 -1
  120. package/nitrogen/generated/android/c++/JNitroImage.hpp +3 -3
  121. package/nitrogen/generated/android/c++/JNitroLoadingManeuver.hpp +1 -1
  122. package/nitrogen/generated/android/c++/JNitroManeuver.cpp +1 -1
  123. package/nitrogen/generated/android/c++/JNitroManeuver.hpp +7 -4
  124. package/nitrogen/generated/android/c++/JNitroMapButton.hpp +1 -1
  125. package/nitrogen/generated/android/c++/JNitroMapButtonType.hpp +3 -4
  126. package/nitrogen/generated/android/c++/JNitroMessageManeuver.hpp +1 -1
  127. package/nitrogen/generated/android/c++/JNitroNavigationAlert.hpp +1 -1
  128. package/nitrogen/generated/android/c++/JNitroRoutingManeuver.hpp +4 -1
  129. package/nitrogen/generated/android/c++/JNitroRow.hpp +1 -1
  130. package/nitrogen/generated/android/c++/JNitroSection.hpp +1 -1
  131. package/nitrogen/generated/android/c++/JNitroSectionType.hpp +3 -4
  132. package/nitrogen/generated/android/c++/JNumericTelemetryItem.hpp +1 -1
  133. package/nitrogen/generated/android/c++/JOffRampType.hpp +5 -6
  134. package/nitrogen/generated/android/c++/JOnRampType.hpp +9 -10
  135. package/nitrogen/generated/android/c++/JPermissionRequestResult.hpp +1 -1
  136. package/nitrogen/generated/android/c++/JPinSignIn.hpp +1 -1
  137. package/nitrogen/generated/android/c++/JPoint.hpp +1 -1
  138. package/nitrogen/generated/android/c++/JPreferredImageLane.hpp +1 -1
  139. package/nitrogen/generated/android/c++/JQrSignIn.hpp +1 -1
  140. package/nitrogen/generated/android/c++/JRouteChoice.hpp +4 -1
  141. package/nitrogen/generated/android/c++/JSafeAreaInsets.hpp +1 -1
  142. package/nitrogen/generated/android/c++/JSearchTemplateConfig.hpp +1 -1
  143. package/nitrogen/generated/android/c++/JSignInMethods.hpp +7 -8
  144. package/nitrogen/generated/android/c++/JSignInTemplateConfig.hpp +11 -6
  145. package/nitrogen/generated/android/c++/JStringTelemetryItem.hpp +1 -1
  146. package/nitrogen/generated/android/c++/JTelemetry.hpp +8 -4
  147. package/nitrogen/generated/android/c++/JTextInputType.hpp +3 -4
  148. package/nitrogen/generated/android/c++/JTrafficSide.hpp +3 -4
  149. package/nitrogen/generated/android/c++/JTravelEstimates.hpp +19 -4
  150. package/nitrogen/generated/android/c++/JTripConfig.hpp +4 -1
  151. package/nitrogen/generated/android/c++/JTripPoint.hpp +4 -1
  152. package/nitrogen/generated/android/c++/JTripPreviewTextConfiguration.hpp +1 -1
  153. package/nitrogen/generated/android/c++/JTripSelectorCallback.hpp +1 -1
  154. package/nitrogen/generated/android/c++/JTripsConfig.hpp +4 -1
  155. package/nitrogen/generated/android/c++/JTurnType.hpp +10 -11
  156. package/nitrogen/generated/android/c++/JVariant_GlyphImage_AssetImage.cpp +1 -1
  157. package/nitrogen/generated/android/c++/JVariant_GlyphImage_AssetImage.hpp +3 -3
  158. package/nitrogen/generated/android/c++/JVariant_PreferredImageLane_ImageLane.cpp +1 -1
  159. package/nitrogen/generated/android/c++/JVariant_PreferredImageLane_ImageLane.hpp +3 -3
  160. package/nitrogen/generated/android/c++/JVariant_QrSignIn_PinSignIn_InputSignIn_GoogleSignIn.cpp +34 -0
  161. package/nitrogen/generated/android/c++/{JVariant_QrSignIn_PinSignIn_InputSignIn.hpp → JVariant_QrSignIn_PinSignIn_InputSignIn_GoogleSignIn.hpp} +41 -21
  162. package/nitrogen/generated/android/c++/JVehicleTelemetryItem.hpp +1 -1
  163. package/nitrogen/generated/android/c++/JVisibilityState.hpp +5 -6
  164. package/nitrogen/generated/android/c++/JVisibleTravelEstimate.hpp +3 -4
  165. package/nitrogen/generated/android/c++/JZoomEvent.hpp +3 -4
  166. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ActiveCarUxRestrictions.kt +47 -0
  167. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/AlertActionStyle.kt +3 -1
  168. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/AlertDismissalReason.kt +3 -1
  169. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/AppFocusState.kt +41 -0
  170. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/AssetImage.kt +3 -3
  171. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/AutoText.kt +4 -4
  172. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/BooleanTelemetryItem.kt +2 -2
  173. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/CarUxRestrictions.kt +31 -0
  174. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ClusterEventName.kt +3 -1
  175. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ColorScheme.kt +3 -1
  176. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Distance.kt +2 -2
  177. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/DistanceUnits.kt +3 -1
  178. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/DurationWithTimeZone.kt +2 -2
  179. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/EventName.kt +3 -1
  180. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ForkType.kt +3 -1
  181. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void.kt +1 -1
  182. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_ActiveCarUxRestrictions.kt +80 -0
  183. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_AlertDismissalReason.kt +1 -1
  184. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_AppFocusState.kt +80 -0
  185. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_ColorScheme.kt +1 -1
  186. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_Point.kt +1 -1
  187. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_Point_double.kt +1 -1
  188. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_Point_std__optional_Point_.kt +1 -1
  189. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_SafeAreaInsets.kt +1 -1
  190. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_VisibilityState.kt +1 -1
  191. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_bool.kt +1 -1
  192. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__optional_Location__std__optional_std__string_.kt +1 -1
  193. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__optional_Telemetry_.kt +1 -1
  194. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__optional_bool_.kt +1 -1
  195. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__optional_std__string__std__optional_GoogleSignInAccount_.kt +80 -0
  196. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__string.kt +1 -1
  197. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__string_ColorScheme.kt +1 -1
  198. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__string_ZoomEvent.kt +1 -1
  199. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__string_bool.kt +1 -1
  200. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__string_std__string.kt +1 -1
  201. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/GlyphImage.kt +3 -3
  202. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/GoogleSignIn.kt +51 -0
  203. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/GoogleSignInAccount.kt +59 -0
  204. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/GridTemplateConfig.kt +10 -10
  205. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAndroidAutoTelemetrySpec.kt +1 -1
  206. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAndroidAutomotiveSpec.kt +88 -0
  207. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAutoPlaySpec.kt +1 -1
  208. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridClusterSpec.kt +1 -1
  209. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridGridTemplateSpec.kt +1 -1
  210. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridInformationTemplateSpec.kt +1 -1
  211. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridListTemplateSpec.kt +1 -1
  212. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridMapTemplateSpec.kt +1 -1
  213. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridMessageTemplateSpec.kt +1 -1
  214. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridSearchTemplateSpec.kt +1 -1
  215. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridSignInTemplateSpec.kt +1 -1
  216. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ImageLane.kt +2 -2
  217. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/InformationTemplateConfig.kt +11 -11
  218. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/InputSignIn.kt +7 -7
  219. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/KeepType.kt +3 -1
  220. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/KeyboardType.kt +3 -1
  221. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/LaneGuidance.kt +2 -2
  222. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ListTemplateConfig.kt +11 -11
  223. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Location.kt +2 -2
  224. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ManeuverType.kt +3 -1
  225. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/MapTemplateConfig.kt +19 -19
  226. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/MessageTemplateConfig.kt +13 -13
  227. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NavigationAlertAction.kt +3 -3
  228. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroAction.kt +8 -8
  229. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroActionType.kt +3 -1
  230. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroAlignment.kt +3 -1
  231. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroAttributedString.kt +3 -3
  232. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroAttributedStringImage.kt +2 -2
  233. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroBaseMapTemplateConfig.kt +11 -11
  234. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroButtonStyle.kt +3 -1
  235. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroColor.kt +2 -2
  236. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroGridButton.kt +2 -2
  237. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroImage.kt +1 -1
  238. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroLoadingManeuver.kt +2 -2
  239. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroManeuver.kt +1 -1
  240. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroMapButton.kt +3 -3
  241. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroMapButtonType.kt +3 -1
  242. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroMessageManeuver.kt +4 -4
  243. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroNavigationAlert.kt +7 -7
  244. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroRoutingManeuver.kt +14 -14
  245. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroRow.kt +8 -8
  246. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroSection.kt +3 -3
  247. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroSectionType.kt +3 -1
  248. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NumericTelemetryItem.kt +2 -2
  249. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/OffRampType.kt +3 -1
  250. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/OnRampType.kt +3 -1
  251. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/PermissionRequestResult.kt +2 -2
  252. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/PinSignIn.kt +2 -2
  253. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Point.kt +2 -2
  254. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/PreferredImageLane.kt +2 -2
  255. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/QrSignIn.kt +2 -2
  256. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ReactNativeAutoPlayOnLoad.kt +1 -1
  257. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/RouteChoice.kt +2 -2
  258. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/SafeAreaInsets.kt +3 -3
  259. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/SearchTemplateConfig.kt +11 -11
  260. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/SignInMethods.kt +4 -2
  261. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/SignInTemplateConfig.kt +16 -16
  262. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/StringTelemetryItem.kt +2 -2
  263. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Telemetry.kt +18 -15
  264. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TextInputType.kt +3 -1
  265. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TrafficSide.kt +3 -1
  266. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TravelEstimates.kt +13 -6
  267. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TripConfig.kt +2 -2
  268. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TripPoint.kt +2 -2
  269. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TripPreviewTextConfiguration.kt +2 -2
  270. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TripSelectorCallback.kt +2 -2
  271. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TripsConfig.kt +2 -2
  272. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TurnType.kt +3 -1
  273. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Variant_GlyphImage_AssetImage.kt +1 -1
  274. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Variant_PreferredImageLane_ImageLane.kt +1 -1
  275. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/{Variant_QrSignIn_PinSignIn_InputSignIn.kt → Variant_QrSignIn_PinSignIn_InputSignIn_GoogleSignIn.kt} +24 -11
  276. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/VehicleTelemetryItem.kt +5 -5
  277. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/VisibilityState.kt +3 -1
  278. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/VisibleTravelEstimate.kt +3 -1
  279. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ZoomEvent.kt +3 -1
  280. package/nitrogen/generated/ios/ReactNativeAutoPlay+autolinking.rb +2 -2
  281. package/nitrogen/generated/ios/ReactNativeAutoPlay-Swift-Cxx-Bridge.cpp +1 -1
  282. package/nitrogen/generated/ios/ReactNativeAutoPlay-Swift-Cxx-Bridge.hpp +4 -4
  283. package/nitrogen/generated/ios/ReactNativeAutoPlay-Swift-Cxx-Umbrella.hpp +1 -1
  284. package/nitrogen/generated/ios/ReactNativeAutoPlayAutolinking.mm +1 -1
  285. package/nitrogen/generated/ios/ReactNativeAutoPlayAutolinking.swift +41 -64
  286. package/nitrogen/generated/ios/c++/HybridAutoPlaySpecSwift.cpp +1 -1
  287. package/nitrogen/generated/ios/c++/HybridAutoPlaySpecSwift.hpp +7 -1
  288. package/nitrogen/generated/ios/c++/HybridCarPlayDashboardSpecSwift.cpp +1 -1
  289. package/nitrogen/generated/ios/c++/HybridCarPlayDashboardSpecSwift.hpp +7 -1
  290. package/nitrogen/generated/ios/c++/HybridClusterSpecSwift.cpp +1 -1
  291. package/nitrogen/generated/ios/c++/HybridClusterSpecSwift.hpp +7 -1
  292. package/nitrogen/generated/ios/c++/HybridGridTemplateSpecSwift.cpp +1 -1
  293. package/nitrogen/generated/ios/c++/HybridGridTemplateSpecSwift.hpp +7 -1
  294. package/nitrogen/generated/ios/c++/HybridInformationTemplateSpecSwift.cpp +1 -1
  295. package/nitrogen/generated/ios/c++/HybridInformationTemplateSpecSwift.hpp +7 -1
  296. package/nitrogen/generated/ios/c++/HybridListTemplateSpecSwift.cpp +1 -1
  297. package/nitrogen/generated/ios/c++/HybridListTemplateSpecSwift.hpp +7 -1
  298. package/nitrogen/generated/ios/c++/HybridMapTemplateSpecSwift.cpp +1 -1
  299. package/nitrogen/generated/ios/c++/HybridMapTemplateSpecSwift.hpp +7 -1
  300. package/nitrogen/generated/ios/c++/HybridMessageTemplateSpecSwift.cpp +1 -1
  301. package/nitrogen/generated/ios/c++/HybridMessageTemplateSpecSwift.hpp +7 -1
  302. package/nitrogen/generated/ios/c++/HybridSearchTemplateSpecSwift.cpp +1 -1
  303. package/nitrogen/generated/ios/c++/HybridSearchTemplateSpecSwift.hpp +7 -1
  304. package/nitrogen/generated/ios/swift/AlertActionStyle.swift +1 -1
  305. package/nitrogen/generated/ios/swift/AlertDismissalReason.swift +1 -1
  306. package/nitrogen/generated/ios/swift/AssetImage.swift +13 -55
  307. package/nitrogen/generated/ios/swift/AutoText.swift +7 -37
  308. package/nitrogen/generated/ios/swift/ClusterEventName.swift +1 -1
  309. package/nitrogen/generated/ios/swift/ColorScheme.swift +1 -1
  310. package/nitrogen/generated/ios/swift/Distance.swift +5 -17
  311. package/nitrogen/generated/ios/swift/DistanceUnits.swift +1 -1
  312. package/nitrogen/generated/ios/swift/DurationWithTimeZone.swift +5 -17
  313. package/nitrogen/generated/ios/swift/EventName.swift +1 -1
  314. package/nitrogen/generated/ios/swift/ForkType.swift +1 -1
  315. package/nitrogen/generated/ios/swift/Func_void.swift +1 -1
  316. package/nitrogen/generated/ios/swift/Func_void_AlertDismissalReason.swift +1 -1
  317. package/nitrogen/generated/ios/swift/Func_void_ColorScheme.swift +1 -1
  318. package/nitrogen/generated/ios/swift/Func_void_Point.swift +1 -1
  319. package/nitrogen/generated/ios/swift/Func_void_Point_double.swift +1 -1
  320. package/nitrogen/generated/ios/swift/Func_void_Point_std__optional_Point_.swift +1 -1
  321. package/nitrogen/generated/ios/swift/Func_void_SafeAreaInsets.swift +1 -1
  322. package/nitrogen/generated/ios/swift/Func_void_VisibilityState.swift +1 -1
  323. package/nitrogen/generated/ios/swift/Func_void_bool.swift +1 -1
  324. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +1 -1
  325. package/nitrogen/generated/ios/swift/Func_void_std__optional_Location__std__optional_std__string_.swift +1 -1
  326. package/nitrogen/generated/ios/swift/Func_void_std__optional_bool_.swift +1 -1
  327. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +1 -1
  328. package/nitrogen/generated/ios/swift/Func_void_std__string_ColorScheme.swift +1 -1
  329. package/nitrogen/generated/ios/swift/Func_void_std__string_ZoomEvent.swift +1 -1
  330. package/nitrogen/generated/ios/swift/Func_void_std__string_bool.swift +1 -1
  331. package/nitrogen/generated/ios/swift/Func_void_std__string_std__string.swift +1 -1
  332. package/nitrogen/generated/ios/swift/GlyphImage.swift +9 -39
  333. package/nitrogen/generated/ios/swift/GridTemplateConfig.swift +114 -255
  334. package/nitrogen/generated/ios/swift/HybridAutoPlaySpec.swift +3 -3
  335. package/nitrogen/generated/ios/swift/HybridAutoPlaySpec_cxx.swift +9 -1
  336. package/nitrogen/generated/ios/swift/HybridCarPlayDashboardSpec.swift +3 -3
  337. package/nitrogen/generated/ios/swift/HybridCarPlayDashboardSpec_cxx.swift +9 -1
  338. package/nitrogen/generated/ios/swift/HybridClusterSpec.swift +3 -3
  339. package/nitrogen/generated/ios/swift/HybridClusterSpec_cxx.swift +9 -1
  340. package/nitrogen/generated/ios/swift/HybridGridTemplateSpec.swift +3 -3
  341. package/nitrogen/generated/ios/swift/HybridGridTemplateSpec_cxx.swift +9 -1
  342. package/nitrogen/generated/ios/swift/HybridInformationTemplateSpec.swift +3 -3
  343. package/nitrogen/generated/ios/swift/HybridInformationTemplateSpec_cxx.swift +9 -1
  344. package/nitrogen/generated/ios/swift/HybridListTemplateSpec.swift +3 -3
  345. package/nitrogen/generated/ios/swift/HybridListTemplateSpec_cxx.swift +9 -1
  346. package/nitrogen/generated/ios/swift/HybridMapTemplateSpec.swift +3 -3
  347. package/nitrogen/generated/ios/swift/HybridMapTemplateSpec_cxx.swift +9 -1
  348. package/nitrogen/generated/ios/swift/HybridMessageTemplateSpec.swift +3 -3
  349. package/nitrogen/generated/ios/swift/HybridMessageTemplateSpec_cxx.swift +9 -1
  350. package/nitrogen/generated/ios/swift/HybridSearchTemplateSpec.swift +3 -3
  351. package/nitrogen/generated/ios/swift/HybridSearchTemplateSpec_cxx.swift +9 -1
  352. package/nitrogen/generated/ios/swift/ImageLane.swift +17 -42
  353. package/nitrogen/generated/ios/swift/InformationTemplateConfig.swift +123 -276
  354. package/nitrogen/generated/ios/swift/KeepType.swift +1 -1
  355. package/nitrogen/generated/ios/swift/LaneGuidance.swift +17 -48
  356. package/nitrogen/generated/ios/swift/ListTemplateConfig.swift +121 -268
  357. package/nitrogen/generated/ios/swift/Location.swift +5 -17
  358. package/nitrogen/generated/ios/swift/ManeuverType.swift +1 -1
  359. package/nitrogen/generated/ios/swift/MapTemplateConfig.swift +232 -499
  360. package/nitrogen/generated/ios/swift/MessageTemplateConfig.swift +144 -322
  361. package/nitrogen/generated/ios/swift/NavigationAlertAction.swift +12 -39
  362. package/nitrogen/generated/ios/swift/NitroAction.swift +55 -149
  363. package/nitrogen/generated/ios/swift/NitroActionType.swift +1 -1
  364. package/nitrogen/generated/ios/swift/NitroAlignment.swift +1 -1
  365. package/nitrogen/generated/ios/swift/NitroAttributedString.swift +12 -36
  366. package/nitrogen/generated/ios/swift/NitroAttributedStringImage.swift +17 -36
  367. package/nitrogen/generated/ios/swift/NitroBaseMapTemplateConfig.swift +129 -267
  368. package/nitrogen/generated/ios/swift/NitroButtonStyle.swift +1 -1
  369. package/nitrogen/generated/ios/swift/NitroCarPlayDashboardButton.swift +35 -93
  370. package/nitrogen/generated/ios/swift/NitroColor.swift +5 -17
  371. package/nitrogen/generated/ios/swift/NitroGridButton.swift +24 -52
  372. package/nitrogen/generated/ios/swift/NitroImage.swift +1 -1
  373. package/nitrogen/generated/ios/swift/NitroLoadingManeuver.swift +3 -9
  374. package/nitrogen/generated/ios/swift/NitroManeuver.swift +1 -1
  375. package/nitrogen/generated/ios/swift/NitroMapButton.swift +31 -65
  376. package/nitrogen/generated/ios/swift/NitroMapButtonType.swift +1 -1
  377. package/nitrogen/generated/ios/swift/NitroMessageManeuver.swift +35 -78
  378. package/nitrogen/generated/ios/swift/NitroNavigationAlert.swift +64 -167
  379. package/nitrogen/generated/ios/swift/NitroRoutingManeuver.swift +91 -309
  380. package/nitrogen/generated/ios/swift/NitroRow.swift +75 -169
  381. package/nitrogen/generated/ios/swift/NitroSection.swift +14 -44
  382. package/nitrogen/generated/ios/swift/NitroSectionType.swift +1 -1
  383. package/nitrogen/generated/ios/swift/OffRampType.swift +1 -1
  384. package/nitrogen/generated/ios/swift/OnRampType.swift +1 -1
  385. package/nitrogen/generated/ios/swift/Point.swift +5 -17
  386. package/nitrogen/generated/ios/swift/PreferredImageLane.swift +21 -58
  387. package/nitrogen/generated/ios/swift/RouteChoice.swift +11 -65
  388. package/nitrogen/generated/ios/swift/SafeAreaInsets.swift +18 -54
  389. package/nitrogen/generated/ios/swift/SearchTemplateConfig.swift +144 -309
  390. package/nitrogen/generated/ios/swift/TrafficSide.swift +1 -1
  391. package/nitrogen/generated/ios/swift/TravelEstimates.swift +34 -32
  392. package/nitrogen/generated/ios/swift/TripConfig.swift +5 -17
  393. package/nitrogen/generated/ios/swift/TripPoint.swift +9 -33
  394. package/nitrogen/generated/ios/swift/TripPreviewTextConfiguration.swift +9 -33
  395. package/nitrogen/generated/ios/swift/TripSelectorCallback.swift +8 -17
  396. package/nitrogen/generated/ios/swift/TripsConfig.swift +5 -23
  397. package/nitrogen/generated/ios/swift/TurnType.swift +1 -1
  398. package/nitrogen/generated/ios/swift/Variant_GlyphImage_AssetImage.swift +1 -1
  399. package/nitrogen/generated/ios/swift/Variant_PreferredImageLane_ImageLane.swift +1 -1
  400. package/nitrogen/generated/ios/swift/VisibilityState.swift +1 -1
  401. package/nitrogen/generated/ios/swift/VisibleTravelEstimate.swift +1 -1
  402. package/nitrogen/generated/ios/swift/ZoomEvent.swift +1 -1
  403. package/nitrogen/generated/shared/c++/ActiveCarUxRestrictions.hpp +97 -0
  404. package/nitrogen/generated/shared/c++/AlertActionStyle.hpp +1 -1
  405. package/nitrogen/generated/shared/c++/AlertDismissalReason.hpp +1 -1
  406. package/nitrogen/generated/shared/c++/AppFocusState.hpp +87 -0
  407. package/nitrogen/generated/shared/c++/AssetImage.hpp +28 -20
  408. package/nitrogen/generated/shared/c++/AutoText.hpp +19 -11
  409. package/nitrogen/generated/shared/c++/BooleanTelemetryItem.hpp +16 -8
  410. package/nitrogen/generated/shared/c++/CarUxRestrictions.hpp +81 -0
  411. package/nitrogen/generated/shared/c++/ClusterEventName.hpp +1 -1
  412. package/nitrogen/generated/shared/c++/ColorScheme.hpp +1 -1
  413. package/nitrogen/generated/shared/c++/Distance.hpp +16 -8
  414. package/nitrogen/generated/shared/c++/DistanceUnits.hpp +1 -1
  415. package/nitrogen/generated/shared/c++/DurationWithTimeZone.hpp +16 -8
  416. package/nitrogen/generated/shared/c++/EventName.hpp +1 -1
  417. package/nitrogen/generated/shared/c++/ForkType.hpp +1 -1
  418. package/nitrogen/generated/shared/c++/GlyphImage.hpp +22 -14
  419. package/nitrogen/generated/shared/c++/GoogleSignIn.hpp +102 -0
  420. package/nitrogen/generated/shared/c++/GoogleSignInAccount.hpp +112 -0
  421. package/nitrogen/generated/shared/c++/GridTemplateConfig.hpp +43 -35
  422. package/nitrogen/generated/shared/c++/HybridAndroidAutoTelemetrySpec.cpp +1 -1
  423. package/nitrogen/generated/shared/c++/HybridAndroidAutoTelemetrySpec.hpp +1 -1
  424. package/nitrogen/generated/shared/c++/HybridAndroidAutomotiveSpec.cpp +25 -0
  425. package/nitrogen/generated/shared/c++/HybridAndroidAutomotiveSpec.hpp +71 -0
  426. package/nitrogen/generated/shared/c++/HybridAutoPlaySpec.cpp +1 -1
  427. package/nitrogen/generated/shared/c++/HybridAutoPlaySpec.hpp +1 -1
  428. package/nitrogen/generated/shared/c++/HybridCarPlayDashboardSpec.cpp +1 -1
  429. package/nitrogen/generated/shared/c++/HybridCarPlayDashboardSpec.hpp +1 -1
  430. package/nitrogen/generated/shared/c++/HybridClusterSpec.cpp +1 -1
  431. package/nitrogen/generated/shared/c++/HybridClusterSpec.hpp +1 -1
  432. package/nitrogen/generated/shared/c++/HybridGridTemplateSpec.cpp +1 -1
  433. package/nitrogen/generated/shared/c++/HybridGridTemplateSpec.hpp +1 -1
  434. package/nitrogen/generated/shared/c++/HybridInformationTemplateSpec.cpp +1 -1
  435. package/nitrogen/generated/shared/c++/HybridInformationTemplateSpec.hpp +1 -1
  436. package/nitrogen/generated/shared/c++/HybridListTemplateSpec.cpp +1 -1
  437. package/nitrogen/generated/shared/c++/HybridListTemplateSpec.hpp +1 -1
  438. package/nitrogen/generated/shared/c++/HybridMapTemplateSpec.cpp +1 -1
  439. package/nitrogen/generated/shared/c++/HybridMapTemplateSpec.hpp +1 -1
  440. package/nitrogen/generated/shared/c++/HybridMessageTemplateSpec.cpp +1 -1
  441. package/nitrogen/generated/shared/c++/HybridMessageTemplateSpec.hpp +1 -1
  442. package/nitrogen/generated/shared/c++/HybridSearchTemplateSpec.cpp +1 -1
  443. package/nitrogen/generated/shared/c++/HybridSearchTemplateSpec.hpp +1 -1
  444. package/nitrogen/generated/shared/c++/HybridSignInTemplateSpec.cpp +1 -1
  445. package/nitrogen/generated/shared/c++/HybridSignInTemplateSpec.hpp +1 -1
  446. package/nitrogen/generated/shared/c++/ImageLane.hpp +16 -8
  447. package/nitrogen/generated/shared/c++/InformationTemplateConfig.hpp +46 -38
  448. package/nitrogen/generated/shared/c++/InputSignIn.hpp +34 -26
  449. package/nitrogen/generated/shared/c++/KeepType.hpp +1 -1
  450. package/nitrogen/generated/shared/c++/KeyboardType.hpp +1 -1
  451. package/nitrogen/generated/shared/c++/LaneGuidance.hpp +16 -8
  452. package/nitrogen/generated/shared/c++/ListTemplateConfig.hpp +43 -35
  453. package/nitrogen/generated/shared/c++/Location.hpp +16 -8
  454. package/nitrogen/generated/shared/c++/ManeuverType.hpp +1 -1
  455. package/nitrogen/generated/shared/c++/MapTemplateConfig.hpp +67 -59
  456. package/nitrogen/generated/shared/c++/MessageTemplateConfig.hpp +49 -41
  457. package/nitrogen/generated/shared/c++/NavigationAlertAction.hpp +19 -11
  458. package/nitrogen/generated/shared/c++/NitroAction.hpp +34 -26
  459. package/nitrogen/generated/shared/c++/NitroActionType.hpp +1 -1
  460. package/nitrogen/generated/shared/c++/NitroAlignment.hpp +1 -1
  461. package/nitrogen/generated/shared/c++/NitroAttributedString.hpp +16 -8
  462. package/nitrogen/generated/shared/c++/NitroAttributedStringImage.hpp +16 -8
  463. package/nitrogen/generated/shared/c++/NitroBaseMapTemplateConfig.hpp +37 -29
  464. package/nitrogen/generated/shared/c++/NitroButtonStyle.hpp +1 -1
  465. package/nitrogen/generated/shared/c++/NitroCarPlayDashboardButton.hpp +25 -17
  466. package/nitrogen/generated/shared/c++/NitroColor.hpp +16 -8
  467. package/nitrogen/generated/shared/c++/NitroGridButton.hpp +19 -11
  468. package/nitrogen/generated/shared/c++/NitroLoadingManeuver.hpp +13 -5
  469. package/nitrogen/generated/shared/c++/NitroMapButton.hpp +19 -11
  470. package/nitrogen/generated/shared/c++/NitroMapButtonType.hpp +1 -1
  471. package/nitrogen/generated/shared/c++/NitroMessageManeuver.hpp +22 -14
  472. package/nitrogen/generated/shared/c++/NitroNavigationAlert.hpp +40 -32
  473. package/nitrogen/generated/shared/c++/NitroRoutingManeuver.hpp +67 -59
  474. package/nitrogen/generated/shared/c++/NitroRow.hpp +34 -26
  475. package/nitrogen/generated/shared/c++/NitroSection.hpp +19 -11
  476. package/nitrogen/generated/shared/c++/NitroSectionType.hpp +1 -1
  477. package/nitrogen/generated/shared/c++/NumericTelemetryItem.hpp +16 -8
  478. package/nitrogen/generated/shared/c++/OffRampType.hpp +1 -1
  479. package/nitrogen/generated/shared/c++/OnRampType.hpp +1 -1
  480. package/nitrogen/generated/shared/c++/PermissionRequestResult.hpp +16 -8
  481. package/nitrogen/generated/shared/c++/PinSignIn.hpp +16 -8
  482. package/nitrogen/generated/shared/c++/Point.hpp +16 -8
  483. package/nitrogen/generated/shared/c++/PreferredImageLane.hpp +22 -14
  484. package/nitrogen/generated/shared/c++/QrSignIn.hpp +16 -8
  485. package/nitrogen/generated/shared/c++/RouteChoice.hpp +25 -17
  486. package/nitrogen/generated/shared/c++/SafeAreaInsets.hpp +25 -17
  487. package/nitrogen/generated/shared/c++/SearchTemplateConfig.hpp +52 -44
  488. package/nitrogen/generated/shared/c++/SignInMethods.hpp +2 -2
  489. package/nitrogen/generated/shared/c++/SignInTemplateConfig.hpp +54 -43
  490. package/nitrogen/generated/shared/c++/StringTelemetryItem.hpp +16 -8
  491. package/nitrogen/generated/shared/c++/Telemetry.hpp +48 -36
  492. package/nitrogen/generated/shared/c++/TextInputType.hpp +1 -1
  493. package/nitrogen/generated/shared/c++/TrafficSide.hpp +1 -1
  494. package/nitrogen/generated/shared/c++/TravelEstimates.hpp +25 -12
  495. package/nitrogen/generated/shared/c++/TripConfig.hpp +16 -8
  496. package/nitrogen/generated/shared/c++/TripPoint.hpp +22 -14
  497. package/nitrogen/generated/shared/c++/TripPreviewTextConfiguration.hpp +22 -14
  498. package/nitrogen/generated/shared/c++/TripSelectorCallback.hpp +13 -5
  499. package/nitrogen/generated/shared/c++/TripsConfig.hpp +16 -8
  500. package/nitrogen/generated/shared/c++/TurnType.hpp +1 -1
  501. package/nitrogen/generated/shared/c++/VehicleTelemetryItem.hpp +19 -11
  502. package/nitrogen/generated/shared/c++/VisibilityState.hpp +1 -1
  503. package/nitrogen/generated/shared/c++/VisibleTravelEstimate.hpp +1 -1
  504. package/nitrogen/generated/shared/c++/ZoomEvent.hpp +1 -1
  505. package/package.json +2 -3
  506. package/src/hooks/useAndroidAutoTelemetry.ts +48 -32
  507. package/src/index.ts +11 -0
  508. package/src/specs/AndroidAutomotive.nitro.ts +37 -0
  509. package/src/templates/Template.ts +4 -1
  510. package/src/types/SignInMethod.ts +20 -2
  511. package/src/types/Telemetry.ts +4 -0
  512. package/src/types/Trip.ts +4 -0
  513. package/nitrogen/generated/android/c++/JVariant_QrSignIn_PinSignIn_InputSignIn.cpp +0 -30
package/README.md CHANGED
@@ -292,6 +292,11 @@ To get rid of your default activity, do an automotive specific build variant and
292
292
  ```
293
293
  For details check the example app and its build variants.
294
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
+
295
300
  #### A Note on Android Studio
296
301
 
297
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).
@@ -452,7 +457,7 @@ Below is a concise overview of the most important props per template. Optional p
452
457
  | `component` | `React.ComponentType<RootComponentInitialProps>` | ✅ | React component to render on the map surface. |
453
458
  | `onStopNavigation` | `(template: MapTemplate) => void` | ✅ | Called when navigation is stopped by the system. |
454
459
  | `headerActions` | `MapHeaderActions<MapTemplate>` | ❌ | Top action strip. See **Header Actions** below. |
455
- | `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` |
456
461
  | `visibleTravelEstimate` | `'first'` `'last'` | ❌ | Which travel estimate to display. |
457
462
  | `onDidPan` / `onDidUpdateZoomGestureWithCenter` | callbacks | ❌ | Map gesture events. |
458
463
  | `onAppearanceDidChange` | `(colorScheme) => void` | ❌ | Listen for light/dark mode changes. |
@@ -893,10 +898,12 @@ CarPlayDashboard.setButtons([
893
898
  - **Broken exceptions with `react-native`** up to version 0.79
894
899
  When using react-native before 0.80.0 exceptions are broken and are reported as `Unknown runtime_error` or similar.
895
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.
896
903
 
897
904
  ## Contributing
898
905
 
899
- 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.
900
907
 
901
908
  ## License
902
909
 
@@ -163,7 +163,7 @@ dependencies {
163
163
  implementation "androidx.car.app:app-projected:1.7.0"
164
164
  }
165
165
 
166
- implementation 'com.google.android.gms:play-services-base:18.3.0'
167
- implementation 'com.google.android.gms:play-services-auth:21.0.0'
166
+ implementation 'com.google.android.gms:play-services-base:18.10.0'
167
+ implementation 'com.google.android.gms:play-services-auth:21.5.0'
168
168
  }
169
169
 
@@ -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
+ }
@@ -75,6 +75,8 @@
75
75
 
76
76
  <service android:name="com.margelo.nitro.swe.iternio.reactnativeautoplay.HeadlessTaskService" />
77
77
 
78
+ <activity android:name="com.margelo.nitro.swe.iternio.reactnativeautoplay.SignInWithGoogleActivity" />
79
+
78
80
  <provider
79
81
  android:name="com.margelo.nitro.swe.iternio.reactnativeautoplay.ActivityRenderStateProvider"
80
82
  android:authorities="${applicationId}.ActivityRenderStateProvider"
@@ -7,6 +7,7 @@ import android.car.VehiclePropertyIds
7
7
  import android.car.hardware.CarPropertyValue
8
8
  import android.car.hardware.property.CarPropertyManager
9
9
  import android.util.Log
10
+ import com.margelo.nitro.NitroModules
10
11
  import kotlin.math.floor
11
12
 
12
13
  private val REQUIRED_VEHICLE_PROPERTY_IDS = listOf(
@@ -61,7 +62,18 @@ object AndroidTelemetryObserver : TelemetryObserver() {
61
62
  selectedGear = NumericTelemetryItem(
62
63
  timestamp = floor(System.currentTimeMillis() / 1000.0),
63
64
  value = selectedGear.toDouble()
64
- )
65
+ ),
66
+ vehicle = null,
67
+ batteryLevel = null,
68
+ range = null,
69
+ speed = null,
70
+ odometer = null,
71
+ fuelLevel = null,
72
+ parkingBrakeOn = null,
73
+ evChargePortConnected = null,
74
+ envOutsideTemperature = null,
75
+ evBatteryInstantaneousChargeRate = null,
76
+ soe = null
65
77
  )
66
78
  )
67
79
  }
@@ -82,7 +94,18 @@ object AndroidTelemetryObserver : TelemetryObserver() {
82
94
  selectedGear = NumericTelemetryItem(
83
95
  timestamp = floor(System.currentTimeMillis() / 1000.0),
84
96
  value = selectedGear.toDouble()
85
- )
97
+ ),
98
+ vehicle = null,
99
+ batteryLevel = null,
100
+ range = null,
101
+ speed = null,
102
+ odometer = null,
103
+ fuelLevel = null,
104
+ parkingBrakeOn = null,
105
+ evChargePortConnected = null,
106
+ envOutsideTemperature = null,
107
+ evBatteryInstantaneousChargeRate = null,
108
+ soe = null
86
109
  )
87
110
  )
88
111
  }
@@ -101,14 +124,8 @@ object AndroidTelemetryObserver : TelemetryObserver() {
101
124
 
102
125
  VehiclePropertyIds.EV_BATTERY_LEVEL -> {
103
126
  val capacity = batteryCapacity ?: return
104
- if (capacity <= 0f) {
105
- throw Exception("got invalid battery capacity $capacity")
106
- }
107
- val soc = getValue<Float>(p0) / capacity * 100
108
- if (!soc.isFinite() || floor(soc) < 0 || floor(soc) > 100) {
109
- throw Exception("got invalid soc $soc, expecting value from 0 to 100 EV_BATTERY_LEVEL: ${p0.value}, evBatteryCapacity: $capacity")
110
- }
111
- telemetryHolder.updateBatteryLevel(soc)
127
+ val level: Float = getValue(p0)
128
+ telemetryHolder.updateBatteryLevel(level, capacity)
112
129
  }
113
130
 
114
131
  VehiclePropertyIds.PERF_VEHICLE_SPEED -> telemetryHolder.updateSpeed(
@@ -140,14 +157,10 @@ object AndroidTelemetryObserver : TelemetryObserver() {
140
157
  return false
141
158
  }
142
159
 
143
- val carContext = AndroidAutoSession.getRootContext() ?: throw IllegalArgumentException(
144
- "Car context not available, failed to start telemetry"
145
- )
146
-
147
160
  // create new instance so we can access all props after permissions were granted
148
161
  mCar?.disconnect()
149
162
 
150
- val car = Car.createCar(carContext)
163
+ val car = Car.createCar(NitroModules.applicationContext)
151
164
  mCar = car
152
165
 
153
166
  fetchStaticData(car)
@@ -0,0 +1,185 @@
1
+ package com.margelo.nitro.swe.iternio.reactnativeautoplay
2
+
3
+ import android.car.Car
4
+ import android.car.CarAppFocusManager
5
+ import android.car.CarAppFocusManager.OnAppFocusChangedListener
6
+ import android.car.CarAppFocusManager.OnAppFocusOwnershipCallback
7
+ import android.car.drivingstate.CarUxRestrictionsManager
8
+ import com.margelo.nitro.NitroModules
9
+ import java.util.concurrent.CopyOnWriteArrayList
10
+ import java.util.concurrent.atomic.AtomicReference
11
+
12
+ class HybridAndroidAutomotive : HybridAndroidAutomotiveSpec() {
13
+ private val car = Car.createCar(NitroModules.applicationContext)
14
+
15
+ private val onAppFocusOwnershipCallback = object : OnAppFocusOwnershipCallback {
16
+ override fun onAppFocusOwnershipGranted(appType: Int) {
17
+ isFocusOwned.set(true)
18
+ notifyAppFocusListeners()
19
+ }
20
+
21
+ override fun onAppFocusOwnershipLost(appType: Int) {
22
+ isFocusOwned.set(false)
23
+ notifyAppFocusListeners()
24
+ }
25
+ }
26
+
27
+ private val onAppFocusChangedListener = OnAppFocusChangedListener { appType, active ->
28
+ isFocusActive.set(active)
29
+
30
+ val carAppFocusManager = car.getCarManager(Car.APP_FOCUS_SERVICE) as CarAppFocusManager
31
+ // docs say we should not get an event when we receive our own app focus
32
+ // but we still do get it. so we do a check here again if we own it or not
33
+ val isOwned = carAppFocusManager.isOwningFocus(
34
+ onAppFocusOwnershipCallback, appType
35
+ )
36
+ isFocusOwned.set(isOwned)
37
+
38
+ notifyAppFocusListeners()
39
+ }
40
+
41
+ override fun registerCarUxRestrictionsListener(callback: (restrictions: ActiveCarUxRestrictions) -> Unit): () -> Unit {
42
+ if (uxRestrictionListeners.isEmpty()) {
43
+ val uxRestrictionManager =
44
+ car.getCarManager(Car.CAR_UX_RESTRICTION_SERVICE) as CarUxRestrictionsManager
45
+
46
+ uxRestrictionManager.registerListener {
47
+ notifyUxRestrictionListeners(it.toActiveCarUxRestrictions())
48
+ }
49
+ }
50
+
51
+ uxRestrictionListeners.add(callback)
52
+
53
+ return {
54
+ uxRestrictionListeners.remove(callback)
55
+
56
+ if (uxRestrictionListeners.isEmpty()) {
57
+ val uxRestrictionManager =
58
+ car.getCarManager(Car.CAR_UX_RESTRICTION_SERVICE) as CarUxRestrictionsManager
59
+
60
+ uxRestrictionManager.unregisterListener()
61
+ }
62
+ }
63
+ }
64
+
65
+ override fun getCarUxRestrictions(): ActiveCarUxRestrictions {
66
+ val uxRestrictionManager =
67
+ car.getCarManager(Car.CAR_UX_RESTRICTION_SERVICE) as CarUxRestrictionsManager
68
+
69
+ return uxRestrictionManager.currentCarUxRestrictions.toActiveCarUxRestrictions()
70
+ }
71
+
72
+ override fun registerAppFocusListener(callback: (state: AppFocusState) -> Unit): () -> Unit {
73
+ if (appFocusListeners.isEmpty()) {
74
+ val carAppFocusManager = car.getCarManager(Car.APP_FOCUS_SERVICE) as CarAppFocusManager
75
+
76
+ carAppFocusManager.addFocusListener(
77
+ onAppFocusChangedListener, CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION
78
+ )
79
+ }
80
+
81
+ appFocusListeners.add(callback)
82
+
83
+ return {
84
+ appFocusListeners.remove(callback)
85
+
86
+ if (appFocusListeners.isEmpty()) {
87
+ val carAppFocusManager =
88
+ car.getCarManager(Car.APP_FOCUS_SERVICE) as CarAppFocusManager
89
+
90
+ carAppFocusManager.removeFocusListener(
91
+ onAppFocusChangedListener, CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION
92
+ )
93
+ }
94
+ }
95
+ }
96
+
97
+ override fun getAppFocusState(): AppFocusState {
98
+ val carAppFocusManager = car.getCarManager(Car.APP_FOCUS_SERVICE) as CarAppFocusManager
99
+ val isOwned = carAppFocusManager.isOwningFocus(
100
+ onAppFocusOwnershipCallback, CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION
101
+ )
102
+
103
+ isFocusOwned.set(isOwned)
104
+
105
+ return AppFocusState(isOwned, isFocusActive.get())
106
+ }
107
+
108
+ override fun requestAppFocus(): () -> Unit {
109
+ val carAppFocusManager = car.getCarManager(Car.APP_FOCUS_SERVICE) as CarAppFocusManager
110
+ carAppFocusManager.requestAppFocus(
111
+ CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION, onAppFocusOwnershipCallback
112
+ )
113
+
114
+ return {
115
+ carAppFocusManager.abandonAppFocus(
116
+ onAppFocusOwnershipCallback, CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION
117
+ )
118
+ }
119
+ }
120
+
121
+ companion object {
122
+ private var isFocusOwned = AtomicReference<Boolean?>(null)
123
+ private var isFocusActive = AtomicReference<Boolean?>(null)
124
+
125
+ private val uxRestrictionListeners =
126
+ CopyOnWriteArrayList<(ActiveCarUxRestrictions) -> Unit>()
127
+ private val appFocusListeners = CopyOnWriteArrayList<(AppFocusState) -> Unit>()
128
+
129
+ private fun notifyAppFocusListeners() {
130
+ val state = AppFocusState(isFocusOwned.get(), isFocusActive.get())
131
+
132
+ appFocusListeners.forEach {
133
+ it(state)
134
+ }
135
+ }
136
+
137
+ private fun notifyUxRestrictionListeners(restrictions: ActiveCarUxRestrictions) {
138
+ uxRestrictionListeners.forEach {
139
+ it(restrictions)
140
+ }
141
+ }
142
+ }
143
+
144
+ fun android.car.drivingstate.CarUxRestrictions.toActiveCarUxRestrictions(): ActiveCarUxRestrictions {
145
+ val restrictions = mutableListOf<CarUxRestrictions>()
146
+
147
+ if ((activeRestrictions and android.car.drivingstate.CarUxRestrictions.UX_RESTRICTIONS_NO_DIALPAD) != 0) {
148
+ restrictions.add(CarUxRestrictions.UX_RESTRICTIONS_NO_DIALPAD)
149
+ }
150
+ if ((activeRestrictions and android.car.drivingstate.CarUxRestrictions.UX_RESTRICTIONS_NO_FILTERING) != 0) {
151
+ restrictions.add(CarUxRestrictions.UX_RESTRICTIONS_NO_FILTERING)
152
+ }
153
+ if ((activeRestrictions and android.car.drivingstate.CarUxRestrictions.UX_RESTRICTIONS_LIMIT_STRING_LENGTH) != 0) {
154
+ restrictions.add(CarUxRestrictions.UX_RESTRICTIONS_LIMIT_STRING_LENGTH)
155
+ }
156
+ if ((activeRestrictions and android.car.drivingstate.CarUxRestrictions.UX_RESTRICTIONS_NO_KEYBOARD) != 0) {
157
+ restrictions.add(CarUxRestrictions.UX_RESTRICTIONS_NO_KEYBOARD)
158
+ }
159
+ if ((activeRestrictions and android.car.drivingstate.CarUxRestrictions.UX_RESTRICTIONS_NO_VIDEO) != 0) {
160
+ restrictions.add(CarUxRestrictions.UX_RESTRICTIONS_NO_VIDEO)
161
+ }
162
+ if ((activeRestrictions and android.car.drivingstate.CarUxRestrictions.UX_RESTRICTIONS_LIMIT_CONTENT) != 0) {
163
+ restrictions.add(CarUxRestrictions.UX_RESTRICTIONS_LIMIT_CONTENT)
164
+ }
165
+ if ((activeRestrictions and android.car.drivingstate.CarUxRestrictions.UX_RESTRICTIONS_NO_SETUP) != 0) {
166
+ restrictions.add(CarUxRestrictions.UX_RESTRICTIONS_NO_SETUP)
167
+ }
168
+ if ((activeRestrictions and android.car.drivingstate.CarUxRestrictions.UX_RESTRICTIONS_NO_TEXT_MESSAGE) != 0) {
169
+ restrictions.add(CarUxRestrictions.UX_RESTRICTIONS_NO_TEXT_MESSAGE)
170
+ }
171
+ if ((activeRestrictions and android.car.drivingstate.CarUxRestrictions.UX_RESTRICTIONS_NO_VOICE_TRANSCRIPTION) != 0) {
172
+ restrictions.add(CarUxRestrictions.UX_RESTRICTIONS_NO_VOICE_TRANSCRIPTION)
173
+ }
174
+ if (activeRestrictions == android.car.drivingstate.CarUxRestrictions.UX_RESTRICTIONS_FULLY_RESTRICTED) {
175
+ restrictions.add(CarUxRestrictions.UX_RESTRICTIONS_FULLY_RESTRICTED)
176
+ }
177
+
178
+ return ActiveCarUxRestrictions(
179
+ maxContentDepth = maxContentDepth.toDouble(),
180
+ maxCumulativeContentItems = maxCumulativeContentItems.toDouble(),
181
+ maxRestrictedStringLength = maxRestrictedStringLength.toDouble(),
182
+ activeRestrictions = restrictions.toTypedArray()
183
+ )
184
+ }
185
+ }
@@ -1,5 +1,7 @@
1
1
  package com.margelo.nitro.swe.iternio.reactnativeautoplay
2
2
 
3
+ import kotlin.math.floor
4
+
3
5
  class AndroidAutoTelemetryHolder {
4
6
  private var isDirty = false
5
7
  private val lock = Any()
@@ -34,6 +36,9 @@ class AndroidAutoTelemetryHolder {
34
36
  private var parkingBrakeOn: Boolean? = null
35
37
  private var parkingBrakeOnTimestamp: Int? = null
36
38
 
39
+ private var soe: Float? = null
40
+ private var soeTimestamp: Int? = null
41
+
37
42
  private var name: String? = null
38
43
  private var manufacturer: String? = null
39
44
  private var year: Int? = null
@@ -146,6 +151,30 @@ class AndroidAutoTelemetryHolder {
146
151
  isDirty = true
147
152
  }
148
153
 
154
+ fun updateBatteryLevel(levelWh: Float, capacityWh: Float) = synchronized(lock) {
155
+ if (soe == levelWh) {
156
+ return
157
+ }
158
+
159
+ if (capacityWh <= 0f) {
160
+ throw Exception("got invalid battery capacity $capacityWh")
161
+ }
162
+
163
+ val soc = levelWh / capacityWh * 100
164
+ if (!soc.isFinite() || floor(soc) < 0 || floor(soc) > 100) {
165
+ throw Exception("got invalid soc $soc, expecting value from 0 to 100 EV_BATTERY_LEVEL: ${levelWh}, evBatteryCapacity: $capacityWh")
166
+ }
167
+
168
+ soe = levelWh
169
+ batteryLevel = soc
170
+
171
+ val timestamp = (System.currentTimeMillis() / 1000L).toInt()
172
+ soeTimestamp = timestamp
173
+ batteryLevelTimestamp = timestamp
174
+
175
+ isDirty = true
176
+ }
177
+
149
178
  fun toTelemetry(): Telemetry? {
150
179
  synchronized(lock) {
151
180
  if (!isDirty) {
@@ -173,6 +202,9 @@ class AndroidAutoTelemetryHolder {
173
202
  evBatteryInstantaneousChargeRate = createNumericTelemetryItem(
174
203
  evBatteryInstantaneousChargeRate, evBatteryInstantaneousChargeRateTimeStamp
175
204
  ),
205
+ soe = createNumericTelemetryItem(
206
+ soe, soeTimestamp
207
+ ),
176
208
  vehicle = VehicleTelemetryItem(
177
209
  name = createStringTelemetryItem(name),
178
210
  manufacturer = createStringTelemetryItem(manufacturer),
@@ -0,0 +1,57 @@
1
+ package com.margelo.nitro.swe.iternio.reactnativeautoplay
2
+
3
+ import android.os.Binder
4
+ import android.os.Bundle
5
+ import android.os.IBinder
6
+ import androidx.activity.ComponentActivity
7
+ import androidx.activity.result.ActivityResult
8
+ import androidx.activity.result.contract.ActivityResultContracts
9
+ import com.google.android.gms.auth.api.signin.GoogleSignIn
10
+ import com.google.android.gms.auth.api.signin.GoogleSignInAccount
11
+ import com.google.android.gms.auth.api.signin.GoogleSignInOptions
12
+ import java.security.InvalidParameterException
13
+ import javax.annotation.Nullable
14
+
15
+ class SignInWithGoogleActivity : ComponentActivity() {
16
+ override fun onCreate(savedInstanceState: Bundle?) {
17
+ super.onCreate(savedInstanceState)
18
+
19
+ val signInCompleteCallback = intent.extras?.getBinder(BINDER_KEY) as OnSignInComplete?
20
+
21
+ val serverClientId = intent.extras?.getString("serverClientId")
22
+ ?: throw InvalidParameterException("missing serverClientId parameter")
23
+
24
+ val activityResultLauncher = registerForActivityResult(
25
+ ActivityResultContracts.StartActivityForResult()
26
+ ) { result: ActivityResult ->
27
+ val account = GoogleSignIn.getSignedInAccountFromIntent(
28
+ result.data
29
+ ).result
30
+ signInCompleteCallback?.onSignInComplete(account)
31
+ finish()
32
+ }
33
+
34
+ val googleSignInClient = GoogleSignIn.getClient(
35
+ this,
36
+ GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
37
+ .requestServerAuthCode(serverClientId).requestEmail().build()
38
+ )
39
+ activityResultLauncher.launch(googleSignInClient.signInIntent)
40
+ }
41
+
42
+ /**
43
+ * Binder callback to provide to the sign in activity.
44
+ */
45
+ abstract class OnSignInComplete : Binder(), IBinder {
46
+ /**
47
+ * Notifies that sign in flow completed.
48
+ *
49
+ * @param account the account signed in or `null` if there were issues signing in.
50
+ */
51
+ abstract fun onSignInComplete(@Nullable account: GoogleSignInAccount?)
52
+ }
53
+
54
+ companion object {
55
+ const val BINDER_KEY = "SignInWithGoogleActivity"
56
+ }
57
+ }
@@ -41,7 +41,7 @@ class AutomotivePermissionRequestTemplate(
41
41
 
42
42
  if (granted) {
43
43
  setResult(PermissionRequestResult(permissions, arrayOf()))
44
- screenManager.pop()
44
+ finish()
45
45
  return
46
46
  }
47
47
 
@@ -85,7 +85,7 @@ class AutomotivePermissionRequestTemplate(
85
85
  granted.toTypedArray(), denied.toTypedArray()
86
86
  )
87
87
  )
88
- screenManager.pop()
88
+ finish()
89
89
  })
90
90
  })
91
91
  cancelButtonText?.let {
@@ -93,7 +93,7 @@ class AutomotivePermissionRequestTemplate(
93
93
  setTitle(it)
94
94
  setOnClickListener(ParkedOnlyOnClickListener.create {
95
95
  setResult(PermissionRequestResult(arrayOf(), permissions))
96
- screenManager.pop()
96
+ finish()
97
97
  })
98
98
  }.build())
99
99
  }
@@ -1,22 +1,33 @@
1
1
  package com.margelo.nitro.swe.iternio.reactnativeautoplay.template
2
2
 
3
+ import android.content.Intent
3
4
  import android.net.Uri
5
+ import android.os.Bundle
4
6
  import androidx.car.app.CarContext
7
+ import androidx.car.app.model.Action
5
8
  import androidx.car.app.model.ActionStrip
9
+ import androidx.car.app.model.CarIcon
6
10
  import androidx.car.app.model.InputCallback
11
+ import androidx.car.app.model.ParkedOnlyOnClickListener
7
12
  import androidx.car.app.model.Template
8
13
  import androidx.car.app.model.signin.InputSignInMethod
9
14
  import androidx.car.app.model.signin.InputSignInMethod.INPUT_TYPE_DEFAULT
10
15
  import androidx.car.app.model.signin.InputSignInMethod.INPUT_TYPE_PASSWORD
11
16
  import androidx.car.app.model.signin.PinSignInMethod
17
+ import androidx.car.app.model.signin.ProviderSignInMethod
12
18
  import androidx.car.app.model.signin.QRCodeSignInMethod
13
19
  import androidx.car.app.model.signin.SignInTemplate
20
+ import androidx.core.graphics.drawable.IconCompat
21
+ import com.google.android.gms.auth.api.signin.GoogleSignInAccount
14
22
  import com.margelo.nitro.swe.iternio.reactnativeautoplay.KeyboardType
15
23
  import com.margelo.nitro.swe.iternio.reactnativeautoplay.NitroAction
16
24
  import com.margelo.nitro.swe.iternio.reactnativeautoplay.NitroActionType
25
+ import com.margelo.nitro.swe.iternio.reactnativeautoplay.R
17
26
  import com.margelo.nitro.swe.iternio.reactnativeautoplay.SignInTemplateConfig
27
+ import com.margelo.nitro.swe.iternio.reactnativeautoplay.SignInWithGoogleActivity
18
28
  import com.margelo.nitro.swe.iternio.reactnativeautoplay.TextInputType
19
29
  import java.security.InvalidParameterException
30
+ import androidx.core.net.toUri
20
31
 
21
32
  class SignInTemplate(
22
33
  context: CarContext, config: SignInTemplateConfig
@@ -55,17 +66,16 @@ class SignInTemplate(
55
66
  val qrSignIn = config.signInMethod?.asFirstOrNull()
56
67
  val pinSignIn = config.signInMethod?.asSecondOrNull()
57
68
  val inputSignIn = config.signInMethod?.asThirdOrNull()
69
+ val googleSignIn = config.signInMethod?.asFourthOrNull()
58
70
 
59
71
  val templateBuilder = when {
60
72
  qrSignIn != null -> {
61
73
  val url = qrSignIn.url
62
- ?: throw InvalidParameterException("missing url parameter")
63
- SignInTemplate.Builder(QRCodeSignInMethod(Uri.parse(url)))
74
+ SignInTemplate.Builder(QRCodeSignInMethod(url.toUri()))
64
75
  }
65
76
 
66
77
  pinSignIn != null -> {
67
78
  val pin = pinSignIn.pin
68
- ?: throw InvalidParameterException("missing pin parameter")
69
79
  SignInTemplate.Builder(PinSignInMethod(pin))
70
80
  }
71
81
 
@@ -94,6 +104,51 @@ class SignInTemplate(
94
104
  }.build())
95
105
  }
96
106
 
107
+ googleSignIn != null -> {
108
+ val signInAction = Action.Builder().apply {
109
+ setTitle(googleSignIn.signInButtonText)
110
+ setIcon(
111
+ CarIcon.Builder(
112
+ IconCompat.createWithResource(
113
+ context, R.drawable.google
114
+ )
115
+ ).build()
116
+ )
117
+ setOnClickListener(ParkedOnlyOnClickListener.create {
118
+ val extras = Bundle(1)
119
+ extras.putBinder(
120
+ SignInWithGoogleActivity.BINDER_KEY,
121
+ object : SignInWithGoogleActivity.OnSignInComplete() {
122
+ override fun onSignInComplete(account: GoogleSignInAccount?) {
123
+ if (account == null) {
124
+ googleSignIn.callback("Error signing in", null)
125
+ } else {
126
+ googleSignIn.callback(
127
+ null,
128
+ com.margelo.nitro.swe.iternio.reactnativeautoplay.GoogleSignInAccount(
129
+ serverAuthCode = account.serverAuthCode,
130
+ email = account.email,
131
+ id = account.id,
132
+ displayName = account.displayName,
133
+ photoUrl = account.photoUrl?.toString(),
134
+ idToken = account.idToken,
135
+ givenName = account.givenName,
136
+ familyName = account.familyName
137
+ )
138
+ )
139
+ }
140
+ }
141
+ })
142
+ extras.putString("serverClientId", googleSignIn.serverClientId)
143
+ context.startActivity(
144
+ Intent().setClass(context, SignInWithGoogleActivity::class.java)
145
+ .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK).putExtras(extras)
146
+ )
147
+ })
148
+ }.build()
149
+ SignInTemplate.Builder(ProviderSignInMethod(signInAction))
150
+ }
151
+
97
152
  else -> throw InvalidParameterException("missing SignInTemplate builder")
98
153
  }
99
154
 
@@ -0,0 +1,18 @@
1
+ <vector xmlns:android="http://schemas.android.com/apk/res/android"
2
+ android:width="24dp"
3
+ android:height="24dp"
4
+ android:viewportWidth="24"
5
+ android:viewportHeight="24">
6
+ <path
7
+ android:pathData="M22.56,12.25c0,-0.78 -0.07,-1.53 -0.2,-2.25H12v4.26h5.92c-0.26,1.37 -1.04,2.53 -2.21,3.31v2.77h3.57c2.08,-1.92 3.28,-4.74 3.28,-8.09z"
8
+ android:fillColor="#4285F4"/>
9
+ <path
10
+ android:pathData="M12,23c2.97,0 5.46,-0.98 7.28,-2.66l-3.57,-2.77c-0.98,0.66 -2.23,1.06 -3.71,1.06 -2.86,0 -5.29,-1.93 -6.16,-4.53H2.18v2.84C3.99,20.53 7.7,23 12,23z"
11
+ android:fillColor="#34A853"/>
12
+ <path
13
+ android:pathData="M5.84,14.09c-0.22,-0.66 -0.35,-1.36 -0.35,-2.09s0.13,-1.43 0.35,-2.09V7.07H2.18C1.43,8.55 1,10.22 1,12s0.43,3.45 1.18,4.93l2.85,-2.22 0.81,-0.62z"
14
+ android:fillColor="#FBBC05"/>
15
+ <path
16
+ android:pathData="M12,5.38c1.62,0 3.06,0.56 4.21,1.64l3.15,-3.15C17.45,2.09 14.97,1 12,1 7.7,1 3.99,3.47 2.18,7.07l3.66,2.84c0.87,-2.6 3.3,-4.53 6.16,-4.53z"
17
+ android:fillColor="#EA4335"/>
18
+ </vector>
@@ -278,6 +278,7 @@ class HybridAutoPlay: HybridAutoPlaySpec {
278
278
  }
279
279
 
280
280
  template.barButtons = headerActions
281
+ setBarButtons(template: template.getTemplate(), barButtons: headerActions)
281
282
  }
282
283
  }
283
284
  }
@@ -27,7 +27,7 @@ class HybridMapTemplate: HybridMapTemplateSpec {
27
27
  try await MainActor.run {
28
28
  try RootModule.withAutoPlayTemplate(templateId: templateId) {
29
29
  (template: MapTemplate) in
30
- template.config.mapButtons = buttons
30
+ template.mapButtons = buttons
31
31
  template.invalidate()
32
32
  }
33
33
  }
@@ -34,8 +34,8 @@ class AutoPlayTemplate: NSObject {
34
34
  func onPopped() {}
35
35
  }
36
36
 
37
- protocol AutoPlayHeaderProviding {
38
- @MainActor var barButtons: [NitroAction]? { get set }
37
+ class AutoPlayHeaderProviding: AutoPlayTemplate {
38
+ var barButtons: [NitroAction]?
39
39
  }
40
40
 
41
41
  @MainActor