@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.
- package/README.md +9 -2
- package/android/build.gradle +2 -2
- package/android/src/auto/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAndroidAutomotive.kt +25 -0
- package/android/src/automotive/AndroidManifest.xml +2 -0
- package/android/src/automotive/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidTelemetryObserver.kt +28 -15
- package/android/src/automotive/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAndroidAutomotive.kt +185 -0
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidAutoTelemetryHolder.kt +32 -0
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/SignInWithGoogleActivity.kt +57 -0
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/template/AutomotivePermissionRequestTemplate.kt +3 -3
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/template/SignInTemplate.kt +58 -3
- package/android/src/main/res/drawable/google.xml +18 -0
- package/ios/hybrid/HybridAutoPlay.swift +1 -0
- package/ios/hybrid/HybridMapTemplate.swift +1 -1
- package/ios/templates/AutoPlayTemplate.swift +2 -2
- package/ios/templates/GridTemplate.swift +13 -15
- package/ios/templates/InformationTemplate.swift +11 -13
- package/ios/templates/ListTemplate.swift +11 -13
- package/ios/templates/MapTemplate.swift +24 -20
- package/ios/templates/Parser.swift +25 -10
- package/ios/templates/SearchTemplate.swift +7 -4
- package/lib/hooks/useAndroidAutoTelemetry.d.ts +13 -4
- package/lib/hooks/useAndroidAutoTelemetry.js +6 -3
- package/lib/index.d.ts +4 -0
- package/lib/index.js +4 -0
- package/lib/specs/AndroidAutomotive.nitro.d.ts +33 -0
- package/lib/specs/AndroidAutomotive.nitro.js +13 -0
- package/lib/templates/Template.js +1 -1
- package/lib/types/SignInMethod.d.ts +18 -2
- package/lib/types/SignInMethod.js +1 -1
- package/lib/types/Telemetry.d.ts +4 -0
- package/lib/types/Trip.d.ts +4 -0
- package/nitro.json +3 -0
- package/nitrogen/generated/android/ReactNativeAutoPlay+autolinking.cmake +4 -2
- package/nitrogen/generated/android/ReactNativeAutoPlay+autolinking.gradle +1 -1
- package/nitrogen/generated/android/ReactNativeAutoPlayOnLoad.cpp +19 -3
- package/nitrogen/generated/android/ReactNativeAutoPlayOnLoad.hpp +1 -1
- package/nitrogen/generated/android/c++/JActiveCarUxRestrictions.hpp +89 -0
- package/nitrogen/generated/android/c++/JAlertActionStyle.hpp +4 -5
- package/nitrogen/generated/android/c++/JAlertDismissalReason.hpp +4 -5
- package/nitrogen/generated/android/c++/JAppFocusState.hpp +61 -0
- package/nitrogen/generated/android/c++/JAssetImage.hpp +1 -1
- package/nitrogen/generated/android/c++/JAutoText.hpp +1 -1
- package/nitrogen/generated/android/c++/JBooleanTelemetryItem.hpp +1 -1
- package/nitrogen/generated/android/c++/JCarUxRestrictions.hpp +82 -0
- package/nitrogen/generated/android/c++/JClusterEventName.hpp +5 -6
- package/nitrogen/generated/android/c++/JColorScheme.hpp +3 -4
- package/nitrogen/generated/android/c++/JDistance.hpp +1 -1
- package/nitrogen/generated/android/c++/JDistanceUnits.hpp +6 -7
- package/nitrogen/generated/android/c++/JDurationWithTimeZone.hpp +1 -1
- package/nitrogen/generated/android/c++/JEventName.hpp +3 -4
- package/nitrogen/generated/android/c++/JForkType.hpp +3 -4
- package/nitrogen/generated/android/c++/JFunc_void.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_ActiveCarUxRestrictions.hpp +80 -0
- package/nitrogen/generated/android/c++/JFunc_void_AlertDismissalReason.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_AppFocusState.hpp +78 -0
- package/nitrogen/generated/android/c++/JFunc_void_ColorScheme.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_Point.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_Point_double.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_Point_std__optional_Point_.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_SafeAreaInsets.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_VisibilityState.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_Location__std__optional_std__string_.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_Telemetry_.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_bool_.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_std__string__std__optional_GoogleSignInAccount_.hpp +79 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__string_ColorScheme.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__string_ZoomEvent.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__string_bool.hpp +1 -1
- package/nitrogen/generated/android/c++/JFunc_void_std__string_std__string.hpp +1 -1
- package/nitrogen/generated/android/c++/JGlyphImage.hpp +1 -1
- package/nitrogen/generated/android/c++/JGoogleSignIn.hpp +85 -0
- package/nitrogen/generated/android/c++/JGoogleSignInAccount.hpp +86 -0
- package/nitrogen/generated/android/c++/JGridTemplateConfig.hpp +1 -1
- package/nitrogen/generated/android/c++/JHybridAndroidAutoTelemetrySpec.cpp +8 -1
- package/nitrogen/generated/android/c++/JHybridAndroidAutoTelemetrySpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridAndroidAutomotiveSpec.cpp +120 -0
- package/nitrogen/generated/android/c++/JHybridAndroidAutomotiveSpec.hpp +70 -0
- package/nitrogen/generated/android/c++/JHybridAutoPlaySpec.cpp +9 -1
- package/nitrogen/generated/android/c++/JHybridAutoPlaySpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridClusterSpec.cpp +9 -1
- package/nitrogen/generated/android/c++/JHybridClusterSpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridGridTemplateSpec.cpp +9 -1
- package/nitrogen/generated/android/c++/JHybridGridTemplateSpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridInformationTemplateSpec.cpp +9 -1
- package/nitrogen/generated/android/c++/JHybridInformationTemplateSpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridListTemplateSpec.cpp +9 -1
- package/nitrogen/generated/android/c++/JHybridListTemplateSpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridMapTemplateSpec.cpp +9 -1
- package/nitrogen/generated/android/c++/JHybridMapTemplateSpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridMessageTemplateSpec.cpp +8 -1
- package/nitrogen/generated/android/c++/JHybridMessageTemplateSpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridSearchTemplateSpec.cpp +9 -1
- package/nitrogen/generated/android/c++/JHybridSearchTemplateSpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridSignInTemplateSpec.cpp +19 -2
- package/nitrogen/generated/android/c++/JHybridSignInTemplateSpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JImageLane.hpp +1 -1
- package/nitrogen/generated/android/c++/JInformationTemplateConfig.hpp +1 -1
- package/nitrogen/generated/android/c++/JInputSignIn.hpp +1 -1
- package/nitrogen/generated/android/c++/JKeepType.hpp +4 -5
- package/nitrogen/generated/android/c++/JKeyboardType.hpp +5 -6
- package/nitrogen/generated/android/c++/JLaneGuidance.hpp +1 -1
- package/nitrogen/generated/android/c++/JListTemplateConfig.hpp +1 -1
- package/nitrogen/generated/android/c++/JLocation.hpp +1 -1
- package/nitrogen/generated/android/c++/JManeuverType.hpp +13 -14
- package/nitrogen/generated/android/c++/JMapTemplateConfig.hpp +1 -1
- package/nitrogen/generated/android/c++/JMessageTemplateConfig.hpp +1 -1
- package/nitrogen/generated/android/c++/JNavigationAlertAction.hpp +1 -1
- package/nitrogen/generated/android/c++/JNitroAction.hpp +1 -1
- package/nitrogen/generated/android/c++/JNitroActionType.hpp +4 -5
- package/nitrogen/generated/android/c++/JNitroAlignment.hpp +3 -4
- package/nitrogen/generated/android/c++/JNitroAttributedString.hpp +1 -1
- package/nitrogen/generated/android/c++/JNitroAttributedStringImage.hpp +1 -1
- package/nitrogen/generated/android/c++/JNitroBaseMapTemplateConfig.hpp +1 -1
- package/nitrogen/generated/android/c++/JNitroButtonStyle.hpp +6 -7
- package/nitrogen/generated/android/c++/JNitroColor.hpp +1 -1
- package/nitrogen/generated/android/c++/JNitroGridButton.hpp +1 -1
- package/nitrogen/generated/android/c++/JNitroImage.cpp +1 -1
- package/nitrogen/generated/android/c++/JNitroImage.hpp +3 -3
- package/nitrogen/generated/android/c++/JNitroLoadingManeuver.hpp +1 -1
- package/nitrogen/generated/android/c++/JNitroManeuver.cpp +1 -1
- package/nitrogen/generated/android/c++/JNitroManeuver.hpp +7 -4
- package/nitrogen/generated/android/c++/JNitroMapButton.hpp +1 -1
- package/nitrogen/generated/android/c++/JNitroMapButtonType.hpp +3 -4
- package/nitrogen/generated/android/c++/JNitroMessageManeuver.hpp +1 -1
- package/nitrogen/generated/android/c++/JNitroNavigationAlert.hpp +1 -1
- package/nitrogen/generated/android/c++/JNitroRoutingManeuver.hpp +4 -1
- package/nitrogen/generated/android/c++/JNitroRow.hpp +1 -1
- package/nitrogen/generated/android/c++/JNitroSection.hpp +1 -1
- package/nitrogen/generated/android/c++/JNitroSectionType.hpp +3 -4
- package/nitrogen/generated/android/c++/JNumericTelemetryItem.hpp +1 -1
- package/nitrogen/generated/android/c++/JOffRampType.hpp +5 -6
- package/nitrogen/generated/android/c++/JOnRampType.hpp +9 -10
- package/nitrogen/generated/android/c++/JPermissionRequestResult.hpp +1 -1
- package/nitrogen/generated/android/c++/JPinSignIn.hpp +1 -1
- package/nitrogen/generated/android/c++/JPoint.hpp +1 -1
- package/nitrogen/generated/android/c++/JPreferredImageLane.hpp +1 -1
- package/nitrogen/generated/android/c++/JQrSignIn.hpp +1 -1
- package/nitrogen/generated/android/c++/JRouteChoice.hpp +4 -1
- package/nitrogen/generated/android/c++/JSafeAreaInsets.hpp +1 -1
- package/nitrogen/generated/android/c++/JSearchTemplateConfig.hpp +1 -1
- package/nitrogen/generated/android/c++/JSignInMethods.hpp +7 -8
- package/nitrogen/generated/android/c++/JSignInTemplateConfig.hpp +11 -6
- package/nitrogen/generated/android/c++/JStringTelemetryItem.hpp +1 -1
- package/nitrogen/generated/android/c++/JTelemetry.hpp +8 -4
- package/nitrogen/generated/android/c++/JTextInputType.hpp +3 -4
- package/nitrogen/generated/android/c++/JTrafficSide.hpp +3 -4
- package/nitrogen/generated/android/c++/JTravelEstimates.hpp +19 -4
- package/nitrogen/generated/android/c++/JTripConfig.hpp +4 -1
- package/nitrogen/generated/android/c++/JTripPoint.hpp +4 -1
- package/nitrogen/generated/android/c++/JTripPreviewTextConfiguration.hpp +1 -1
- package/nitrogen/generated/android/c++/JTripSelectorCallback.hpp +1 -1
- package/nitrogen/generated/android/c++/JTripsConfig.hpp +4 -1
- package/nitrogen/generated/android/c++/JTurnType.hpp +10 -11
- package/nitrogen/generated/android/c++/JVariant_GlyphImage_AssetImage.cpp +1 -1
- package/nitrogen/generated/android/c++/JVariant_GlyphImage_AssetImage.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_PreferredImageLane_ImageLane.cpp +1 -1
- package/nitrogen/generated/android/c++/JVariant_PreferredImageLane_ImageLane.hpp +3 -3
- package/nitrogen/generated/android/c++/JVariant_QrSignIn_PinSignIn_InputSignIn_GoogleSignIn.cpp +34 -0
- package/nitrogen/generated/android/c++/{JVariant_QrSignIn_PinSignIn_InputSignIn.hpp → JVariant_QrSignIn_PinSignIn_InputSignIn_GoogleSignIn.hpp} +41 -21
- package/nitrogen/generated/android/c++/JVehicleTelemetryItem.hpp +1 -1
- package/nitrogen/generated/android/c++/JVisibilityState.hpp +5 -6
- package/nitrogen/generated/android/c++/JVisibleTravelEstimate.hpp +3 -4
- package/nitrogen/generated/android/c++/JZoomEvent.hpp +3 -4
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ActiveCarUxRestrictions.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/AlertActionStyle.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/AlertDismissalReason.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/AppFocusState.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/AssetImage.kt +3 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/AutoText.kt +4 -4
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/BooleanTelemetryItem.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/CarUxRestrictions.kt +31 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ClusterEventName.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ColorScheme.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Distance.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/DistanceUnits.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/DurationWithTimeZone.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/EventName.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ForkType.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_ActiveCarUxRestrictions.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_AlertDismissalReason.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_AppFocusState.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_ColorScheme.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_Point.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_Point_double.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_Point_std__optional_Point_.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_SafeAreaInsets.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_VisibilityState.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_bool.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__optional_Location__std__optional_std__string_.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__optional_Telemetry_.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__optional_bool_.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__optional_std__string__std__optional_GoogleSignInAccount_.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__string.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__string_ColorScheme.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__string_ZoomEvent.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__string_bool.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__string_std__string.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/GlyphImage.kt +3 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/GoogleSignIn.kt +51 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/GoogleSignInAccount.kt +59 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/GridTemplateConfig.kt +10 -10
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAndroidAutoTelemetrySpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAndroidAutomotiveSpec.kt +88 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAutoPlaySpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridClusterSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridGridTemplateSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridInformationTemplateSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridListTemplateSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridMapTemplateSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridMessageTemplateSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridSearchTemplateSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridSignInTemplateSpec.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ImageLane.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/InformationTemplateConfig.kt +11 -11
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/InputSignIn.kt +7 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/KeepType.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/KeyboardType.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/LaneGuidance.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ListTemplateConfig.kt +11 -11
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Location.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ManeuverType.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/MapTemplateConfig.kt +19 -19
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/MessageTemplateConfig.kt +13 -13
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NavigationAlertAction.kt +3 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroAction.kt +8 -8
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroActionType.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroAlignment.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroAttributedString.kt +3 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroAttributedStringImage.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroBaseMapTemplateConfig.kt +11 -11
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroButtonStyle.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroColor.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroGridButton.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroImage.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroLoadingManeuver.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroManeuver.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroMapButton.kt +3 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroMapButtonType.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroMessageManeuver.kt +4 -4
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroNavigationAlert.kt +7 -7
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroRoutingManeuver.kt +14 -14
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroRow.kt +8 -8
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroSection.kt +3 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroSectionType.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NumericTelemetryItem.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/OffRampType.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/OnRampType.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/PermissionRequestResult.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/PinSignIn.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Point.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/PreferredImageLane.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/QrSignIn.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ReactNativeAutoPlayOnLoad.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/RouteChoice.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/SafeAreaInsets.kt +3 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/SearchTemplateConfig.kt +11 -11
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/SignInMethods.kt +4 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/SignInTemplateConfig.kt +16 -16
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/StringTelemetryItem.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Telemetry.kt +18 -15
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TextInputType.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TrafficSide.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TravelEstimates.kt +13 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TripConfig.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TripPoint.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TripPreviewTextConfiguration.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TripSelectorCallback.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TripsConfig.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TurnType.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Variant_GlyphImage_AssetImage.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Variant_PreferredImageLane_ImageLane.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/{Variant_QrSignIn_PinSignIn_InputSignIn.kt → Variant_QrSignIn_PinSignIn_InputSignIn_GoogleSignIn.kt} +24 -11
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/VehicleTelemetryItem.kt +5 -5
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/VisibilityState.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/VisibleTravelEstimate.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ZoomEvent.kt +3 -1
- package/nitrogen/generated/ios/ReactNativeAutoPlay+autolinking.rb +2 -2
- package/nitrogen/generated/ios/ReactNativeAutoPlay-Swift-Cxx-Bridge.cpp +1 -1
- package/nitrogen/generated/ios/ReactNativeAutoPlay-Swift-Cxx-Bridge.hpp +4 -4
- package/nitrogen/generated/ios/ReactNativeAutoPlay-Swift-Cxx-Umbrella.hpp +1 -1
- package/nitrogen/generated/ios/ReactNativeAutoPlayAutolinking.mm +1 -1
- package/nitrogen/generated/ios/ReactNativeAutoPlayAutolinking.swift +41 -64
- package/nitrogen/generated/ios/c++/HybridAutoPlaySpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridAutoPlaySpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridCarPlayDashboardSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridCarPlayDashboardSpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridClusterSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridClusterSpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridGridTemplateSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridGridTemplateSpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridInformationTemplateSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridInformationTemplateSpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridListTemplateSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridListTemplateSpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridMapTemplateSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridMapTemplateSpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridMessageTemplateSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridMessageTemplateSpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/c++/HybridSearchTemplateSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridSearchTemplateSpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/swift/AlertActionStyle.swift +1 -1
- package/nitrogen/generated/ios/swift/AlertDismissalReason.swift +1 -1
- package/nitrogen/generated/ios/swift/AssetImage.swift +13 -55
- package/nitrogen/generated/ios/swift/AutoText.swift +7 -37
- package/nitrogen/generated/ios/swift/ClusterEventName.swift +1 -1
- package/nitrogen/generated/ios/swift/ColorScheme.swift +1 -1
- package/nitrogen/generated/ios/swift/Distance.swift +5 -17
- package/nitrogen/generated/ios/swift/DistanceUnits.swift +1 -1
- package/nitrogen/generated/ios/swift/DurationWithTimeZone.swift +5 -17
- package/nitrogen/generated/ios/swift/EventName.swift +1 -1
- package/nitrogen/generated/ios/swift/ForkType.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_AlertDismissalReason.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_ColorScheme.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_Point.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_Point_double.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_Point_std__optional_Point_.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_SafeAreaInsets.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_VisibilityState.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_bool.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_std__optional_Location__std__optional_std__string_.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_std__optional_bool_.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_std__string.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_std__string_ColorScheme.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_std__string_ZoomEvent.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_std__string_bool.swift +1 -1
- package/nitrogen/generated/ios/swift/Func_void_std__string_std__string.swift +1 -1
- package/nitrogen/generated/ios/swift/GlyphImage.swift +9 -39
- package/nitrogen/generated/ios/swift/GridTemplateConfig.swift +114 -255
- package/nitrogen/generated/ios/swift/HybridAutoPlaySpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridAutoPlaySpec_cxx.swift +9 -1
- package/nitrogen/generated/ios/swift/HybridCarPlayDashboardSpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridCarPlayDashboardSpec_cxx.swift +9 -1
- package/nitrogen/generated/ios/swift/HybridClusterSpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridClusterSpec_cxx.swift +9 -1
- package/nitrogen/generated/ios/swift/HybridGridTemplateSpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridGridTemplateSpec_cxx.swift +9 -1
- package/nitrogen/generated/ios/swift/HybridInformationTemplateSpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridInformationTemplateSpec_cxx.swift +9 -1
- package/nitrogen/generated/ios/swift/HybridListTemplateSpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridListTemplateSpec_cxx.swift +9 -1
- package/nitrogen/generated/ios/swift/HybridMapTemplateSpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridMapTemplateSpec_cxx.swift +9 -1
- package/nitrogen/generated/ios/swift/HybridMessageTemplateSpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridMessageTemplateSpec_cxx.swift +9 -1
- package/nitrogen/generated/ios/swift/HybridSearchTemplateSpec.swift +3 -3
- package/nitrogen/generated/ios/swift/HybridSearchTemplateSpec_cxx.swift +9 -1
- package/nitrogen/generated/ios/swift/ImageLane.swift +17 -42
- package/nitrogen/generated/ios/swift/InformationTemplateConfig.swift +123 -276
- package/nitrogen/generated/ios/swift/KeepType.swift +1 -1
- package/nitrogen/generated/ios/swift/LaneGuidance.swift +17 -48
- package/nitrogen/generated/ios/swift/ListTemplateConfig.swift +121 -268
- package/nitrogen/generated/ios/swift/Location.swift +5 -17
- package/nitrogen/generated/ios/swift/ManeuverType.swift +1 -1
- package/nitrogen/generated/ios/swift/MapTemplateConfig.swift +232 -499
- package/nitrogen/generated/ios/swift/MessageTemplateConfig.swift +144 -322
- package/nitrogen/generated/ios/swift/NavigationAlertAction.swift +12 -39
- package/nitrogen/generated/ios/swift/NitroAction.swift +55 -149
- package/nitrogen/generated/ios/swift/NitroActionType.swift +1 -1
- package/nitrogen/generated/ios/swift/NitroAlignment.swift +1 -1
- package/nitrogen/generated/ios/swift/NitroAttributedString.swift +12 -36
- package/nitrogen/generated/ios/swift/NitroAttributedStringImage.swift +17 -36
- package/nitrogen/generated/ios/swift/NitroBaseMapTemplateConfig.swift +129 -267
- package/nitrogen/generated/ios/swift/NitroButtonStyle.swift +1 -1
- package/nitrogen/generated/ios/swift/NitroCarPlayDashboardButton.swift +35 -93
- package/nitrogen/generated/ios/swift/NitroColor.swift +5 -17
- package/nitrogen/generated/ios/swift/NitroGridButton.swift +24 -52
- package/nitrogen/generated/ios/swift/NitroImage.swift +1 -1
- package/nitrogen/generated/ios/swift/NitroLoadingManeuver.swift +3 -9
- package/nitrogen/generated/ios/swift/NitroManeuver.swift +1 -1
- package/nitrogen/generated/ios/swift/NitroMapButton.swift +31 -65
- package/nitrogen/generated/ios/swift/NitroMapButtonType.swift +1 -1
- package/nitrogen/generated/ios/swift/NitroMessageManeuver.swift +35 -78
- package/nitrogen/generated/ios/swift/NitroNavigationAlert.swift +64 -167
- package/nitrogen/generated/ios/swift/NitroRoutingManeuver.swift +91 -309
- package/nitrogen/generated/ios/swift/NitroRow.swift +75 -169
- package/nitrogen/generated/ios/swift/NitroSection.swift +14 -44
- package/nitrogen/generated/ios/swift/NitroSectionType.swift +1 -1
- package/nitrogen/generated/ios/swift/OffRampType.swift +1 -1
- package/nitrogen/generated/ios/swift/OnRampType.swift +1 -1
- package/nitrogen/generated/ios/swift/Point.swift +5 -17
- package/nitrogen/generated/ios/swift/PreferredImageLane.swift +21 -58
- package/nitrogen/generated/ios/swift/RouteChoice.swift +11 -65
- package/nitrogen/generated/ios/swift/SafeAreaInsets.swift +18 -54
- package/nitrogen/generated/ios/swift/SearchTemplateConfig.swift +144 -309
- package/nitrogen/generated/ios/swift/TrafficSide.swift +1 -1
- package/nitrogen/generated/ios/swift/TravelEstimates.swift +34 -32
- package/nitrogen/generated/ios/swift/TripConfig.swift +5 -17
- package/nitrogen/generated/ios/swift/TripPoint.swift +9 -33
- package/nitrogen/generated/ios/swift/TripPreviewTextConfiguration.swift +9 -33
- package/nitrogen/generated/ios/swift/TripSelectorCallback.swift +8 -17
- package/nitrogen/generated/ios/swift/TripsConfig.swift +5 -23
- package/nitrogen/generated/ios/swift/TurnType.swift +1 -1
- package/nitrogen/generated/ios/swift/Variant_GlyphImage_AssetImage.swift +1 -1
- package/nitrogen/generated/ios/swift/Variant_PreferredImageLane_ImageLane.swift +1 -1
- package/nitrogen/generated/ios/swift/VisibilityState.swift +1 -1
- package/nitrogen/generated/ios/swift/VisibleTravelEstimate.swift +1 -1
- package/nitrogen/generated/ios/swift/ZoomEvent.swift +1 -1
- package/nitrogen/generated/shared/c++/ActiveCarUxRestrictions.hpp +97 -0
- package/nitrogen/generated/shared/c++/AlertActionStyle.hpp +1 -1
- package/nitrogen/generated/shared/c++/AlertDismissalReason.hpp +1 -1
- package/nitrogen/generated/shared/c++/AppFocusState.hpp +87 -0
- package/nitrogen/generated/shared/c++/AssetImage.hpp +28 -20
- package/nitrogen/generated/shared/c++/AutoText.hpp +19 -11
- package/nitrogen/generated/shared/c++/BooleanTelemetryItem.hpp +16 -8
- package/nitrogen/generated/shared/c++/CarUxRestrictions.hpp +81 -0
- package/nitrogen/generated/shared/c++/ClusterEventName.hpp +1 -1
- package/nitrogen/generated/shared/c++/ColorScheme.hpp +1 -1
- package/nitrogen/generated/shared/c++/Distance.hpp +16 -8
- package/nitrogen/generated/shared/c++/DistanceUnits.hpp +1 -1
- package/nitrogen/generated/shared/c++/DurationWithTimeZone.hpp +16 -8
- package/nitrogen/generated/shared/c++/EventName.hpp +1 -1
- package/nitrogen/generated/shared/c++/ForkType.hpp +1 -1
- package/nitrogen/generated/shared/c++/GlyphImage.hpp +22 -14
- package/nitrogen/generated/shared/c++/GoogleSignIn.hpp +102 -0
- package/nitrogen/generated/shared/c++/GoogleSignInAccount.hpp +112 -0
- package/nitrogen/generated/shared/c++/GridTemplateConfig.hpp +43 -35
- package/nitrogen/generated/shared/c++/HybridAndroidAutoTelemetrySpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridAndroidAutoTelemetrySpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridAndroidAutomotiveSpec.cpp +25 -0
- package/nitrogen/generated/shared/c++/HybridAndroidAutomotiveSpec.hpp +71 -0
- package/nitrogen/generated/shared/c++/HybridAutoPlaySpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridAutoPlaySpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridCarPlayDashboardSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridCarPlayDashboardSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridClusterSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridClusterSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridGridTemplateSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridGridTemplateSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridInformationTemplateSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridInformationTemplateSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridListTemplateSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridListTemplateSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridMapTemplateSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridMapTemplateSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridMessageTemplateSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridMessageTemplateSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridSearchTemplateSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridSearchTemplateSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/HybridSignInTemplateSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridSignInTemplateSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/ImageLane.hpp +16 -8
- package/nitrogen/generated/shared/c++/InformationTemplateConfig.hpp +46 -38
- package/nitrogen/generated/shared/c++/InputSignIn.hpp +34 -26
- package/nitrogen/generated/shared/c++/KeepType.hpp +1 -1
- package/nitrogen/generated/shared/c++/KeyboardType.hpp +1 -1
- package/nitrogen/generated/shared/c++/LaneGuidance.hpp +16 -8
- package/nitrogen/generated/shared/c++/ListTemplateConfig.hpp +43 -35
- package/nitrogen/generated/shared/c++/Location.hpp +16 -8
- package/nitrogen/generated/shared/c++/ManeuverType.hpp +1 -1
- package/nitrogen/generated/shared/c++/MapTemplateConfig.hpp +67 -59
- package/nitrogen/generated/shared/c++/MessageTemplateConfig.hpp +49 -41
- package/nitrogen/generated/shared/c++/NavigationAlertAction.hpp +19 -11
- package/nitrogen/generated/shared/c++/NitroAction.hpp +34 -26
- package/nitrogen/generated/shared/c++/NitroActionType.hpp +1 -1
- package/nitrogen/generated/shared/c++/NitroAlignment.hpp +1 -1
- package/nitrogen/generated/shared/c++/NitroAttributedString.hpp +16 -8
- package/nitrogen/generated/shared/c++/NitroAttributedStringImage.hpp +16 -8
- package/nitrogen/generated/shared/c++/NitroBaseMapTemplateConfig.hpp +37 -29
- package/nitrogen/generated/shared/c++/NitroButtonStyle.hpp +1 -1
- package/nitrogen/generated/shared/c++/NitroCarPlayDashboardButton.hpp +25 -17
- package/nitrogen/generated/shared/c++/NitroColor.hpp +16 -8
- package/nitrogen/generated/shared/c++/NitroGridButton.hpp +19 -11
- package/nitrogen/generated/shared/c++/NitroLoadingManeuver.hpp +13 -5
- package/nitrogen/generated/shared/c++/NitroMapButton.hpp +19 -11
- package/nitrogen/generated/shared/c++/NitroMapButtonType.hpp +1 -1
- package/nitrogen/generated/shared/c++/NitroMessageManeuver.hpp +22 -14
- package/nitrogen/generated/shared/c++/NitroNavigationAlert.hpp +40 -32
- package/nitrogen/generated/shared/c++/NitroRoutingManeuver.hpp +67 -59
- package/nitrogen/generated/shared/c++/NitroRow.hpp +34 -26
- package/nitrogen/generated/shared/c++/NitroSection.hpp +19 -11
- package/nitrogen/generated/shared/c++/NitroSectionType.hpp +1 -1
- package/nitrogen/generated/shared/c++/NumericTelemetryItem.hpp +16 -8
- package/nitrogen/generated/shared/c++/OffRampType.hpp +1 -1
- package/nitrogen/generated/shared/c++/OnRampType.hpp +1 -1
- package/nitrogen/generated/shared/c++/PermissionRequestResult.hpp +16 -8
- package/nitrogen/generated/shared/c++/PinSignIn.hpp +16 -8
- package/nitrogen/generated/shared/c++/Point.hpp +16 -8
- package/nitrogen/generated/shared/c++/PreferredImageLane.hpp +22 -14
- package/nitrogen/generated/shared/c++/QrSignIn.hpp +16 -8
- package/nitrogen/generated/shared/c++/RouteChoice.hpp +25 -17
- package/nitrogen/generated/shared/c++/SafeAreaInsets.hpp +25 -17
- package/nitrogen/generated/shared/c++/SearchTemplateConfig.hpp +52 -44
- package/nitrogen/generated/shared/c++/SignInMethods.hpp +2 -2
- package/nitrogen/generated/shared/c++/SignInTemplateConfig.hpp +54 -43
- package/nitrogen/generated/shared/c++/StringTelemetryItem.hpp +16 -8
- package/nitrogen/generated/shared/c++/Telemetry.hpp +48 -36
- package/nitrogen/generated/shared/c++/TextInputType.hpp +1 -1
- package/nitrogen/generated/shared/c++/TrafficSide.hpp +1 -1
- package/nitrogen/generated/shared/c++/TravelEstimates.hpp +25 -12
- package/nitrogen/generated/shared/c++/TripConfig.hpp +16 -8
- package/nitrogen/generated/shared/c++/TripPoint.hpp +22 -14
- package/nitrogen/generated/shared/c++/TripPreviewTextConfiguration.hpp +22 -14
- package/nitrogen/generated/shared/c++/TripSelectorCallback.hpp +13 -5
- package/nitrogen/generated/shared/c++/TripsConfig.hpp +16 -8
- package/nitrogen/generated/shared/c++/TurnType.hpp +1 -1
- package/nitrogen/generated/shared/c++/VehicleTelemetryItem.hpp +19 -11
- package/nitrogen/generated/shared/c++/VisibilityState.hpp +1 -1
- package/nitrogen/generated/shared/c++/VisibleTravelEstimate.hpp +1 -1
- package/nitrogen/generated/shared/c++/ZoomEvent.hpp +1 -1
- package/package.json +2 -3
- package/src/hooks/useAndroidAutoTelemetry.ts +48 -32
- package/src/index.ts +11 -0
- package/src/specs/AndroidAutomotive.nitro.ts +37 -0
- package/src/templates/Template.ts +4 -1
- package/src/types/SignInMethod.ts +20 -2
- package/src/types/Telemetry.ts +4 -0
- package/src/types/Trip.ts +4 -0
- 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!
|
|
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
|
|
package/android/build.gradle
CHANGED
|
@@ -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.
|
|
167
|
-
implementation 'com.google.android.gms:play-services-auth:21.
|
|
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
|
-
|
|
105
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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>
|
|
@@ -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.
|
|
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
|
-
|
|
38
|
-
|
|
37
|
+
class AutoPlayHeaderProviding: AutoPlayTemplate {
|
|
38
|
+
var barButtons: [NitroAction]?
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
@MainActor
|