@iternio/react-native-auto-play 0.3.5 → 0.3.7

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 (158) hide show
  1. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidAutoScreen.kt +8 -4
  2. package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidAutoSession.kt +4 -2
  3. package/nitro.json +77 -20
  4. package/nitrogen/generated/android/ReactNativeAutoPlayOnLoad.cpp +194 -124
  5. package/nitrogen/generated/android/ReactNativeAutoPlayOnLoad.hpp +13 -4
  6. package/nitrogen/generated/android/c++/JActiveCarUxRestrictions.hpp +1 -1
  7. package/nitrogen/generated/android/c++/JAlertActionStyle.hpp +1 -1
  8. package/nitrogen/generated/android/c++/JAlertDismissalReason.hpp +1 -1
  9. package/nitrogen/generated/android/c++/JAppFocusState.hpp +1 -1
  10. package/nitrogen/generated/android/c++/JAssetImage.hpp +1 -1
  11. package/nitrogen/generated/android/c++/JAutoText.hpp +1 -1
  12. package/nitrogen/generated/android/c++/JBooleanTelemetryItem.hpp +1 -1
  13. package/nitrogen/generated/android/c++/JCarUxRestrictions.hpp +1 -1
  14. package/nitrogen/generated/android/c++/JClusterEventName.hpp +1 -1
  15. package/nitrogen/generated/android/c++/JColorScheme.hpp +1 -1
  16. package/nitrogen/generated/android/c++/JDistance.hpp +1 -1
  17. package/nitrogen/generated/android/c++/JDistanceUnits.hpp +1 -1
  18. package/nitrogen/generated/android/c++/JDurationWithTimeZone.hpp +1 -1
  19. package/nitrogen/generated/android/c++/JEventName.hpp +1 -1
  20. package/nitrogen/generated/android/c++/JForkType.hpp +1 -1
  21. package/nitrogen/generated/android/c++/JFunc_void.hpp +2 -2
  22. package/nitrogen/generated/android/c++/JFunc_void_ActiveCarUxRestrictions.hpp +2 -2
  23. package/nitrogen/generated/android/c++/JFunc_void_AlertDismissalReason.hpp +2 -2
  24. package/nitrogen/generated/android/c++/JFunc_void_AppFocusState.hpp +2 -2
  25. package/nitrogen/generated/android/c++/JFunc_void_ColorScheme.hpp +2 -2
  26. package/nitrogen/generated/android/c++/JFunc_void_Point.hpp +2 -2
  27. package/nitrogen/generated/android/c++/JFunc_void_Point_double.hpp +2 -2
  28. package/nitrogen/generated/android/c++/JFunc_void_Point_std__optional_Point_.hpp +2 -2
  29. package/nitrogen/generated/android/c++/JFunc_void_SafeAreaInsets.hpp +2 -2
  30. package/nitrogen/generated/android/c++/JFunc_void_VisibilityState.hpp +2 -2
  31. package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +2 -2
  32. package/nitrogen/generated/android/c++/JFunc_void_std__optional_Location__std__optional_std__string_.hpp +2 -2
  33. package/nitrogen/generated/android/c++/JFunc_void_std__optional_Telemetry_.hpp +2 -2
  34. package/nitrogen/generated/android/c++/JFunc_void_std__optional_bool_.hpp +2 -2
  35. package/nitrogen/generated/android/c++/JFunc_void_std__optional_std__string__std__optional_GoogleSignInAccount_.hpp +2 -2
  36. package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +2 -2
  37. package/nitrogen/generated/android/c++/JFunc_void_std__string_ColorScheme.hpp +2 -2
  38. package/nitrogen/generated/android/c++/JFunc_void_std__string_ZoomEvent.hpp +2 -2
  39. package/nitrogen/generated/android/c++/JFunc_void_std__string_bool.hpp +2 -2
  40. package/nitrogen/generated/android/c++/JFunc_void_std__string_std__string.hpp +2 -2
  41. package/nitrogen/generated/android/c++/JGlyphImage.hpp +1 -1
  42. package/nitrogen/generated/android/c++/JGoogleSignIn.hpp +1 -1
  43. package/nitrogen/generated/android/c++/JGoogleSignInAccount.hpp +1 -1
  44. package/nitrogen/generated/android/c++/JGridTemplateConfig.hpp +1 -1
  45. package/nitrogen/generated/android/c++/JHybridAndroidAutoTelemetrySpec.cpp +20 -26
  46. package/nitrogen/generated/android/c++/JHybridAndroidAutoTelemetrySpec.hpp +19 -22
  47. package/nitrogen/generated/android/c++/JHybridAndroidAutomotiveSpec.cpp +23 -29
  48. package/nitrogen/generated/android/c++/JHybridAndroidAutomotiveSpec.hpp +19 -22
  49. package/nitrogen/generated/android/c++/JHybridAutoPlaySpec.cpp +29 -35
  50. package/nitrogen/generated/android/c++/JHybridAutoPlaySpec.hpp +19 -22
  51. package/nitrogen/generated/android/c++/JHybridClusterSpec.cpp +25 -31
  52. package/nitrogen/generated/android/c++/JHybridClusterSpec.hpp +19 -22
  53. package/nitrogen/generated/android/c++/JHybridGridTemplateSpec.cpp +20 -26
  54. package/nitrogen/generated/android/c++/JHybridGridTemplateSpec.hpp +19 -22
  55. package/nitrogen/generated/android/c++/JHybridInformationTemplateSpec.cpp +20 -26
  56. package/nitrogen/generated/android/c++/JHybridInformationTemplateSpec.hpp +19 -22
  57. package/nitrogen/generated/android/c++/JHybridListTemplateSpec.cpp +20 -26
  58. package/nitrogen/generated/android/c++/JHybridListTemplateSpec.hpp +19 -22
  59. package/nitrogen/generated/android/c++/JHybridMapTemplateSpec.cpp +30 -36
  60. package/nitrogen/generated/android/c++/JHybridMapTemplateSpec.hpp +19 -22
  61. package/nitrogen/generated/android/c++/JHybridMessageTemplateSpec.cpp +19 -25
  62. package/nitrogen/generated/android/c++/JHybridMessageTemplateSpec.hpp +19 -22
  63. package/nitrogen/generated/android/c++/JHybridSearchTemplateSpec.cpp +20 -26
  64. package/nitrogen/generated/android/c++/JHybridSearchTemplateSpec.hpp +19 -22
  65. package/nitrogen/generated/android/c++/JHybridSignInTemplateSpec.cpp +20 -26
  66. package/nitrogen/generated/android/c++/JHybridSignInTemplateSpec.hpp +19 -22
  67. package/nitrogen/generated/android/c++/JImageLane.hpp +1 -1
  68. package/nitrogen/generated/android/c++/JInformationTemplateConfig.hpp +1 -1
  69. package/nitrogen/generated/android/c++/JInputSignIn.hpp +1 -1
  70. package/nitrogen/generated/android/c++/JKeepType.hpp +1 -1
  71. package/nitrogen/generated/android/c++/JKeyboardType.hpp +1 -1
  72. package/nitrogen/generated/android/c++/JLaneGuidance.hpp +1 -1
  73. package/nitrogen/generated/android/c++/JListTemplateConfig.hpp +1 -1
  74. package/nitrogen/generated/android/c++/JLocation.hpp +1 -1
  75. package/nitrogen/generated/android/c++/JManeuverType.hpp +1 -1
  76. package/nitrogen/generated/android/c++/JMapTemplateConfig.hpp +1 -1
  77. package/nitrogen/generated/android/c++/JMessageTemplateConfig.hpp +1 -1
  78. package/nitrogen/generated/android/c++/JNavigationAlertAction.hpp +1 -1
  79. package/nitrogen/generated/android/c++/JNitroAction.hpp +1 -1
  80. package/nitrogen/generated/android/c++/JNitroActionType.hpp +1 -1
  81. package/nitrogen/generated/android/c++/JNitroAlignment.hpp +1 -1
  82. package/nitrogen/generated/android/c++/JNitroAttributedString.hpp +1 -1
  83. package/nitrogen/generated/android/c++/JNitroAttributedStringImage.hpp +1 -1
  84. package/nitrogen/generated/android/c++/JNitroBaseMapTemplateConfig.hpp +1 -1
  85. package/nitrogen/generated/android/c++/JNitroButtonStyle.hpp +1 -1
  86. package/nitrogen/generated/android/c++/JNitroColor.hpp +1 -1
  87. package/nitrogen/generated/android/c++/JNitroGridButton.hpp +1 -1
  88. package/nitrogen/generated/android/c++/JNitroImage.hpp +3 -3
  89. package/nitrogen/generated/android/c++/JNitroLoadingManeuver.hpp +1 -1
  90. package/nitrogen/generated/android/c++/JNitroManeuver.hpp +4 -4
  91. package/nitrogen/generated/android/c++/JNitroMapButton.hpp +1 -1
  92. package/nitrogen/generated/android/c++/JNitroMapButtonType.hpp +1 -1
  93. package/nitrogen/generated/android/c++/JNitroMessageManeuver.hpp +1 -1
  94. package/nitrogen/generated/android/c++/JNitroNavigationAlert.hpp +1 -1
  95. package/nitrogen/generated/android/c++/JNitroRoutingManeuver.hpp +1 -1
  96. package/nitrogen/generated/android/c++/JNitroRow.hpp +1 -1
  97. package/nitrogen/generated/android/c++/JNitroSection.hpp +1 -1
  98. package/nitrogen/generated/android/c++/JNitroSectionType.hpp +1 -1
  99. package/nitrogen/generated/android/c++/JNumericTelemetryItem.hpp +1 -1
  100. package/nitrogen/generated/android/c++/JOffRampType.hpp +1 -1
  101. package/nitrogen/generated/android/c++/JOnRampType.hpp +1 -1
  102. package/nitrogen/generated/android/c++/JPermissionRequestResult.hpp +1 -1
  103. package/nitrogen/generated/android/c++/JPinSignIn.hpp +1 -1
  104. package/nitrogen/generated/android/c++/JPoint.hpp +1 -1
  105. package/nitrogen/generated/android/c++/JPreferredImageLane.hpp +1 -1
  106. package/nitrogen/generated/android/c++/JQrSignIn.hpp +1 -1
  107. package/nitrogen/generated/android/c++/JRouteChoice.hpp +1 -1
  108. package/nitrogen/generated/android/c++/JSafeAreaInsets.hpp +1 -1
  109. package/nitrogen/generated/android/c++/JSearchTemplateConfig.hpp +1 -1
  110. package/nitrogen/generated/android/c++/JSignInMethods.hpp +1 -1
  111. package/nitrogen/generated/android/c++/JSignInTemplateConfig.hpp +1 -1
  112. package/nitrogen/generated/android/c++/JStringTelemetryItem.hpp +1 -1
  113. package/nitrogen/generated/android/c++/JTelemetry.hpp +1 -1
  114. package/nitrogen/generated/android/c++/JTextInputType.hpp +1 -1
  115. package/nitrogen/generated/android/c++/JTrafficSide.hpp +1 -1
  116. package/nitrogen/generated/android/c++/JTravelEstimates.hpp +1 -1
  117. package/nitrogen/generated/android/c++/JTripConfig.hpp +1 -1
  118. package/nitrogen/generated/android/c++/JTripPoint.hpp +1 -1
  119. package/nitrogen/generated/android/c++/JTripPreviewTextConfiguration.hpp +1 -1
  120. package/nitrogen/generated/android/c++/JTripSelectorCallback.hpp +1 -1
  121. package/nitrogen/generated/android/c++/JTripsConfig.hpp +1 -1
  122. package/nitrogen/generated/android/c++/JTurnType.hpp +1 -1
  123. package/nitrogen/generated/android/c++/JVariant_GlyphImage_AssetImage.hpp +3 -3
  124. package/nitrogen/generated/android/c++/JVariant_PreferredImageLane_ImageLane.hpp +3 -3
  125. package/nitrogen/generated/android/c++/JVariant_QrSignIn_PinSignIn_InputSignIn_GoogleSignIn.hpp +5 -5
  126. package/nitrogen/generated/android/c++/JVehicleTelemetryItem.hpp +1 -1
  127. package/nitrogen/generated/android/c++/JVisibilityState.hpp +1 -1
  128. package/nitrogen/generated/android/c++/JVisibleTravelEstimate.hpp +1 -1
  129. package/nitrogen/generated/android/c++/JZoomEvent.hpp +1 -1
  130. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAndroidAutoTelemetrySpec.kt +15 -18
  131. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAndroidAutomotiveSpec.kt +15 -18
  132. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAutoPlaySpec.kt +15 -18
  133. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridClusterSpec.kt +15 -18
  134. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridGridTemplateSpec.kt +15 -18
  135. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridInformationTemplateSpec.kt +15 -18
  136. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridListTemplateSpec.kt +15 -18
  137. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridMapTemplateSpec.kt +15 -18
  138. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridMessageTemplateSpec.kt +14 -17
  139. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridSearchTemplateSpec.kt +15 -18
  140. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridSignInTemplateSpec.kt +15 -18
  141. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroImage.kt +0 -6
  142. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroManeuver.kt +0 -7
  143. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Variant_GlyphImage_AssetImage.kt +0 -6
  144. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Variant_PreferredImageLane_ImageLane.kt +0 -6
  145. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Variant_QrSignIn_PinSignIn_InputSignIn_GoogleSignIn.kt +0 -8
  146. package/nitrogen/generated/ios/ReactNativeAutoPlay-Swift-Cxx-Bridge.hpp +36 -36
  147. package/nitrogen/generated/ios/swift/AutoText.swift +8 -1
  148. package/nitrogen/generated/ios/swift/GlyphImage.swift +8 -1
  149. package/nitrogen/generated/ios/swift/GridTemplateConfig.swift +8 -1
  150. package/nitrogen/generated/ios/swift/InformationTemplateConfig.swift +8 -1
  151. package/nitrogen/generated/ios/swift/ListTemplateConfig.swift +8 -1
  152. package/nitrogen/generated/ios/swift/MapTemplateConfig.swift +16 -2
  153. package/nitrogen/generated/ios/swift/MessageTemplateConfig.swift +8 -1
  154. package/nitrogen/generated/ios/swift/NitroAction.swift +8 -1
  155. package/nitrogen/generated/ios/swift/NitroBaseMapTemplateConfig.swift +8 -1
  156. package/nitrogen/generated/ios/swift/NitroRoutingManeuver.swift +16 -2
  157. package/nitrogen/generated/ios/swift/SearchTemplateConfig.swift +8 -1
  158. package/package.json +2 -2
@@ -18,34 +18,33 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
18
18
 
19
19
  using namespace facebook;
20
20
 
21
- class JHybridClusterSpec: public jni::HybridClass<JHybridClusterSpec, JHybridObject>,
22
- public virtual HybridClusterSpec {
21
+ class JHybridClusterSpec: public virtual HybridClusterSpec, public virtual JHybridObject {
23
22
  public:
24
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/swe/iternio/reactnativeautoplay/HybridClusterSpec;";
25
- static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
26
- static void registerNatives();
27
-
28
- protected:
29
- // C++ constructor (called from Java via `initHybrid()`)
30
- explicit JHybridClusterSpec(jni::alias_ref<jhybridobject> jThis) :
31
- HybridObject(HybridClusterSpec::TAG),
32
- HybridBase(jThis),
33
- _javaPart(jni::make_global(jThis)) {}
23
+ struct JavaPart: public jni::JavaClass<JavaPart, JHybridObject::JavaPart> {
24
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/swe/iternio/reactnativeautoplay/HybridClusterSpec;";
25
+ std::shared_ptr<JHybridClusterSpec> getJHybridClusterSpec();
26
+ };
27
+ struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
28
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/swe/iternio/reactnativeautoplay/HybridClusterSpec$CxxPart;";
29
+ static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
30
+ static void registerNatives();
31
+ using HybridBase::HybridBase;
32
+ protected:
33
+ std::shared_ptr<JHybridObject> createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) override;
34
+ };
34
35
 
35
36
  public:
37
+ explicit JHybridClusterSpec(const jni::local_ref<JHybridClusterSpec::JavaPart>& javaPart):
38
+ HybridObject(HybridClusterSpec::TAG),
39
+ JHybridObject(javaPart),
40
+ _javaPart(jni::make_global(javaPart)) {}
36
41
  ~JHybridClusterSpec() override {
37
42
  // Hermes GC can destroy JS objects on a non-JNI Thread.
38
43
  jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
39
44
  }
40
45
 
41
46
  public:
42
- size_t getExternalMemorySize() noexcept override;
43
- bool equals(const std::shared_ptr<HybridObject>& other) override;
44
- void dispose() noexcept override;
45
- std::string toString() override;
46
-
47
- public:
48
- inline const jni::global_ref<JHybridClusterSpec::javaobject>& getJavaPart() const noexcept {
47
+ inline const jni::global_ref<JHybridClusterSpec::JavaPart>& getJavaPart() const noexcept {
49
48
  return _javaPart;
50
49
  }
51
50
 
@@ -64,9 +63,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
64
63
  std::function<void()> addListenerSpeedLimit(const std::function<void(const std::string& /* clusterId */, bool /* payload */)>& callback) override;
65
64
 
66
65
  private:
67
- friend HybridBase;
68
- using HybridBase::HybridBase;
69
- jni::global_ref<JHybridClusterSpec::javaobject> _javaPart;
66
+ jni::global_ref<JHybridClusterSpec::JavaPart> _javaPart;
70
67
  };
71
68
 
72
69
  } // namespace margelo::nitro::swe::iternio::reactnativeautoplay
@@ -85,37 +85,31 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay { enum class NitroMa
85
85
 
86
86
  namespace margelo::nitro::swe::iternio::reactnativeautoplay {
87
87
 
88
- jni::local_ref<JHybridGridTemplateSpec::jhybriddata> JHybridGridTemplateSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
89
- return makeCxxInstance(jThis);
90
- }
91
-
92
- void JHybridGridTemplateSpec::registerNatives() {
93
- registerHybrid({
94
- makeNativeMethod("initHybrid", JHybridGridTemplateSpec::initHybrid),
95
- });
88
+ std::shared_ptr<JHybridGridTemplateSpec> JHybridGridTemplateSpec::JavaPart::getJHybridGridTemplateSpec() {
89
+ auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
90
+ auto castHybridObject = std::dynamic_pointer_cast<JHybridGridTemplateSpec>(hybridObject);
91
+ if (castHybridObject == nullptr) [[unlikely]] {
92
+ throw std::runtime_error("Failed to downcast JHybridObject to JHybridGridTemplateSpec!");
93
+ }
94
+ return castHybridObject;
96
95
  }
97
96
 
98
- size_t JHybridGridTemplateSpec::getExternalMemorySize() noexcept {
99
- static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
100
- return method(_javaPart);
97
+ jni::local_ref<JHybridGridTemplateSpec::CxxPart::jhybriddata> JHybridGridTemplateSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
98
+ return makeCxxInstance(jThis);
101
99
  }
102
100
 
103
- bool JHybridGridTemplateSpec::equals(const std::shared_ptr<HybridObject>& other) {
104
- if (auto otherCast = std::dynamic_pointer_cast<JHybridGridTemplateSpec>(other)) {
105
- return _javaPart == otherCast->_javaPart;
101
+ std::shared_ptr<JHybridObject> JHybridGridTemplateSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
102
+ auto castJavaPart = jni::dynamic_ref_cast<JHybridGridTemplateSpec::JavaPart>(javaPart);
103
+ if (castJavaPart == nullptr) [[unlikely]] {
104
+ throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridGridTemplateSpec::JavaPart!");
106
105
  }
107
- return false;
108
- }
109
-
110
- void JHybridGridTemplateSpec::dispose() noexcept {
111
- static const auto method = javaClassStatic()->getMethod<void()>("dispose");
112
- method(_javaPart);
106
+ return std::make_shared<JHybridGridTemplateSpec>(castJavaPart);
113
107
  }
114
108
 
115
- std::string JHybridGridTemplateSpec::toString() {
116
- static const auto method = javaClassStatic()->getMethod<jni::JString()>("toString");
117
- auto javaString = method(_javaPart);
118
- return javaString->toStdString();
109
+ void JHybridGridTemplateSpec::CxxPart::registerNatives() {
110
+ registerHybrid({
111
+ makeNativeMethod("initHybrid", JHybridGridTemplateSpec::CxxPart::initHybrid),
112
+ });
119
113
  }
120
114
 
121
115
  // Properties
@@ -123,11 +117,11 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
123
117
 
124
118
  // Methods
125
119
  void JHybridGridTemplateSpec::createGridTemplate(const GridTemplateConfig& config) {
126
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JGridTemplateConfig> /* config */)>("createGridTemplate");
120
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JGridTemplateConfig> /* config */)>("createGridTemplate");
127
121
  method(_javaPart, JGridTemplateConfig::fromCpp(config));
128
122
  }
129
123
  std::shared_ptr<Promise<void>> JHybridGridTemplateSpec::updateGridTemplateButtons(const std::string& templateId, const std::vector<NitroGridButton>& buttons) {
130
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<jni::JArrayClass<JNitroGridButton>> /* buttons */)>("updateGridTemplateButtons");
124
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<jni::JArrayClass<JNitroGridButton>> /* buttons */)>("updateGridTemplateButtons");
131
125
  auto __result = method(_javaPart, jni::make_jstring(templateId), [&]() {
132
126
  size_t __size = buttons.size();
133
127
  jni::local_ref<jni::JArrayClass<JNitroGridButton>> __array = jni::JArrayClass<JNitroGridButton>::newArray(__size);
@@ -18,34 +18,33 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
18
18
 
19
19
  using namespace facebook;
20
20
 
21
- class JHybridGridTemplateSpec: public jni::HybridClass<JHybridGridTemplateSpec, JHybridObject>,
22
- public virtual HybridGridTemplateSpec {
21
+ class JHybridGridTemplateSpec: public virtual HybridGridTemplateSpec, public virtual JHybridObject {
23
22
  public:
24
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/swe/iternio/reactnativeautoplay/HybridGridTemplateSpec;";
25
- static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
26
- static void registerNatives();
27
-
28
- protected:
29
- // C++ constructor (called from Java via `initHybrid()`)
30
- explicit JHybridGridTemplateSpec(jni::alias_ref<jhybridobject> jThis) :
31
- HybridObject(HybridGridTemplateSpec::TAG),
32
- HybridBase(jThis),
33
- _javaPart(jni::make_global(jThis)) {}
23
+ struct JavaPart: public jni::JavaClass<JavaPart, JHybridObject::JavaPart> {
24
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/swe/iternio/reactnativeautoplay/HybridGridTemplateSpec;";
25
+ std::shared_ptr<JHybridGridTemplateSpec> getJHybridGridTemplateSpec();
26
+ };
27
+ struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
28
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/swe/iternio/reactnativeautoplay/HybridGridTemplateSpec$CxxPart;";
29
+ static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
30
+ static void registerNatives();
31
+ using HybridBase::HybridBase;
32
+ protected:
33
+ std::shared_ptr<JHybridObject> createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) override;
34
+ };
34
35
 
35
36
  public:
37
+ explicit JHybridGridTemplateSpec(const jni::local_ref<JHybridGridTemplateSpec::JavaPart>& javaPart):
38
+ HybridObject(HybridGridTemplateSpec::TAG),
39
+ JHybridObject(javaPart),
40
+ _javaPart(jni::make_global(javaPart)) {}
36
41
  ~JHybridGridTemplateSpec() override {
37
42
  // Hermes GC can destroy JS objects on a non-JNI Thread.
38
43
  jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
39
44
  }
40
45
 
41
46
  public:
42
- size_t getExternalMemorySize() noexcept override;
43
- bool equals(const std::shared_ptr<HybridObject>& other) override;
44
- void dispose() noexcept override;
45
- std::string toString() override;
46
-
47
- public:
48
- inline const jni::global_ref<JHybridGridTemplateSpec::javaobject>& getJavaPart() const noexcept {
47
+ inline const jni::global_ref<JHybridGridTemplateSpec::JavaPart>& getJavaPart() const noexcept {
49
48
  return _javaPart;
50
49
  }
51
50
 
@@ -59,9 +58,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
59
58
  std::shared_ptr<Promise<void>> updateGridTemplateButtons(const std::string& templateId, const std::vector<NitroGridButton>& buttons) override;
60
59
 
61
60
  private:
62
- friend HybridBase;
63
- using HybridBase::HybridBase;
64
- jni::global_ref<JHybridGridTemplateSpec::javaobject> _javaPart;
61
+ jni::global_ref<JHybridGridTemplateSpec::JavaPart> _javaPart;
65
62
  };
66
63
 
67
64
  } // namespace margelo::nitro::swe::iternio::reactnativeautoplay
@@ -93,37 +93,31 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay { enum class NitroMa
93
93
 
94
94
  namespace margelo::nitro::swe::iternio::reactnativeautoplay {
95
95
 
96
- jni::local_ref<JHybridInformationTemplateSpec::jhybriddata> JHybridInformationTemplateSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
97
- return makeCxxInstance(jThis);
98
- }
99
-
100
- void JHybridInformationTemplateSpec::registerNatives() {
101
- registerHybrid({
102
- makeNativeMethod("initHybrid", JHybridInformationTemplateSpec::initHybrid),
103
- });
96
+ std::shared_ptr<JHybridInformationTemplateSpec> JHybridInformationTemplateSpec::JavaPart::getJHybridInformationTemplateSpec() {
97
+ auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
98
+ auto castHybridObject = std::dynamic_pointer_cast<JHybridInformationTemplateSpec>(hybridObject);
99
+ if (castHybridObject == nullptr) [[unlikely]] {
100
+ throw std::runtime_error("Failed to downcast JHybridObject to JHybridInformationTemplateSpec!");
101
+ }
102
+ return castHybridObject;
104
103
  }
105
104
 
106
- size_t JHybridInformationTemplateSpec::getExternalMemorySize() noexcept {
107
- static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
108
- return method(_javaPart);
105
+ jni::local_ref<JHybridInformationTemplateSpec::CxxPart::jhybriddata> JHybridInformationTemplateSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
106
+ return makeCxxInstance(jThis);
109
107
  }
110
108
 
111
- bool JHybridInformationTemplateSpec::equals(const std::shared_ptr<HybridObject>& other) {
112
- if (auto otherCast = std::dynamic_pointer_cast<JHybridInformationTemplateSpec>(other)) {
113
- return _javaPart == otherCast->_javaPart;
109
+ std::shared_ptr<JHybridObject> JHybridInformationTemplateSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
110
+ auto castJavaPart = jni::dynamic_ref_cast<JHybridInformationTemplateSpec::JavaPart>(javaPart);
111
+ if (castJavaPart == nullptr) [[unlikely]] {
112
+ throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridInformationTemplateSpec::JavaPart!");
114
113
  }
115
- return false;
116
- }
117
-
118
- void JHybridInformationTemplateSpec::dispose() noexcept {
119
- static const auto method = javaClassStatic()->getMethod<void()>("dispose");
120
- method(_javaPart);
114
+ return std::make_shared<JHybridInformationTemplateSpec>(castJavaPart);
121
115
  }
122
116
 
123
- std::string JHybridInformationTemplateSpec::toString() {
124
- static const auto method = javaClassStatic()->getMethod<jni::JString()>("toString");
125
- auto javaString = method(_javaPart);
126
- return javaString->toStdString();
117
+ void JHybridInformationTemplateSpec::CxxPart::registerNatives() {
118
+ registerHybrid({
119
+ makeNativeMethod("initHybrid", JHybridInformationTemplateSpec::CxxPart::initHybrid),
120
+ });
127
121
  }
128
122
 
129
123
  // Properties
@@ -131,11 +125,11 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
131
125
 
132
126
  // Methods
133
127
  void JHybridInformationTemplateSpec::createInformationTemplate(const InformationTemplateConfig& config) {
134
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JInformationTemplateConfig> /* config */)>("createInformationTemplate");
128
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JInformationTemplateConfig> /* config */)>("createInformationTemplate");
135
129
  method(_javaPart, JInformationTemplateConfig::fromCpp(config));
136
130
  }
137
131
  std::shared_ptr<Promise<void>> JHybridInformationTemplateSpec::updateInformationTemplateSections(const std::string& templateId, const NitroSection& section) {
138
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<JNitroSection> /* section */)>("updateInformationTemplateSections");
132
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<JNitroSection> /* section */)>("updateInformationTemplateSections");
139
133
  auto __result = method(_javaPart, jni::make_jstring(templateId), JNitroSection::fromCpp(section));
140
134
  return [&]() {
141
135
  auto __promise = Promise<void>::create();
@@ -18,34 +18,33 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
18
18
 
19
19
  using namespace facebook;
20
20
 
21
- class JHybridInformationTemplateSpec: public jni::HybridClass<JHybridInformationTemplateSpec, JHybridObject>,
22
- public virtual HybridInformationTemplateSpec {
21
+ class JHybridInformationTemplateSpec: public virtual HybridInformationTemplateSpec, public virtual JHybridObject {
23
22
  public:
24
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/swe/iternio/reactnativeautoplay/HybridInformationTemplateSpec;";
25
- static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
26
- static void registerNatives();
27
-
28
- protected:
29
- // C++ constructor (called from Java via `initHybrid()`)
30
- explicit JHybridInformationTemplateSpec(jni::alias_ref<jhybridobject> jThis) :
31
- HybridObject(HybridInformationTemplateSpec::TAG),
32
- HybridBase(jThis),
33
- _javaPart(jni::make_global(jThis)) {}
23
+ struct JavaPart: public jni::JavaClass<JavaPart, JHybridObject::JavaPart> {
24
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/swe/iternio/reactnativeautoplay/HybridInformationTemplateSpec;";
25
+ std::shared_ptr<JHybridInformationTemplateSpec> getJHybridInformationTemplateSpec();
26
+ };
27
+ struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
28
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/swe/iternio/reactnativeautoplay/HybridInformationTemplateSpec$CxxPart;";
29
+ static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
30
+ static void registerNatives();
31
+ using HybridBase::HybridBase;
32
+ protected:
33
+ std::shared_ptr<JHybridObject> createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) override;
34
+ };
34
35
 
35
36
  public:
37
+ explicit JHybridInformationTemplateSpec(const jni::local_ref<JHybridInformationTemplateSpec::JavaPart>& javaPart):
38
+ HybridObject(HybridInformationTemplateSpec::TAG),
39
+ JHybridObject(javaPart),
40
+ _javaPart(jni::make_global(javaPart)) {}
36
41
  ~JHybridInformationTemplateSpec() override {
37
42
  // Hermes GC can destroy JS objects on a non-JNI Thread.
38
43
  jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
39
44
  }
40
45
 
41
46
  public:
42
- size_t getExternalMemorySize() noexcept override;
43
- bool equals(const std::shared_ptr<HybridObject>& other) override;
44
- void dispose() noexcept override;
45
- std::string toString() override;
46
-
47
- public:
48
- inline const jni::global_ref<JHybridInformationTemplateSpec::javaobject>& getJavaPart() const noexcept {
47
+ inline const jni::global_ref<JHybridInformationTemplateSpec::JavaPart>& getJavaPart() const noexcept {
49
48
  return _javaPart;
50
49
  }
51
50
 
@@ -59,9 +58,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
59
58
  std::shared_ptr<Promise<void>> updateInformationTemplateSections(const std::string& templateId, const NitroSection& section) override;
60
59
 
61
60
  private:
62
- friend HybridBase;
63
- using HybridBase::HybridBase;
64
- jni::global_ref<JHybridInformationTemplateSpec::javaobject> _javaPart;
61
+ jni::global_ref<JHybridInformationTemplateSpec::JavaPart> _javaPart;
65
62
  };
66
63
 
67
64
  } // namespace margelo::nitro::swe::iternio::reactnativeautoplay
@@ -93,37 +93,31 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay { enum class NitroMa
93
93
 
94
94
  namespace margelo::nitro::swe::iternio::reactnativeautoplay {
95
95
 
96
- jni::local_ref<JHybridListTemplateSpec::jhybriddata> JHybridListTemplateSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
97
- return makeCxxInstance(jThis);
98
- }
99
-
100
- void JHybridListTemplateSpec::registerNatives() {
101
- registerHybrid({
102
- makeNativeMethod("initHybrid", JHybridListTemplateSpec::initHybrid),
103
- });
96
+ std::shared_ptr<JHybridListTemplateSpec> JHybridListTemplateSpec::JavaPart::getJHybridListTemplateSpec() {
97
+ auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
98
+ auto castHybridObject = std::dynamic_pointer_cast<JHybridListTemplateSpec>(hybridObject);
99
+ if (castHybridObject == nullptr) [[unlikely]] {
100
+ throw std::runtime_error("Failed to downcast JHybridObject to JHybridListTemplateSpec!");
101
+ }
102
+ return castHybridObject;
104
103
  }
105
104
 
106
- size_t JHybridListTemplateSpec::getExternalMemorySize() noexcept {
107
- static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
108
- return method(_javaPart);
105
+ jni::local_ref<JHybridListTemplateSpec::CxxPart::jhybriddata> JHybridListTemplateSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
106
+ return makeCxxInstance(jThis);
109
107
  }
110
108
 
111
- bool JHybridListTemplateSpec::equals(const std::shared_ptr<HybridObject>& other) {
112
- if (auto otherCast = std::dynamic_pointer_cast<JHybridListTemplateSpec>(other)) {
113
- return _javaPart == otherCast->_javaPart;
109
+ std::shared_ptr<JHybridObject> JHybridListTemplateSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
110
+ auto castJavaPart = jni::dynamic_ref_cast<JHybridListTemplateSpec::JavaPart>(javaPart);
111
+ if (castJavaPart == nullptr) [[unlikely]] {
112
+ throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridListTemplateSpec::JavaPart!");
114
113
  }
115
- return false;
116
- }
117
-
118
- void JHybridListTemplateSpec::dispose() noexcept {
119
- static const auto method = javaClassStatic()->getMethod<void()>("dispose");
120
- method(_javaPart);
114
+ return std::make_shared<JHybridListTemplateSpec>(castJavaPart);
121
115
  }
122
116
 
123
- std::string JHybridListTemplateSpec::toString() {
124
- static const auto method = javaClassStatic()->getMethod<jni::JString()>("toString");
125
- auto javaString = method(_javaPart);
126
- return javaString->toStdString();
117
+ void JHybridListTemplateSpec::CxxPart::registerNatives() {
118
+ registerHybrid({
119
+ makeNativeMethod("initHybrid", JHybridListTemplateSpec::CxxPart::initHybrid),
120
+ });
127
121
  }
128
122
 
129
123
  // Properties
@@ -131,11 +125,11 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
131
125
 
132
126
  // Methods
133
127
  void JHybridListTemplateSpec::createListTemplate(const ListTemplateConfig& config) {
134
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JListTemplateConfig> /* config */)>("createListTemplate");
128
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JListTemplateConfig> /* config */)>("createListTemplate");
135
129
  method(_javaPart, JListTemplateConfig::fromCpp(config));
136
130
  }
137
131
  std::shared_ptr<Promise<void>> JHybridListTemplateSpec::updateListTemplateSections(const std::string& templateId, const std::optional<std::vector<NitroSection>>& sections) {
138
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<jni::JArrayClass<JNitroSection>> /* sections */)>("updateListTemplateSections");
132
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<jni::JArrayClass<JNitroSection>> /* sections */)>("updateListTemplateSections");
139
133
  auto __result = method(_javaPart, jni::make_jstring(templateId), sections.has_value() ? [&]() {
140
134
  size_t __size = sections.value().size();
141
135
  jni::local_ref<jni::JArrayClass<JNitroSection>> __array = jni::JArrayClass<JNitroSection>::newArray(__size);
@@ -18,34 +18,33 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
18
18
 
19
19
  using namespace facebook;
20
20
 
21
- class JHybridListTemplateSpec: public jni::HybridClass<JHybridListTemplateSpec, JHybridObject>,
22
- public virtual HybridListTemplateSpec {
21
+ class JHybridListTemplateSpec: public virtual HybridListTemplateSpec, public virtual JHybridObject {
23
22
  public:
24
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/swe/iternio/reactnativeautoplay/HybridListTemplateSpec;";
25
- static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
26
- static void registerNatives();
27
-
28
- protected:
29
- // C++ constructor (called from Java via `initHybrid()`)
30
- explicit JHybridListTemplateSpec(jni::alias_ref<jhybridobject> jThis) :
31
- HybridObject(HybridListTemplateSpec::TAG),
32
- HybridBase(jThis),
33
- _javaPart(jni::make_global(jThis)) {}
23
+ struct JavaPart: public jni::JavaClass<JavaPart, JHybridObject::JavaPart> {
24
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/swe/iternio/reactnativeautoplay/HybridListTemplateSpec;";
25
+ std::shared_ptr<JHybridListTemplateSpec> getJHybridListTemplateSpec();
26
+ };
27
+ struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
28
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/swe/iternio/reactnativeautoplay/HybridListTemplateSpec$CxxPart;";
29
+ static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
30
+ static void registerNatives();
31
+ using HybridBase::HybridBase;
32
+ protected:
33
+ std::shared_ptr<JHybridObject> createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) override;
34
+ };
34
35
 
35
36
  public:
37
+ explicit JHybridListTemplateSpec(const jni::local_ref<JHybridListTemplateSpec::JavaPart>& javaPart):
38
+ HybridObject(HybridListTemplateSpec::TAG),
39
+ JHybridObject(javaPart),
40
+ _javaPart(jni::make_global(javaPart)) {}
36
41
  ~JHybridListTemplateSpec() override {
37
42
  // Hermes GC can destroy JS objects on a non-JNI Thread.
38
43
  jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
39
44
  }
40
45
 
41
46
  public:
42
- size_t getExternalMemorySize() noexcept override;
43
- bool equals(const std::shared_ptr<HybridObject>& other) override;
44
- void dispose() noexcept override;
45
- std::string toString() override;
46
-
47
- public:
48
- inline const jni::global_ref<JHybridListTemplateSpec::javaobject>& getJavaPart() const noexcept {
47
+ inline const jni::global_ref<JHybridListTemplateSpec::JavaPart>& getJavaPart() const noexcept {
49
48
  return _javaPart;
50
49
  }
51
50
 
@@ -59,9 +58,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
59
58
  std::shared_ptr<Promise<void>> updateListTemplateSections(const std::string& templateId, const std::optional<std::vector<NitroSection>>& sections) override;
60
59
 
61
60
  private:
62
- friend HybridBase;
63
- using HybridBase::HybridBase;
64
- jni::global_ref<JHybridListTemplateSpec::javaobject> _javaPart;
61
+ jni::global_ref<JHybridListTemplateSpec::JavaPart> _javaPart;
65
62
  };
66
63
 
67
64
  } // namespace margelo::nitro::swe::iternio::reactnativeautoplay
@@ -206,37 +206,31 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct TripConfig;
206
206
 
207
207
  namespace margelo::nitro::swe::iternio::reactnativeautoplay {
208
208
 
209
- jni::local_ref<JHybridMapTemplateSpec::jhybriddata> JHybridMapTemplateSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
210
- return makeCxxInstance(jThis);
211
- }
212
-
213
- void JHybridMapTemplateSpec::registerNatives() {
214
- registerHybrid({
215
- makeNativeMethod("initHybrid", JHybridMapTemplateSpec::initHybrid),
216
- });
209
+ std::shared_ptr<JHybridMapTemplateSpec> JHybridMapTemplateSpec::JavaPart::getJHybridMapTemplateSpec() {
210
+ auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
211
+ auto castHybridObject = std::dynamic_pointer_cast<JHybridMapTemplateSpec>(hybridObject);
212
+ if (castHybridObject == nullptr) [[unlikely]] {
213
+ throw std::runtime_error("Failed to downcast JHybridObject to JHybridMapTemplateSpec!");
214
+ }
215
+ return castHybridObject;
217
216
  }
218
217
 
219
- size_t JHybridMapTemplateSpec::getExternalMemorySize() noexcept {
220
- static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
221
- return method(_javaPart);
218
+ jni::local_ref<JHybridMapTemplateSpec::CxxPart::jhybriddata> JHybridMapTemplateSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
219
+ return makeCxxInstance(jThis);
222
220
  }
223
221
 
224
- bool JHybridMapTemplateSpec::equals(const std::shared_ptr<HybridObject>& other) {
225
- if (auto otherCast = std::dynamic_pointer_cast<JHybridMapTemplateSpec>(other)) {
226
- return _javaPart == otherCast->_javaPart;
222
+ std::shared_ptr<JHybridObject> JHybridMapTemplateSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
223
+ auto castJavaPart = jni::dynamic_ref_cast<JHybridMapTemplateSpec::JavaPart>(javaPart);
224
+ if (castJavaPart == nullptr) [[unlikely]] {
225
+ throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridMapTemplateSpec::JavaPart!");
227
226
  }
228
- return false;
229
- }
230
-
231
- void JHybridMapTemplateSpec::dispose() noexcept {
232
- static const auto method = javaClassStatic()->getMethod<void()>("dispose");
233
- method(_javaPart);
227
+ return std::make_shared<JHybridMapTemplateSpec>(castJavaPart);
234
228
  }
235
229
 
236
- std::string JHybridMapTemplateSpec::toString() {
237
- static const auto method = javaClassStatic()->getMethod<jni::JString()>("toString");
238
- auto javaString = method(_javaPart);
239
- return javaString->toStdString();
230
+ void JHybridMapTemplateSpec::CxxPart::registerNatives() {
231
+ registerHybrid({
232
+ makeNativeMethod("initHybrid", JHybridMapTemplateSpec::CxxPart::initHybrid),
233
+ });
240
234
  }
241
235
 
242
236
  // Properties
@@ -244,23 +238,23 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
244
238
 
245
239
  // Methods
246
240
  void JHybridMapTemplateSpec::createMapTemplate(const MapTemplateConfig& config) {
247
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JMapTemplateConfig> /* config */)>("createMapTemplate");
241
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JMapTemplateConfig> /* config */)>("createMapTemplate");
248
242
  method(_javaPart, JMapTemplateConfig::fromCpp(config));
249
243
  }
250
244
  void JHybridMapTemplateSpec::showNavigationAlert(const std::string& templateId, const NitroNavigationAlert& alert) {
251
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<JNitroNavigationAlert> /* alert */)>("showNavigationAlert");
245
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<JNitroNavigationAlert> /* alert */)>("showNavigationAlert");
252
246
  method(_javaPart, jni::make_jstring(templateId), JNitroNavigationAlert::fromCpp(alert));
253
247
  }
254
248
  void JHybridMapTemplateSpec::updateNavigationAlert(const std::string& templateId, double navigationAlertId, const AutoText& title, const std::optional<AutoText>& subtitle) {
255
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* templateId */, double /* navigationAlertId */, jni::alias_ref<JAutoText> /* title */, jni::alias_ref<JAutoText> /* subtitle */)>("updateNavigationAlert");
249
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* templateId */, double /* navigationAlertId */, jni::alias_ref<JAutoText> /* title */, jni::alias_ref<JAutoText> /* subtitle */)>("updateNavigationAlert");
256
250
  method(_javaPart, jni::make_jstring(templateId), navigationAlertId, JAutoText::fromCpp(title), subtitle.has_value() ? JAutoText::fromCpp(subtitle.value()) : nullptr);
257
251
  }
258
252
  void JHybridMapTemplateSpec::dismissNavigationAlert(const std::string& templateId, double navigationAlertId) {
259
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* templateId */, double /* navigationAlertId */)>("dismissNavigationAlert");
253
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* templateId */, double /* navigationAlertId */)>("dismissNavigationAlert");
260
254
  method(_javaPart, jni::make_jstring(templateId), navigationAlertId);
261
255
  }
262
256
  TripSelectorCallback JHybridMapTemplateSpec::showTripSelector(const std::string& templateId, const std::vector<TripsConfig>& trips, const std::optional<std::string>& selectedTripId, const TripPreviewTextConfiguration& textConfig, const std::function<void(const std::string& /* tripId */, const std::string& /* routeId */)>& onTripSelected, const std::function<void(const std::string& /* tripId */, const std::string& /* routeId */)>& onTripStarted, const std::function<void()>& onBackPressed, const std::vector<NitroMapButton>& mapButtons) {
263
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JTripSelectorCallback>(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<jni::JArrayClass<JTripsConfig>> /* trips */, jni::alias_ref<jni::JString> /* selectedTripId */, jni::alias_ref<JTripPreviewTextConfiguration> /* textConfig */, jni::alias_ref<JFunc_void_std__string_std__string::javaobject> /* onTripSelected */, jni::alias_ref<JFunc_void_std__string_std__string::javaobject> /* onTripStarted */, jni::alias_ref<JFunc_void::javaobject> /* onBackPressed */, jni::alias_ref<jni::JArrayClass<JNitroMapButton>> /* mapButtons */)>("showTripSelector_cxx");
257
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JTripSelectorCallback>(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<jni::JArrayClass<JTripsConfig>> /* trips */, jni::alias_ref<jni::JString> /* selectedTripId */, jni::alias_ref<JTripPreviewTextConfiguration> /* textConfig */, jni::alias_ref<JFunc_void_std__string_std__string::javaobject> /* onTripSelected */, jni::alias_ref<JFunc_void_std__string_std__string::javaobject> /* onTripStarted */, jni::alias_ref<JFunc_void::javaobject> /* onBackPressed */, jni::alias_ref<jni::JArrayClass<JNitroMapButton>> /* mapButtons */)>("showTripSelector_cxx");
264
258
  auto __result = method(_javaPart, jni::make_jstring(templateId), [&]() {
265
259
  size_t __size = trips.size();
266
260
  jni::local_ref<jni::JArrayClass<JTripsConfig>> __array = jni::JArrayClass<JTripsConfig>::newArray(__size);
@@ -283,11 +277,11 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
283
277
  return __result->toCpp();
284
278
  }
285
279
  void JHybridMapTemplateSpec::hideTripSelector(const std::string& templateId) {
286
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* templateId */)>("hideTripSelector");
280
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* templateId */)>("hideTripSelector");
287
281
  method(_javaPart, jni::make_jstring(templateId));
288
282
  }
289
283
  std::shared_ptr<Promise<void>> JHybridMapTemplateSpec::setTemplateMapButtons(const std::string& templateId, const std::optional<std::vector<NitroMapButton>>& buttons) {
290
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<jni::JArrayClass<JNitroMapButton>> /* buttons */)>("setTemplateMapButtons");
284
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<jni::JArrayClass<JNitroMapButton>> /* buttons */)>("setTemplateMapButtons");
291
285
  auto __result = method(_javaPart, jni::make_jstring(templateId), buttons.has_value() ? [&]() {
292
286
  size_t __size = buttons.value().size();
293
287
  jni::local_ref<jni::JArrayClass<JNitroMapButton>> __array = jni::JArrayClass<JNitroMapButton>::newArray(__size);
@@ -311,11 +305,11 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
311
305
  }();
312
306
  }
313
307
  void JHybridMapTemplateSpec::updateVisibleTravelEstimate(const std::string& templateId, VisibleTravelEstimate visibleTravelEstimate) {
314
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<JVisibleTravelEstimate> /* visibleTravelEstimate */)>("updateVisibleTravelEstimate");
308
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<JVisibleTravelEstimate> /* visibleTravelEstimate */)>("updateVisibleTravelEstimate");
315
309
  method(_javaPart, jni::make_jstring(templateId), JVisibleTravelEstimate::fromCpp(visibleTravelEstimate));
316
310
  }
317
311
  void JHybridMapTemplateSpec::updateTravelEstimates(const std::string& templateId, const std::vector<TripPoint>& steps) {
318
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<jni::JArrayClass<JTripPoint>> /* steps */)>("updateTravelEstimates");
312
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<jni::JArrayClass<JTripPoint>> /* steps */)>("updateTravelEstimates");
319
313
  method(_javaPart, jni::make_jstring(templateId), [&]() {
320
314
  size_t __size = steps.size();
321
315
  jni::local_ref<jni::JArrayClass<JTripPoint>> __array = jni::JArrayClass<JTripPoint>::newArray(__size);
@@ -328,15 +322,15 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
328
322
  }());
329
323
  }
330
324
  void JHybridMapTemplateSpec::updateManeuvers(const std::string& templateId, const std::variant<std::vector<NitroRoutingManeuver>, NitroMessageManeuver, NitroLoadingManeuver>& maneuvers) {
331
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<JNitroManeuver> /* maneuvers */)>("updateManeuvers");
325
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<JNitroManeuver> /* maneuvers */)>("updateManeuvers");
332
326
  method(_javaPart, jni::make_jstring(templateId), JNitroManeuver::fromCpp(maneuvers));
333
327
  }
334
328
  void JHybridMapTemplateSpec::startNavigation(const std::string& templateId, const TripConfig& trip) {
335
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<JTripConfig> /* trip */)>("startNavigation");
329
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<JTripConfig> /* trip */)>("startNavigation");
336
330
  method(_javaPart, jni::make_jstring(templateId), JTripConfig::fromCpp(trip));
337
331
  }
338
332
  void JHybridMapTemplateSpec::stopNavigation(const std::string& templateId) {
339
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* templateId */)>("stopNavigation");
333
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* templateId */)>("stopNavigation");
340
334
  method(_javaPart, jni::make_jstring(templateId));
341
335
  }
342
336