@iternio/react-native-auto-play 0.5.14-beta.1 → 0.6.1

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 (201) hide show
  1. package/README.md +270 -36
  2. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidAutoSession.kt +5 -0
  3. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridMapTemplate.kt +9 -2
  4. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/NativeBackdrop.kt +40 -0
  5. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/VirtualRenderer.kt +52 -0
  6. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/template/GridTemplate.kt +47 -13
  7. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/template/Parser.kt +69 -15
  8. package/ios/Types.swift +3 -0
  9. package/ios/extensions/UIImage+Toggle.swift +5 -2
  10. package/ios/hybrid/HybridAutoPlay.swift +28 -16
  11. package/ios/hybrid/HybridMapTemplate.swift +22 -5
  12. package/ios/scenes/AutoPlayInterfaceController.swift +261 -72
  13. package/ios/templates/AutoPlayMapPanelDelegate.swift +190 -0
  14. package/ios/templates/AutoPlayTemplate.swift +24 -2
  15. package/ios/templates/GridTemplate.swift +57 -57
  16. package/ios/templates/InformationTemplate.swift +84 -9
  17. package/ios/templates/ListTemplate.swift +66 -11
  18. package/ios/templates/MapTemplate.swift +83 -68
  19. package/ios/templates/MessageTemplate.swift +72 -6
  20. package/ios/templates/Parser.swift +564 -69
  21. package/ios/templates/SearchTemplate.swift +1 -1
  22. package/ios/templates/TemplateStore.swift +5 -15
  23. package/ios/utils/SymbolFont.swift +13 -28
  24. package/jest.js +2 -0
  25. package/lib/Constants.d.ts +4 -0
  26. package/lib/Constants.js +6 -0
  27. package/lib/index.d.ts +1 -0
  28. package/lib/index.js +1 -0
  29. package/lib/index.web.d.ts +73 -0
  30. package/lib/index.web.js +72 -1
  31. package/lib/specs/MapTemplate.nitro.d.ts +3 -1
  32. package/lib/templates/GridTemplate.d.ts +23 -3
  33. package/lib/templates/GridTemplate.js +8 -0
  34. package/lib/templates/InformationTemplate.d.ts +38 -12
  35. package/lib/templates/ListTemplate.d.ts +16 -47
  36. package/lib/templates/MapTemplate.d.ts +26 -2
  37. package/lib/templates/MapTemplate.js +16 -2
  38. package/lib/templates/MessageTemplate.d.ts +52 -11
  39. package/lib/templates/MessageTemplate.js +1 -1
  40. package/lib/types/Image.d.ts +6 -1
  41. package/lib/utils/NitroColor.d.ts +1 -0
  42. package/lib/utils/NitroColor.js +8 -0
  43. package/lib/utils/NitroImage.js +1 -1
  44. package/lib/utils/NitroManeuver.js +1 -3
  45. package/lib/utils/NitroOptionsPanel.d.ts +103 -0
  46. package/lib/utils/NitroOptionsPanel.js +63 -0
  47. package/lib/utils/NitroSection.d.ts +89 -2
  48. package/lib/utils/NitroSection.js +49 -2
  49. package/lib-cjs/AutoPlayHeadlessJsTask.js +16 -0
  50. package/lib-cjs/Constants.js +9 -0
  51. package/lib-cjs/components/MapTemplateContext.js +10 -0
  52. package/lib-cjs/components/SafeAreaInsetsContext.js +21 -0
  53. package/lib-cjs/components/SafeAreaView.js +22 -0
  54. package/lib-cjs/components/WindowInformationWrapper.js +20 -0
  55. package/lib-cjs/hooks/useAndroidAutoTelemetry.js +115 -0
  56. package/lib-cjs/hooks/useFocusedEffect.js +35 -0
  57. package/lib-cjs/hooks/useMapTemplate.js +13 -0
  58. package/lib-cjs/hooks/useSafeAreaInsets.js +9 -0
  59. package/lib-cjs/hooks/useVoiceInput.js +42 -0
  60. package/lib-cjs/hybrid/HybridAndroidAutoTelemetry.js +4 -0
  61. package/lib-cjs/hybrid/HybridAndroidWindowInformation.js +4 -0
  62. package/lib-cjs/hybrid/HybridAutoPlay.js +5 -0
  63. package/lib-cjs/hybrid/HybridVoice.js +61 -0
  64. package/lib-cjs/index.js +76 -0
  65. package/lib-cjs/index.web.js +98 -0
  66. package/lib-cjs/scenes/AutoPlayCluster.js +140 -0
  67. package/lib-cjs/scenes/CarPlayDashboardScene.js +100 -0
  68. package/lib-cjs/specs/AndroidAutoTelemetry.nitro.js +2 -0
  69. package/lib-cjs/specs/AndroidAutomotive.nitro.js +16 -0
  70. package/lib-cjs/specs/AndroidWindowInformation.nitro.js +2 -0
  71. package/lib-cjs/specs/AutoPlay.nitro.js +2 -0
  72. package/lib-cjs/specs/CarPlayDashboard.nitro.js +2 -0
  73. package/lib-cjs/specs/Cluster.nitro.js +2 -0
  74. package/lib-cjs/specs/GridTemplate.nitro.js +2 -0
  75. package/lib-cjs/specs/InformationTemplate.nitro.js +2 -0
  76. package/lib-cjs/specs/ListTemplate.nitro.js +2 -0
  77. package/lib-cjs/specs/MapTemplate.nitro.js +2 -0
  78. package/lib-cjs/specs/MessageTemplate.nitro.js +2 -0
  79. package/lib-cjs/specs/SearchTemplate.nitro.js +2 -0
  80. package/lib-cjs/specs/SignInTemplate.nitro.js +2 -0
  81. package/lib-cjs/specs/Voice.nitro.js +2 -0
  82. package/lib-cjs/templates/GridTemplate.js +41 -0
  83. package/lib-cjs/templates/InformationTemplate.js +49 -0
  84. package/lib-cjs/templates/ListTemplate.js +33 -0
  85. package/lib-cjs/templates/MapTemplate.js +168 -0
  86. package/lib-cjs/templates/MessageTemplate.js +50 -0
  87. package/lib-cjs/templates/SearchTemplate.js +32 -0
  88. package/lib-cjs/templates/SignInTemplate.js +55 -0
  89. package/lib-cjs/templates/Template.js +40 -0
  90. package/lib-cjs/types/Button.js +12 -0
  91. package/lib-cjs/types/Event.js +2 -0
  92. package/lib-cjs/types/Image.js +2 -0
  93. package/lib-cjs/types/Maneuver.js +77 -0
  94. package/lib-cjs/types/RootComponent.js +2 -0
  95. package/lib-cjs/types/SignInMethod.js +22 -0
  96. package/lib-cjs/types/Telemetry.js +24 -0
  97. package/lib-cjs/types/Text.js +8 -0
  98. package/lib-cjs/types/Trip.js +2 -0
  99. package/lib-cjs/types/Voice.js +2 -0
  100. package/lib-cjs/utils/ErrorUtil.js +34 -0
  101. package/lib-cjs/utils/NitroAction.js +129 -0
  102. package/lib-cjs/utils/NitroAlert.js +19 -0
  103. package/lib-cjs/utils/NitroAttributedString.js +14 -0
  104. package/lib-cjs/utils/NitroColor.js +32 -0
  105. package/lib-cjs/utils/NitroGrid.js +12 -0
  106. package/lib-cjs/utils/NitroImage.js +97 -0
  107. package/lib-cjs/utils/NitroManeuver.js +79 -0
  108. package/lib-cjs/utils/NitroMapButton.js +33 -0
  109. package/lib-cjs/utils/NitroOptionsPanel.js +66 -0
  110. package/lib-cjs/utils/NitroSection.js +112 -0
  111. package/nitrogen/generated/android/ReactNativeAutoPlay+autolinking.cmake +1 -0
  112. package/nitrogen/generated/android/c++/JChargingConnector.hpp +79 -0
  113. package/nitrogen/generated/android/c++/JGridImageSize.hpp +64 -0
  114. package/nitrogen/generated/android/c++/JGridTemplateConfig.hpp +7 -1
  115. package/nitrogen/generated/android/c++/JHybridGridTemplateSpec.cpp +4 -0
  116. package/nitrogen/generated/android/c++/JHybridInformationTemplateSpec.cpp +12 -0
  117. package/nitrogen/generated/android/c++/JHybridListTemplateSpec.cpp +12 -0
  118. package/nitrogen/generated/android/c++/JHybridMapTemplateSpec.cpp +78 -3
  119. package/nitrogen/generated/android/c++/JHybridMapTemplateSpec.hpp +2 -1
  120. package/nitrogen/generated/android/c++/JHybridSearchTemplateSpec.cpp +12 -0
  121. package/nitrogen/generated/android/c++/JInformationTemplateConfig.hpp +6 -0
  122. package/nitrogen/generated/android/c++/JListImageType.hpp +67 -0
  123. package/nitrogen/generated/android/c++/JListTemplateConfig.hpp +6 -0
  124. package/nitrogen/generated/android/c++/JNitroChargerLocation.hpp +115 -0
  125. package/nitrogen/generated/android/c++/JNitroChargerOutlet.hpp +82 -0
  126. package/nitrogen/generated/android/c++/JNitroColor.hpp +8 -4
  127. package/nitrogen/generated/android/c++/JNitroOptionsPanelChargerSection.hpp +112 -0
  128. package/nitrogen/generated/android/c++/JNitroOptionsPanelConfig.hpp +157 -0
  129. package/nitrogen/generated/android/c++/JNitroOptionsPanelGridSection.hpp +102 -0
  130. package/nitrogen/generated/android/c++/JNitroOptionsPanelSection.cpp +30 -0
  131. package/nitrogen/generated/android/c++/JNitroOptionsPanelSection.hpp +129 -0
  132. package/nitrogen/generated/android/c++/JNitroRow.hpp +33 -3
  133. package/nitrogen/generated/android/c++/JNitroSection.hpp +6 -0
  134. package/nitrogen/generated/android/c++/JSearchTemplateConfig.hpp +6 -0
  135. package/nitrogen/generated/android/c++/JWaypointCoordinate.hpp +65 -0
  136. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ChargingConnector.kt +30 -0
  137. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/GridImageSize.kt +25 -0
  138. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/GridTemplateConfig.kt +9 -4
  139. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridMapTemplateSpec.kt +5 -1
  140. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ListImageType.kt +26 -0
  141. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroChargerLocation.kt +90 -0
  142. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroChargerOutlet.kt +70 -0
  143. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroColor.kt +9 -4
  144. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroOptionsPanelChargerSection.kt +61 -0
  145. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroOptionsPanelConfig.kt +61 -0
  146. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroOptionsPanelGridSection.kt +56 -0
  147. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroOptionsPanelSection.kt +75 -0
  148. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroRow.kt +36 -6
  149. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/WaypointCoordinate.kt +61 -0
  150. package/nitrogen/generated/ios/ReactNativeAutoPlay-Swift-Cxx-Bridge.hpp +174 -0
  151. package/nitrogen/generated/ios/ReactNativeAutoPlay-Swift-Cxx-Umbrella.hpp +27 -0
  152. package/nitrogen/generated/ios/c++/HybridGridTemplateSpecSwift.hpp +3 -0
  153. package/nitrogen/generated/ios/c++/HybridInformationTemplateSpecSwift.hpp +9 -0
  154. package/nitrogen/generated/ios/c++/HybridListTemplateSpecSwift.hpp +9 -0
  155. package/nitrogen/generated/ios/c++/HybridMapTemplateSpecSwift.hpp +47 -1
  156. package/nitrogen/generated/ios/c++/HybridSearchTemplateSpecSwift.hpp +9 -0
  157. package/nitrogen/generated/ios/swift/ChargingConnector.swift +68 -0
  158. package/nitrogen/generated/ios/swift/GridImageSize.swift +48 -0
  159. package/nitrogen/generated/ios/swift/GridTemplateConfig.swift +12 -1
  160. package/nitrogen/generated/ios/swift/HybridMapTemplateSpec.swift +2 -1
  161. package/nitrogen/generated/ios/swift/HybridMapTemplateSpec_cxx.swift +31 -4
  162. package/nitrogen/generated/ios/swift/ListImageType.swift +52 -0
  163. package/nitrogen/generated/ios/swift/NitroChargerLocation.swift +161 -0
  164. package/nitrogen/generated/ios/swift/NitroChargerOutlet.swift +65 -0
  165. package/nitrogen/generated/ios/swift/NitroColor.swift +20 -2
  166. package/nitrogen/generated/ios/swift/NitroOptionsPanelChargerSection.swift +64 -0
  167. package/nitrogen/generated/ios/swift/NitroOptionsPanelConfig.swift +94 -0
  168. package/nitrogen/generated/ios/swift/NitroOptionsPanelGridSection.swift +53 -0
  169. package/nitrogen/generated/ios/swift/NitroOptionsPanelSection.swift +32 -0
  170. package/nitrogen/generated/ios/swift/NitroRow.swift +81 -1
  171. package/nitrogen/generated/ios/swift/WaypointCoordinate.swift +52 -0
  172. package/nitrogen/generated/shared/c++/ChargingConnector.hpp +104 -0
  173. package/nitrogen/generated/shared/c++/GridImageSize.hpp +84 -0
  174. package/nitrogen/generated/shared/c++/GridTemplateConfig.hpp +8 -1
  175. package/nitrogen/generated/shared/c++/HybridMapTemplateSpec.cpp +1 -0
  176. package/nitrogen/generated/shared/c++/HybridMapTemplateSpec.hpp +5 -1
  177. package/nitrogen/generated/shared/c++/ListImageType.hpp +88 -0
  178. package/nitrogen/generated/shared/c++/NitroChargerLocation.hpp +131 -0
  179. package/nitrogen/generated/shared/c++/NitroChargerOutlet.hpp +98 -0
  180. package/nitrogen/generated/shared/c++/NitroColor.hpp +7 -3
  181. package/nitrogen/generated/shared/c++/NitroOptionsPanelChargerSection.hpp +98 -0
  182. package/nitrogen/generated/shared/c++/NitroOptionsPanelConfig.hpp +107 -0
  183. package/nitrogen/generated/shared/c++/NitroOptionsPanelGridSection.hpp +91 -0
  184. package/nitrogen/generated/shared/c++/NitroRow.hpp +39 -2
  185. package/nitrogen/generated/shared/c++/WaypointCoordinate.hpp +91 -0
  186. package/package.json +7 -3
  187. package/src/Constants.ts +9 -0
  188. package/src/index.ts +1 -0
  189. package/src/index.web.ts +166 -0
  190. package/src/specs/MapTemplate.nitro.ts +3 -1
  191. package/src/templates/GridTemplate.ts +38 -3
  192. package/src/templates/InformationTemplate.ts +60 -29
  193. package/src/templates/ListTemplate.ts +27 -55
  194. package/src/templates/MapTemplate.ts +60 -2
  195. package/src/templates/MessageTemplate.ts +71 -24
  196. package/src/types/Image.ts +6 -1
  197. package/src/utils/NitroColor.ts +10 -1
  198. package/src/utils/NitroImage.ts +1 -5
  199. package/src/utils/NitroManeuver.ts +1 -4
  200. package/src/utils/NitroOptionsPanel.ts +218 -0
  201. package/src/utils/NitroSection.ts +160 -5
@@ -97,6 +97,30 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay { enum class Maneuve
97
97
  namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct TripConfig; }
98
98
  // Forward declaration of `ManeuverState` to properly resolve imports.
99
99
  namespace margelo::nitro::swe::iternio::reactnativeautoplay { enum class ManeuverState; }
100
+ // Forward declaration of `NitroOptionsPanelConfig` to properly resolve imports.
101
+ namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct NitroOptionsPanelConfig; }
102
+ // Forward declaration of `NitroSection` to properly resolve imports.
103
+ namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct NitroSection; }
104
+ // Forward declaration of `NitroOptionsPanelGridSection` to properly resolve imports.
105
+ namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct NitroOptionsPanelGridSection; }
106
+ // Forward declaration of `NitroOptionsPanelChargerSection` to properly resolve imports.
107
+ namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct NitroOptionsPanelChargerSection; }
108
+ // Forward declaration of `NitroRow` to properly resolve imports.
109
+ namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct NitroRow; }
110
+ // Forward declaration of `ListImageType` to properly resolve imports.
111
+ namespace margelo::nitro::swe::iternio::reactnativeautoplay { enum class ListImageType; }
112
+ // Forward declaration of `WaypointCoordinate` to properly resolve imports.
113
+ namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct WaypointCoordinate; }
114
+ // Forward declaration of `NitroSectionType` to properly resolve imports.
115
+ namespace margelo::nitro::swe::iternio::reactnativeautoplay { enum class NitroSectionType; }
116
+ // Forward declaration of `NitroGridButton` to properly resolve imports.
117
+ namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct NitroGridButton; }
118
+ // Forward declaration of `NitroChargerOutlet` to properly resolve imports.
119
+ namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct NitroChargerOutlet; }
120
+ // Forward declaration of `ChargingConnector` to properly resolve imports.
121
+ namespace margelo::nitro::swe::iternio::reactnativeautoplay { enum class ChargingConnector; }
122
+ // Forward declaration of `NitroChargerLocation` to properly resolve imports.
123
+ namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct NitroChargerLocation; }
100
124
 
101
125
  #include "TripSelectorCallback.hpp"
102
126
  #include "JTripSelectorCallback.hpp"
@@ -211,6 +235,31 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay { enum class Maneuve
211
235
  #include "JTripConfig.hpp"
212
236
  #include "ManeuverState.hpp"
213
237
  #include "JManeuverState.hpp"
238
+ #include "NitroOptionsPanelConfig.hpp"
239
+ #include "JNitroOptionsPanelConfig.hpp"
240
+ #include "NitroSection.hpp"
241
+ #include "NitroOptionsPanelGridSection.hpp"
242
+ #include "NitroOptionsPanelChargerSection.hpp"
243
+ #include "JNitroOptionsPanelSection.hpp"
244
+ #include "JNitroSection.hpp"
245
+ #include "NitroRow.hpp"
246
+ #include "JNitroRow.hpp"
247
+ #include "ListImageType.hpp"
248
+ #include "JListImageType.hpp"
249
+ #include "WaypointCoordinate.hpp"
250
+ #include "JWaypointCoordinate.hpp"
251
+ #include "NitroSectionType.hpp"
252
+ #include "JNitroSectionType.hpp"
253
+ #include "JNitroOptionsPanelGridSection.hpp"
254
+ #include "NitroGridButton.hpp"
255
+ #include "JNitroGridButton.hpp"
256
+ #include "JNitroOptionsPanelChargerSection.hpp"
257
+ #include "NitroChargerOutlet.hpp"
258
+ #include "JNitroChargerOutlet.hpp"
259
+ #include "ChargingConnector.hpp"
260
+ #include "JChargingConnector.hpp"
261
+ #include "NitroChargerLocation.hpp"
262
+ #include "JNitroChargerLocation.hpp"
214
263
 
215
264
  namespace margelo::nitro::swe::iternio::reactnativeautoplay {
216
265
 
@@ -333,9 +382,20 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
333
382
  static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<JNitroManeuver> /* maneuvers */)>("updateManeuvers");
334
383
  method(_javaPart, jni::make_jstring(templateId), JNitroManeuver::fromCpp(maneuvers));
335
384
  }
336
- void JHybridMapTemplateSpec::startNavigation(const std::string& templateId, const TripConfig& trip) {
337
- static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<JTripConfig> /* trip */)>("startNavigation");
338
- method(_javaPart, jni::make_jstring(templateId), JTripConfig::fromCpp(trip));
385
+ std::shared_ptr<Promise<void>> JHybridMapTemplateSpec::startNavigation(const std::string& templateId, const TripConfig& trip) {
386
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<JTripConfig> /* trip */)>("startNavigation");
387
+ auto __result = method(_javaPart, jni::make_jstring(templateId), JTripConfig::fromCpp(trip));
388
+ return [&]() {
389
+ auto __promise = Promise<void>::create();
390
+ __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
391
+ __promise->resolve();
392
+ });
393
+ __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
394
+ jni::JniException __jniError(__throwable);
395
+ __promise->reject(std::make_exception_ptr(__jniError));
396
+ });
397
+ return __promise;
398
+ }();
339
399
  }
340
400
  void JHybridMapTemplateSpec::stopNavigation(const std::string& templateId) {
341
401
  static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* templateId */)>("stopNavigation");
@@ -345,5 +405,20 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
345
405
  static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<JManeuverState> /* state */)>("setManeuverState");
346
406
  method(_javaPart, jni::make_jstring(templateId), JManeuverState::fromCpp(state));
347
407
  }
408
+ std::shared_ptr<Promise<void>> JHybridMapTemplateSpec::updateOptionsPanel(const std::string& templateId, const std::optional<NitroOptionsPanelConfig>& config) {
409
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<JNitroOptionsPanelConfig> /* config */)>("updateOptionsPanel");
410
+ auto __result = method(_javaPart, jni::make_jstring(templateId), config.has_value() ? JNitroOptionsPanelConfig::fromCpp(config.value()) : nullptr);
411
+ return [&]() {
412
+ auto __promise = Promise<void>::create();
413
+ __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
414
+ __promise->resolve();
415
+ });
416
+ __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
417
+ jni::JniException __jniError(__throwable);
418
+ __promise->reject(std::make_exception_ptr(__jniError));
419
+ });
420
+ return __promise;
421
+ }();
422
+ }
348
423
 
349
424
  } // namespace margelo::nitro::swe::iternio::reactnativeautoplay
@@ -64,9 +64,10 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
64
64
  void updateVisibleTravelEstimate(const std::string& templateId, VisibleTravelEstimate visibleTravelEstimate) override;
65
65
  void updateTravelEstimates(const std::string& templateId, const std::vector<TripPoint>& steps) override;
66
66
  void updateManeuvers(const std::string& templateId, const std::variant<std::vector<NitroRoutingManeuver>, NitroMessageManeuver, NitroLoadingManeuver>& maneuvers) override;
67
- void startNavigation(const std::string& templateId, const TripConfig& trip) override;
67
+ std::shared_ptr<Promise<void>> startNavigation(const std::string& templateId, const TripConfig& trip) override;
68
68
  void stopNavigation(const std::string& templateId) override;
69
69
  void setManeuverState(const std::string& templateId, ManeuverState state) override;
70
+ std::shared_ptr<Promise<void>> updateOptionsPanel(const std::string& templateId, const std::optional<NitroOptionsPanelConfig>& config) override;
70
71
 
71
72
  private:
72
73
  jni::global_ref<JHybridMapTemplateSpec::JavaPart> _javaPart;
@@ -35,6 +35,12 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay { enum class Distanc
35
35
  namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct NitroSection; }
36
36
  // Forward declaration of `NitroRow` to properly resolve imports.
37
37
  namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct NitroRow; }
38
+ // Forward declaration of `ListImageType` to properly resolve imports.
39
+ namespace margelo::nitro::swe::iternio::reactnativeautoplay { enum class ListImageType; }
40
+ // Forward declaration of `WaypointCoordinate` to properly resolve imports.
41
+ namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct WaypointCoordinate; }
42
+ // Forward declaration of `DurationWithTimeZone` to properly resolve imports.
43
+ namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct DurationWithTimeZone; }
38
44
  // Forward declaration of `NitroSectionType` to properly resolve imports.
39
45
  namespace margelo::nitro::swe::iternio::reactnativeautoplay { enum class NitroSectionType; }
40
46
 
@@ -78,6 +84,12 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay { enum class NitroSe
78
84
  #include "JNitroSection.hpp"
79
85
  #include "NitroRow.hpp"
80
86
  #include "JNitroRow.hpp"
87
+ #include "ListImageType.hpp"
88
+ #include "JListImageType.hpp"
89
+ #include "WaypointCoordinate.hpp"
90
+ #include "JWaypointCoordinate.hpp"
91
+ #include "DurationWithTimeZone.hpp"
92
+ #include "JDurationWithTimeZone.hpp"
81
93
  #include "NitroSectionType.hpp"
82
94
  #include "JNitroSectionType.hpp"
83
95
  #include "JFunc_void_std__string.hpp"
@@ -14,15 +14,18 @@
14
14
  #include "AutoText.hpp"
15
15
  #include "Distance.hpp"
16
16
  #include "DistanceUnits.hpp"
17
+ #include "DurationWithTimeZone.hpp"
17
18
  #include "GlyphImage.hpp"
18
19
  #include "JAssetImage.hpp"
19
20
  #include "JAutoText.hpp"
20
21
  #include "JDistance.hpp"
21
22
  #include "JDistanceUnits.hpp"
23
+ #include "JDurationWithTimeZone.hpp"
22
24
  #include "JFunc_void.hpp"
23
25
  #include "JFunc_void_bool.hpp"
24
26
  #include "JFunc_void_std__optional_bool_.hpp"
25
27
  #include "JGlyphImage.hpp"
28
+ #include "JListImageType.hpp"
26
29
  #include "JNitroAction.hpp"
27
30
  #include "JNitroActionType.hpp"
28
31
  #include "JNitroAlignment.hpp"
@@ -37,6 +40,8 @@
37
40
  #include "JNitroSectionType.hpp"
38
41
  #include "JRemoteImage.hpp"
39
42
  #include "JVariant_GlyphImage_AssetImage_RemoteImage.hpp"
43
+ #include "JWaypointCoordinate.hpp"
44
+ #include "ListImageType.hpp"
40
45
  #include "NitroAction.hpp"
41
46
  #include "NitroActionType.hpp"
42
47
  #include "NitroAlignment.hpp"
@@ -49,6 +54,7 @@
49
54
  #include "NitroSection.hpp"
50
55
  #include "NitroSectionType.hpp"
51
56
  #include "RemoteImage.hpp"
57
+ #include "WaypointCoordinate.hpp"
52
58
  #include <NitroModules/JNICallable.hpp>
53
59
  #include <functional>
54
60
  #include <optional>
@@ -0,0 +1,67 @@
1
+ ///
2
+ /// JListImageType.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "ListImageType.hpp"
12
+
13
+ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
14
+
15
+ using namespace facebook;
16
+
17
+ /**
18
+ * The C++ JNI bridge between the C++ enum "ListImageType" and the the Kotlin enum "ListImageType".
19
+ */
20
+ struct JListImageType final: public jni::JavaClass<JListImageType> {
21
+ public:
22
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/swe/iternio/reactnativeautoplay/ListImageType;";
23
+
24
+ public:
25
+ /**
26
+ * Convert this Java/Kotlin-based enum to the C++ enum ListImageType.
27
+ */
28
+ [[maybe_unused]]
29
+ [[nodiscard]]
30
+ ListImageType toCpp() const {
31
+ static const auto clazz = javaClassStatic();
32
+ static const auto fieldOrdinal = clazz->getField<int>("value");
33
+ int ordinal = this->getFieldValue(fieldOrdinal);
34
+ return static_cast<ListImageType>(ordinal);
35
+ }
36
+
37
+ public:
38
+ /**
39
+ * Create a Java/Kotlin-based enum with the given C++ enum's value.
40
+ */
41
+ [[maybe_unused]]
42
+ static jni::alias_ref<JListImageType> fromCpp(ListImageType value) {
43
+ static const auto clazz = javaClassStatic();
44
+ switch (value) {
45
+ case ListImageType::LARGE:
46
+ static const auto fieldLARGE = clazz->getStaticField<JListImageType>("LARGE");
47
+ return clazz->getStaticFieldValue(fieldLARGE);
48
+ case ListImageType::MEDIUM:
49
+ static const auto fieldMEDIUM = clazz->getStaticField<JListImageType>("MEDIUM");
50
+ return clazz->getStaticFieldValue(fieldMEDIUM);
51
+ case ListImageType::SMALL:
52
+ static const auto fieldSMALL = clazz->getStaticField<JListImageType>("SMALL");
53
+ return clazz->getStaticFieldValue(fieldSMALL);
54
+ case ListImageType::EXTRA_SMALL:
55
+ static const auto fieldEXTRA_SMALL = clazz->getStaticField<JListImageType>("EXTRA_SMALL");
56
+ return clazz->getStaticFieldValue(fieldEXTRA_SMALL);
57
+ case ListImageType::ICON:
58
+ static const auto fieldICON = clazz->getStaticField<JListImageType>("ICON");
59
+ return clazz->getStaticFieldValue(fieldICON);
60
+ default:
61
+ std::string stringValue = std::to_string(static_cast<int>(value));
62
+ throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
63
+ }
64
+ }
65
+ };
66
+
67
+ } // namespace margelo::nitro::swe::iternio::reactnativeautoplay
@@ -14,15 +14,18 @@
14
14
  #include "AutoText.hpp"
15
15
  #include "Distance.hpp"
16
16
  #include "DistanceUnits.hpp"
17
+ #include "DurationWithTimeZone.hpp"
17
18
  #include "GlyphImage.hpp"
18
19
  #include "JAssetImage.hpp"
19
20
  #include "JAutoText.hpp"
20
21
  #include "JDistance.hpp"
21
22
  #include "JDistanceUnits.hpp"
23
+ #include "JDurationWithTimeZone.hpp"
22
24
  #include "JFunc_void.hpp"
23
25
  #include "JFunc_void_bool.hpp"
24
26
  #include "JFunc_void_std__optional_bool_.hpp"
25
27
  #include "JGlyphImage.hpp"
28
+ #include "JListImageType.hpp"
26
29
  #include "JNitroAction.hpp"
27
30
  #include "JNitroActionType.hpp"
28
31
  #include "JNitroAlignment.hpp"
@@ -37,6 +40,8 @@
37
40
  #include "JNitroSectionType.hpp"
38
41
  #include "JRemoteImage.hpp"
39
42
  #include "JVariant_GlyphImage_AssetImage_RemoteImage.hpp"
43
+ #include "JWaypointCoordinate.hpp"
44
+ #include "ListImageType.hpp"
40
45
  #include "NitroAction.hpp"
41
46
  #include "NitroActionType.hpp"
42
47
  #include "NitroAlignment.hpp"
@@ -49,6 +54,7 @@
49
54
  #include "NitroSection.hpp"
50
55
  #include "NitroSectionType.hpp"
51
56
  #include "RemoteImage.hpp"
57
+ #include "WaypointCoordinate.hpp"
52
58
  #include <NitroModules/JNICallable.hpp>
53
59
  #include <functional>
54
60
  #include <optional>
@@ -0,0 +1,115 @@
1
+ ///
2
+ /// JNitroChargerLocation.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "NitroChargerLocation.hpp"
12
+
13
+ #include "AssetImage.hpp"
14
+ #include "Distance.hpp"
15
+ #include "DistanceUnits.hpp"
16
+ #include "DurationWithTimeZone.hpp"
17
+ #include "GlyphImage.hpp"
18
+ #include "JAssetImage.hpp"
19
+ #include "JDistance.hpp"
20
+ #include "JDistanceUnits.hpp"
21
+ #include "JDurationWithTimeZone.hpp"
22
+ #include "JFunc_void.hpp"
23
+ #include "JGlyphImage.hpp"
24
+ #include "JNitroColor.hpp"
25
+ #include "JRemoteImage.hpp"
26
+ #include "JVariant_GlyphImage_AssetImage_RemoteImage.hpp"
27
+ #include "JWaypointCoordinate.hpp"
28
+ #include "NitroColor.hpp"
29
+ #include "RemoteImage.hpp"
30
+ #include "WaypointCoordinate.hpp"
31
+ #include <NitroModules/JNICallable.hpp>
32
+ #include <functional>
33
+ #include <optional>
34
+ #include <string>
35
+ #include <variant>
36
+
37
+ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
38
+
39
+ using namespace facebook;
40
+
41
+ /**
42
+ * The C++ JNI bridge between the C++ struct "NitroChargerLocation" and the the Kotlin data class "NitroChargerLocation".
43
+ */
44
+ struct JNitroChargerLocation final: public jni::JavaClass<JNitroChargerLocation> {
45
+ public:
46
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/swe/iternio/reactnativeautoplay/NitroChargerLocation;";
47
+
48
+ public:
49
+ /**
50
+ * Convert this Java/Kotlin-based struct to the C++ struct NitroChargerLocation by copying all values to C++.
51
+ */
52
+ [[maybe_unused]]
53
+ [[nodiscard]]
54
+ NitroChargerLocation toCpp() const {
55
+ static const auto clazz = javaClassStatic();
56
+ static const auto fieldName = clazz->getField<jni::JString>("name");
57
+ jni::local_ref<jni::JString> name = this->getFieldValue(fieldName);
58
+ static const auto fieldAddress = clazz->getField<jni::JString>("address");
59
+ jni::local_ref<jni::JString> address = this->getFieldValue(fieldAddress);
60
+ static const auto fieldCoordinate = clazz->getField<JWaypointCoordinate>("coordinate");
61
+ jni::local_ref<JWaypointCoordinate> coordinate = this->getFieldValue(fieldCoordinate);
62
+ static const auto fieldDistance = clazz->getField<JDistance>("distance");
63
+ jni::local_ref<JDistance> distance = this->getFieldValue(fieldDistance);
64
+ static const auto fieldDuration = clazz->getField<JDurationWithTimeZone>("duration");
65
+ jni::local_ref<JDurationWithTimeZone> duration = this->getFieldValue(fieldDuration);
66
+ static const auto fieldVisible = clazz->getField<jni::JBoolean>("visible");
67
+ jni::local_ref<jni::JBoolean> visible = this->getFieldValue(fieldVisible);
68
+ static const auto fieldImage = clazz->getField<JVariant_GlyphImage_AssetImage_RemoteImage>("image");
69
+ jni::local_ref<JVariant_GlyphImage_AssetImage_RemoteImage> image = this->getFieldValue(fieldImage);
70
+ static const auto fieldOnPress = clazz->getField<JFunc_void::javaobject>("onPress");
71
+ jni::local_ref<JFunc_void::javaobject> onPress = this->getFieldValue(fieldOnPress);
72
+ return NitroChargerLocation(
73
+ name != nullptr ? std::make_optional(name->toStdString()) : std::nullopt,
74
+ address != nullptr ? std::make_optional(address->toStdString()) : std::nullopt,
75
+ coordinate->toCpp(),
76
+ distance->toCpp(),
77
+ duration->toCpp(),
78
+ visible != nullptr ? std::make_optional(static_cast<bool>(visible->value())) : std::nullopt,
79
+ image != nullptr ? std::make_optional(image->toCpp()) : std::nullopt,
80
+ onPress != nullptr ? std::make_optional([&]() -> std::function<void()> {
81
+ if (onPress->isInstanceOf(JFunc_void_cxx::javaClassStatic())) [[likely]] {
82
+ auto downcast = jni::static_ref_cast<JFunc_void_cxx::javaobject>(onPress);
83
+ return downcast->cthis()->getFunction();
84
+ } else {
85
+ auto onPressRef = jni::make_global(onPress);
86
+ return JNICallable<JFunc_void, void()>(std::move(onPressRef));
87
+ }
88
+ }()) : std::nullopt
89
+ );
90
+ }
91
+
92
+ public:
93
+ /**
94
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
95
+ */
96
+ [[maybe_unused]]
97
+ static jni::local_ref<JNitroChargerLocation::javaobject> fromCpp(const NitroChargerLocation& value) {
98
+ using JSignature = JNitroChargerLocation(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<JWaypointCoordinate>, jni::alias_ref<JDistance>, jni::alias_ref<JDurationWithTimeZone>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<JVariant_GlyphImage_AssetImage_RemoteImage>, jni::alias_ref<JFunc_void::javaobject>);
99
+ static const auto clazz = javaClassStatic();
100
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
101
+ return create(
102
+ clazz,
103
+ value.name.has_value() ? jni::make_jstring(value.name.value()) : nullptr,
104
+ value.address.has_value() ? jni::make_jstring(value.address.value()) : nullptr,
105
+ JWaypointCoordinate::fromCpp(value.coordinate),
106
+ JDistance::fromCpp(value.distance),
107
+ JDurationWithTimeZone::fromCpp(value.duration),
108
+ value.visible.has_value() ? jni::JBoolean::valueOf(value.visible.value()) : nullptr,
109
+ value.image.has_value() ? JVariant_GlyphImage_AssetImage_RemoteImage::fromCpp(value.image.value()) : nullptr,
110
+ value.onPress.has_value() ? JFunc_void_cxx::fromCpp(value.onPress.value()) : nullptr
111
+ );
112
+ }
113
+ };
114
+
115
+ } // namespace margelo::nitro::swe::iternio::reactnativeautoplay
@@ -0,0 +1,82 @@
1
+ ///
2
+ /// JNitroChargerOutlet.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "NitroChargerOutlet.hpp"
12
+
13
+ #include "ChargingConnector.hpp"
14
+ #include "JChargingConnector.hpp"
15
+ #include "JFunc_void.hpp"
16
+ #include <NitroModules/JNICallable.hpp>
17
+ #include <functional>
18
+ #include <optional>
19
+
20
+ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
21
+
22
+ using namespace facebook;
23
+
24
+ /**
25
+ * The C++ JNI bridge between the C++ struct "NitroChargerOutlet" and the the Kotlin data class "NitroChargerOutlet".
26
+ */
27
+ struct JNitroChargerOutlet final: public jni::JavaClass<JNitroChargerOutlet> {
28
+ public:
29
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/swe/iternio/reactnativeautoplay/NitroChargerOutlet;";
30
+
31
+ public:
32
+ /**
33
+ * Convert this Java/Kotlin-based struct to the C++ struct NitroChargerOutlet by copying all values to C++.
34
+ */
35
+ [[maybe_unused]]
36
+ [[nodiscard]]
37
+ NitroChargerOutlet toCpp() const {
38
+ static const auto clazz = javaClassStatic();
39
+ static const auto fieldConnector = clazz->getField<JChargingConnector>("connector");
40
+ jni::local_ref<JChargingConnector> connector = this->getFieldValue(fieldConnector);
41
+ static const auto fieldVoltage = clazz->getField<double>("voltage");
42
+ double voltage = this->getFieldValue(fieldVoltage);
43
+ static const auto fieldPowerKw = clazz->getField<double>("powerKw");
44
+ double powerKw = this->getFieldValue(fieldPowerKw);
45
+ static const auto fieldOnPress = clazz->getField<JFunc_void::javaobject>("onPress");
46
+ jni::local_ref<JFunc_void::javaobject> onPress = this->getFieldValue(fieldOnPress);
47
+ return NitroChargerOutlet(
48
+ connector->toCpp(),
49
+ voltage,
50
+ powerKw,
51
+ onPress != nullptr ? std::make_optional([&]() -> std::function<void()> {
52
+ if (onPress->isInstanceOf(JFunc_void_cxx::javaClassStatic())) [[likely]] {
53
+ auto downcast = jni::static_ref_cast<JFunc_void_cxx::javaobject>(onPress);
54
+ return downcast->cthis()->getFunction();
55
+ } else {
56
+ auto onPressRef = jni::make_global(onPress);
57
+ return JNICallable<JFunc_void, void()>(std::move(onPressRef));
58
+ }
59
+ }()) : std::nullopt
60
+ );
61
+ }
62
+
63
+ public:
64
+ /**
65
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
66
+ */
67
+ [[maybe_unused]]
68
+ static jni::local_ref<JNitroChargerOutlet::javaobject> fromCpp(const NitroChargerOutlet& value) {
69
+ using JSignature = JNitroChargerOutlet(jni::alias_ref<JChargingConnector>, double, double, jni::alias_ref<JFunc_void::javaobject>);
70
+ static const auto clazz = javaClassStatic();
71
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
72
+ return create(
73
+ clazz,
74
+ JChargingConnector::fromCpp(value.connector),
75
+ value.voltage,
76
+ value.powerKw,
77
+ value.onPress.has_value() ? JFunc_void_cxx::fromCpp(value.onPress.value()) : nullptr
78
+ );
79
+ }
80
+ };
81
+
82
+ } // namespace margelo::nitro::swe::iternio::reactnativeautoplay
@@ -10,7 +10,7 @@
10
10
  #include <fbjni/fbjni.h>
11
11
  #include "NitroColor.hpp"
12
12
 
13
-
13
+ #include <optional>
14
14
 
15
15
  namespace margelo::nitro::swe::iternio::reactnativeautoplay {
16
16
 
@@ -35,9 +35,12 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
35
35
  double lightColor = this->getFieldValue(fieldLightColor);
36
36
  static const auto fieldDarkColor = clazz->getField<double>("darkColor");
37
37
  double darkColor = this->getFieldValue(fieldDarkColor);
38
+ static const auto fieldIsDefault = clazz->getField<jni::JBoolean>("isDefault");
39
+ jni::local_ref<jni::JBoolean> isDefault = this->getFieldValue(fieldIsDefault);
38
40
  return NitroColor(
39
41
  lightColor,
40
- darkColor
42
+ darkColor,
43
+ isDefault != nullptr ? std::make_optional(static_cast<bool>(isDefault->value())) : std::nullopt
41
44
  );
42
45
  }
43
46
 
@@ -47,13 +50,14 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
47
50
  */
48
51
  [[maybe_unused]]
49
52
  static jni::local_ref<JNitroColor::javaobject> fromCpp(const NitroColor& value) {
50
- using JSignature = JNitroColor(double, double);
53
+ using JSignature = JNitroColor(double, double, jni::alias_ref<jni::JBoolean>);
51
54
  static const auto clazz = javaClassStatic();
52
55
  static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
53
56
  return create(
54
57
  clazz,
55
58
  value.lightColor,
56
- value.darkColor
59
+ value.darkColor,
60
+ value.isDefault.has_value() ? jni::JBoolean::valueOf(value.isDefault.value()) : nullptr
57
61
  );
58
62
  }
59
63
  };
@@ -0,0 +1,112 @@
1
+ ///
2
+ /// JNitroOptionsPanelChargerSection.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "NitroOptionsPanelChargerSection.hpp"
12
+
13
+ #include "AssetImage.hpp"
14
+ #include "ChargingConnector.hpp"
15
+ #include "Distance.hpp"
16
+ #include "DistanceUnits.hpp"
17
+ #include "DurationWithTimeZone.hpp"
18
+ #include "GlyphImage.hpp"
19
+ #include "JAssetImage.hpp"
20
+ #include "JChargingConnector.hpp"
21
+ #include "JDistance.hpp"
22
+ #include "JDistanceUnits.hpp"
23
+ #include "JDurationWithTimeZone.hpp"
24
+ #include "JFunc_void.hpp"
25
+ #include "JGlyphImage.hpp"
26
+ #include "JNitroChargerLocation.hpp"
27
+ #include "JNitroChargerOutlet.hpp"
28
+ #include "JNitroColor.hpp"
29
+ #include "JRemoteImage.hpp"
30
+ #include "JVariant_GlyphImage_AssetImage_RemoteImage.hpp"
31
+ #include "JWaypointCoordinate.hpp"
32
+ #include "NitroChargerLocation.hpp"
33
+ #include "NitroChargerOutlet.hpp"
34
+ #include "NitroColor.hpp"
35
+ #include "RemoteImage.hpp"
36
+ #include "WaypointCoordinate.hpp"
37
+ #include <NitroModules/JNICallable.hpp>
38
+ #include <functional>
39
+ #include <optional>
40
+ #include <string>
41
+ #include <variant>
42
+ #include <vector>
43
+
44
+ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
45
+
46
+ using namespace facebook;
47
+
48
+ /**
49
+ * The C++ JNI bridge between the C++ struct "NitroOptionsPanelChargerSection" and the the Kotlin data class "NitroOptionsPanelChargerSection".
50
+ */
51
+ struct JNitroOptionsPanelChargerSection final: public jni::JavaClass<JNitroOptionsPanelChargerSection> {
52
+ public:
53
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/swe/iternio/reactnativeautoplay/NitroOptionsPanelChargerSection;";
54
+
55
+ public:
56
+ /**
57
+ * Convert this Java/Kotlin-based struct to the C++ struct NitroOptionsPanelChargerSection by copying all values to C++.
58
+ */
59
+ [[maybe_unused]]
60
+ [[nodiscard]]
61
+ NitroOptionsPanelChargerSection toCpp() const {
62
+ static const auto clazz = javaClassStatic();
63
+ static const auto fieldTitle = clazz->getField<jni::JString>("title");
64
+ jni::local_ref<jni::JString> title = this->getFieldValue(fieldTitle);
65
+ static const auto fieldOutlets = clazz->getField<jni::JArrayClass<JNitroChargerOutlet>>("outlets");
66
+ jni::local_ref<jni::JArrayClass<JNitroChargerOutlet>> outlets = this->getFieldValue(fieldOutlets);
67
+ static const auto fieldLocation = clazz->getField<JNitroChargerLocation>("location");
68
+ jni::local_ref<JNitroChargerLocation> location = this->getFieldValue(fieldLocation);
69
+ return NitroOptionsPanelChargerSection(
70
+ title != nullptr ? std::make_optional(title->toStdString()) : std::nullopt,
71
+ [&](auto&& __input) {
72
+ size_t __size = __input->size();
73
+ std::vector<NitroChargerOutlet> __vector;
74
+ __vector.reserve(__size);
75
+ for (size_t __i = 0; __i < __size; __i++) {
76
+ auto __element = __input->getElement(__i);
77
+ __vector.push_back(__element->toCpp());
78
+ }
79
+ return __vector;
80
+ }(outlets),
81
+ location != nullptr ? std::make_optional(location->toCpp()) : std::nullopt
82
+ );
83
+ }
84
+
85
+ public:
86
+ /**
87
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
88
+ */
89
+ [[maybe_unused]]
90
+ static jni::local_ref<JNitroOptionsPanelChargerSection::javaobject> fromCpp(const NitroOptionsPanelChargerSection& value) {
91
+ using JSignature = JNitroOptionsPanelChargerSection(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JArrayClass<JNitroChargerOutlet>>, jni::alias_ref<JNitroChargerLocation>);
92
+ static const auto clazz = javaClassStatic();
93
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
94
+ return create(
95
+ clazz,
96
+ value.title.has_value() ? jni::make_jstring(value.title.value()) : nullptr,
97
+ [&](auto&& __input) {
98
+ size_t __size = __input.size();
99
+ jni::local_ref<jni::JArrayClass<JNitroChargerOutlet>> __array = jni::JArrayClass<JNitroChargerOutlet>::newArray(__size);
100
+ for (size_t __i = 0; __i < __size; __i++) {
101
+ const auto& __element = __input[__i];
102
+ auto __elementJni = JNitroChargerOutlet::fromCpp(__element);
103
+ __array->setElement(__i, *__elementJni);
104
+ }
105
+ return __array;
106
+ }(value.outlets),
107
+ value.location.has_value() ? JNitroChargerLocation::fromCpp(value.location.value()) : nullptr
108
+ );
109
+ }
110
+ };
111
+
112
+ } // namespace margelo::nitro::swe::iternio::reactnativeautoplay