@iternio/react-native-auto-play 0.3.6 → 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 (156) hide show
  1. package/nitro.json +77 -20
  2. package/nitrogen/generated/android/ReactNativeAutoPlayOnLoad.cpp +194 -124
  3. package/nitrogen/generated/android/ReactNativeAutoPlayOnLoad.hpp +13 -4
  4. package/nitrogen/generated/android/c++/JActiveCarUxRestrictions.hpp +1 -1
  5. package/nitrogen/generated/android/c++/JAlertActionStyle.hpp +1 -1
  6. package/nitrogen/generated/android/c++/JAlertDismissalReason.hpp +1 -1
  7. package/nitrogen/generated/android/c++/JAppFocusState.hpp +1 -1
  8. package/nitrogen/generated/android/c++/JAssetImage.hpp +1 -1
  9. package/nitrogen/generated/android/c++/JAutoText.hpp +1 -1
  10. package/nitrogen/generated/android/c++/JBooleanTelemetryItem.hpp +1 -1
  11. package/nitrogen/generated/android/c++/JCarUxRestrictions.hpp +1 -1
  12. package/nitrogen/generated/android/c++/JClusterEventName.hpp +1 -1
  13. package/nitrogen/generated/android/c++/JColorScheme.hpp +1 -1
  14. package/nitrogen/generated/android/c++/JDistance.hpp +1 -1
  15. package/nitrogen/generated/android/c++/JDistanceUnits.hpp +1 -1
  16. package/nitrogen/generated/android/c++/JDurationWithTimeZone.hpp +1 -1
  17. package/nitrogen/generated/android/c++/JEventName.hpp +1 -1
  18. package/nitrogen/generated/android/c++/JForkType.hpp +1 -1
  19. package/nitrogen/generated/android/c++/JFunc_void.hpp +2 -2
  20. package/nitrogen/generated/android/c++/JFunc_void_ActiveCarUxRestrictions.hpp +2 -2
  21. package/nitrogen/generated/android/c++/JFunc_void_AlertDismissalReason.hpp +2 -2
  22. package/nitrogen/generated/android/c++/JFunc_void_AppFocusState.hpp +2 -2
  23. package/nitrogen/generated/android/c++/JFunc_void_ColorScheme.hpp +2 -2
  24. package/nitrogen/generated/android/c++/JFunc_void_Point.hpp +2 -2
  25. package/nitrogen/generated/android/c++/JFunc_void_Point_double.hpp +2 -2
  26. package/nitrogen/generated/android/c++/JFunc_void_Point_std__optional_Point_.hpp +2 -2
  27. package/nitrogen/generated/android/c++/JFunc_void_SafeAreaInsets.hpp +2 -2
  28. package/nitrogen/generated/android/c++/JFunc_void_VisibilityState.hpp +2 -2
  29. package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +2 -2
  30. package/nitrogen/generated/android/c++/JFunc_void_std__optional_Location__std__optional_std__string_.hpp +2 -2
  31. package/nitrogen/generated/android/c++/JFunc_void_std__optional_Telemetry_.hpp +2 -2
  32. package/nitrogen/generated/android/c++/JFunc_void_std__optional_bool_.hpp +2 -2
  33. package/nitrogen/generated/android/c++/JFunc_void_std__optional_std__string__std__optional_GoogleSignInAccount_.hpp +2 -2
  34. package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +2 -2
  35. package/nitrogen/generated/android/c++/JFunc_void_std__string_ColorScheme.hpp +2 -2
  36. package/nitrogen/generated/android/c++/JFunc_void_std__string_ZoomEvent.hpp +2 -2
  37. package/nitrogen/generated/android/c++/JFunc_void_std__string_bool.hpp +2 -2
  38. package/nitrogen/generated/android/c++/JFunc_void_std__string_std__string.hpp +2 -2
  39. package/nitrogen/generated/android/c++/JGlyphImage.hpp +1 -1
  40. package/nitrogen/generated/android/c++/JGoogleSignIn.hpp +1 -1
  41. package/nitrogen/generated/android/c++/JGoogleSignInAccount.hpp +1 -1
  42. package/nitrogen/generated/android/c++/JGridTemplateConfig.hpp +1 -1
  43. package/nitrogen/generated/android/c++/JHybridAndroidAutoTelemetrySpec.cpp +20 -26
  44. package/nitrogen/generated/android/c++/JHybridAndroidAutoTelemetrySpec.hpp +19 -22
  45. package/nitrogen/generated/android/c++/JHybridAndroidAutomotiveSpec.cpp +23 -29
  46. package/nitrogen/generated/android/c++/JHybridAndroidAutomotiveSpec.hpp +19 -22
  47. package/nitrogen/generated/android/c++/JHybridAutoPlaySpec.cpp +29 -35
  48. package/nitrogen/generated/android/c++/JHybridAutoPlaySpec.hpp +19 -22
  49. package/nitrogen/generated/android/c++/JHybridClusterSpec.cpp +25 -31
  50. package/nitrogen/generated/android/c++/JHybridClusterSpec.hpp +19 -22
  51. package/nitrogen/generated/android/c++/JHybridGridTemplateSpec.cpp +20 -26
  52. package/nitrogen/generated/android/c++/JHybridGridTemplateSpec.hpp +19 -22
  53. package/nitrogen/generated/android/c++/JHybridInformationTemplateSpec.cpp +20 -26
  54. package/nitrogen/generated/android/c++/JHybridInformationTemplateSpec.hpp +19 -22
  55. package/nitrogen/generated/android/c++/JHybridListTemplateSpec.cpp +20 -26
  56. package/nitrogen/generated/android/c++/JHybridListTemplateSpec.hpp +19 -22
  57. package/nitrogen/generated/android/c++/JHybridMapTemplateSpec.cpp +30 -36
  58. package/nitrogen/generated/android/c++/JHybridMapTemplateSpec.hpp +19 -22
  59. package/nitrogen/generated/android/c++/JHybridMessageTemplateSpec.cpp +19 -25
  60. package/nitrogen/generated/android/c++/JHybridMessageTemplateSpec.hpp +19 -22
  61. package/nitrogen/generated/android/c++/JHybridSearchTemplateSpec.cpp +20 -26
  62. package/nitrogen/generated/android/c++/JHybridSearchTemplateSpec.hpp +19 -22
  63. package/nitrogen/generated/android/c++/JHybridSignInTemplateSpec.cpp +20 -26
  64. package/nitrogen/generated/android/c++/JHybridSignInTemplateSpec.hpp +19 -22
  65. package/nitrogen/generated/android/c++/JImageLane.hpp +1 -1
  66. package/nitrogen/generated/android/c++/JInformationTemplateConfig.hpp +1 -1
  67. package/nitrogen/generated/android/c++/JInputSignIn.hpp +1 -1
  68. package/nitrogen/generated/android/c++/JKeepType.hpp +1 -1
  69. package/nitrogen/generated/android/c++/JKeyboardType.hpp +1 -1
  70. package/nitrogen/generated/android/c++/JLaneGuidance.hpp +1 -1
  71. package/nitrogen/generated/android/c++/JListTemplateConfig.hpp +1 -1
  72. package/nitrogen/generated/android/c++/JLocation.hpp +1 -1
  73. package/nitrogen/generated/android/c++/JManeuverType.hpp +1 -1
  74. package/nitrogen/generated/android/c++/JMapTemplateConfig.hpp +1 -1
  75. package/nitrogen/generated/android/c++/JMessageTemplateConfig.hpp +1 -1
  76. package/nitrogen/generated/android/c++/JNavigationAlertAction.hpp +1 -1
  77. package/nitrogen/generated/android/c++/JNitroAction.hpp +1 -1
  78. package/nitrogen/generated/android/c++/JNitroActionType.hpp +1 -1
  79. package/nitrogen/generated/android/c++/JNitroAlignment.hpp +1 -1
  80. package/nitrogen/generated/android/c++/JNitroAttributedString.hpp +1 -1
  81. package/nitrogen/generated/android/c++/JNitroAttributedStringImage.hpp +1 -1
  82. package/nitrogen/generated/android/c++/JNitroBaseMapTemplateConfig.hpp +1 -1
  83. package/nitrogen/generated/android/c++/JNitroButtonStyle.hpp +1 -1
  84. package/nitrogen/generated/android/c++/JNitroColor.hpp +1 -1
  85. package/nitrogen/generated/android/c++/JNitroGridButton.hpp +1 -1
  86. package/nitrogen/generated/android/c++/JNitroImage.hpp +3 -3
  87. package/nitrogen/generated/android/c++/JNitroLoadingManeuver.hpp +1 -1
  88. package/nitrogen/generated/android/c++/JNitroManeuver.hpp +4 -4
  89. package/nitrogen/generated/android/c++/JNitroMapButton.hpp +1 -1
  90. package/nitrogen/generated/android/c++/JNitroMapButtonType.hpp +1 -1
  91. package/nitrogen/generated/android/c++/JNitroMessageManeuver.hpp +1 -1
  92. package/nitrogen/generated/android/c++/JNitroNavigationAlert.hpp +1 -1
  93. package/nitrogen/generated/android/c++/JNitroRoutingManeuver.hpp +1 -1
  94. package/nitrogen/generated/android/c++/JNitroRow.hpp +1 -1
  95. package/nitrogen/generated/android/c++/JNitroSection.hpp +1 -1
  96. package/nitrogen/generated/android/c++/JNitroSectionType.hpp +1 -1
  97. package/nitrogen/generated/android/c++/JNumericTelemetryItem.hpp +1 -1
  98. package/nitrogen/generated/android/c++/JOffRampType.hpp +1 -1
  99. package/nitrogen/generated/android/c++/JOnRampType.hpp +1 -1
  100. package/nitrogen/generated/android/c++/JPermissionRequestResult.hpp +1 -1
  101. package/nitrogen/generated/android/c++/JPinSignIn.hpp +1 -1
  102. package/nitrogen/generated/android/c++/JPoint.hpp +1 -1
  103. package/nitrogen/generated/android/c++/JPreferredImageLane.hpp +1 -1
  104. package/nitrogen/generated/android/c++/JQrSignIn.hpp +1 -1
  105. package/nitrogen/generated/android/c++/JRouteChoice.hpp +1 -1
  106. package/nitrogen/generated/android/c++/JSafeAreaInsets.hpp +1 -1
  107. package/nitrogen/generated/android/c++/JSearchTemplateConfig.hpp +1 -1
  108. package/nitrogen/generated/android/c++/JSignInMethods.hpp +1 -1
  109. package/nitrogen/generated/android/c++/JSignInTemplateConfig.hpp +1 -1
  110. package/nitrogen/generated/android/c++/JStringTelemetryItem.hpp +1 -1
  111. package/nitrogen/generated/android/c++/JTelemetry.hpp +1 -1
  112. package/nitrogen/generated/android/c++/JTextInputType.hpp +1 -1
  113. package/nitrogen/generated/android/c++/JTrafficSide.hpp +1 -1
  114. package/nitrogen/generated/android/c++/JTravelEstimates.hpp +1 -1
  115. package/nitrogen/generated/android/c++/JTripConfig.hpp +1 -1
  116. package/nitrogen/generated/android/c++/JTripPoint.hpp +1 -1
  117. package/nitrogen/generated/android/c++/JTripPreviewTextConfiguration.hpp +1 -1
  118. package/nitrogen/generated/android/c++/JTripSelectorCallback.hpp +1 -1
  119. package/nitrogen/generated/android/c++/JTripsConfig.hpp +1 -1
  120. package/nitrogen/generated/android/c++/JTurnType.hpp +1 -1
  121. package/nitrogen/generated/android/c++/JVariant_GlyphImage_AssetImage.hpp +3 -3
  122. package/nitrogen/generated/android/c++/JVariant_PreferredImageLane_ImageLane.hpp +3 -3
  123. package/nitrogen/generated/android/c++/JVariant_QrSignIn_PinSignIn_InputSignIn_GoogleSignIn.hpp +5 -5
  124. package/nitrogen/generated/android/c++/JVehicleTelemetryItem.hpp +1 -1
  125. package/nitrogen/generated/android/c++/JVisibilityState.hpp +1 -1
  126. package/nitrogen/generated/android/c++/JVisibleTravelEstimate.hpp +1 -1
  127. package/nitrogen/generated/android/c++/JZoomEvent.hpp +1 -1
  128. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAndroidAutoTelemetrySpec.kt +15 -18
  129. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAndroidAutomotiveSpec.kt +15 -18
  130. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAutoPlaySpec.kt +15 -18
  131. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridClusterSpec.kt +15 -18
  132. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridGridTemplateSpec.kt +15 -18
  133. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridInformationTemplateSpec.kt +15 -18
  134. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridListTemplateSpec.kt +15 -18
  135. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridMapTemplateSpec.kt +15 -18
  136. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridMessageTemplateSpec.kt +14 -17
  137. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridSearchTemplateSpec.kt +15 -18
  138. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridSignInTemplateSpec.kt +15 -18
  139. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroImage.kt +0 -6
  140. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroManeuver.kt +0 -7
  141. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Variant_GlyphImage_AssetImage.kt +0 -6
  142. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Variant_PreferredImageLane_ImageLane.kt +0 -6
  143. package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Variant_QrSignIn_PinSignIn_InputSignIn_GoogleSignIn.kt +0 -8
  144. package/nitrogen/generated/ios/ReactNativeAutoPlay-Swift-Cxx-Bridge.hpp +36 -36
  145. package/nitrogen/generated/ios/swift/AutoText.swift +8 -1
  146. package/nitrogen/generated/ios/swift/GlyphImage.swift +8 -1
  147. package/nitrogen/generated/ios/swift/GridTemplateConfig.swift +8 -1
  148. package/nitrogen/generated/ios/swift/InformationTemplateConfig.swift +8 -1
  149. package/nitrogen/generated/ios/swift/ListTemplateConfig.swift +8 -1
  150. package/nitrogen/generated/ios/swift/MapTemplateConfig.swift +16 -2
  151. package/nitrogen/generated/ios/swift/MessageTemplateConfig.swift +8 -1
  152. package/nitrogen/generated/ios/swift/NitroAction.swift +8 -1
  153. package/nitrogen/generated/ios/swift/NitroBaseMapTemplateConfig.swift +8 -1
  154. package/nitrogen/generated/ios/swift/NitroRoutingManeuver.swift +16 -2
  155. package/nitrogen/generated/ios/swift/SearchTemplateConfig.swift +8 -1
  156. package/package.json +2 -2
@@ -30,37 +30,31 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay { struct AppFocusSta
30
30
 
31
31
  namespace margelo::nitro::swe::iternio::reactnativeautoplay {
32
32
 
33
- jni::local_ref<JHybridAndroidAutomotiveSpec::jhybriddata> JHybridAndroidAutomotiveSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
34
- return makeCxxInstance(jThis);
35
- }
36
-
37
- void JHybridAndroidAutomotiveSpec::registerNatives() {
38
- registerHybrid({
39
- makeNativeMethod("initHybrid", JHybridAndroidAutomotiveSpec::initHybrid),
40
- });
33
+ std::shared_ptr<JHybridAndroidAutomotiveSpec> JHybridAndroidAutomotiveSpec::JavaPart::getJHybridAndroidAutomotiveSpec() {
34
+ auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
35
+ auto castHybridObject = std::dynamic_pointer_cast<JHybridAndroidAutomotiveSpec>(hybridObject);
36
+ if (castHybridObject == nullptr) [[unlikely]] {
37
+ throw std::runtime_error("Failed to downcast JHybridObject to JHybridAndroidAutomotiveSpec!");
38
+ }
39
+ return castHybridObject;
41
40
  }
42
41
 
43
- size_t JHybridAndroidAutomotiveSpec::getExternalMemorySize() noexcept {
44
- static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
45
- return method(_javaPart);
42
+ jni::local_ref<JHybridAndroidAutomotiveSpec::CxxPart::jhybriddata> JHybridAndroidAutomotiveSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
43
+ return makeCxxInstance(jThis);
46
44
  }
47
45
 
48
- bool JHybridAndroidAutomotiveSpec::equals(const std::shared_ptr<HybridObject>& other) {
49
- if (auto otherCast = std::dynamic_pointer_cast<JHybridAndroidAutomotiveSpec>(other)) {
50
- return _javaPart == otherCast->_javaPart;
46
+ std::shared_ptr<JHybridObject> JHybridAndroidAutomotiveSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
47
+ auto castJavaPart = jni::dynamic_ref_cast<JHybridAndroidAutomotiveSpec::JavaPart>(javaPart);
48
+ if (castJavaPart == nullptr) [[unlikely]] {
49
+ throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridAndroidAutomotiveSpec::JavaPart!");
51
50
  }
52
- return false;
53
- }
54
-
55
- void JHybridAndroidAutomotiveSpec::dispose() noexcept {
56
- static const auto method = javaClassStatic()->getMethod<void()>("dispose");
57
- method(_javaPart);
51
+ return std::make_shared<JHybridAndroidAutomotiveSpec>(castJavaPart);
58
52
  }
59
53
 
60
- std::string JHybridAndroidAutomotiveSpec::toString() {
61
- static const auto method = javaClassStatic()->getMethod<jni::JString()>("toString");
62
- auto javaString = method(_javaPart);
63
- return javaString->toStdString();
54
+ void JHybridAndroidAutomotiveSpec::CxxPart::registerNatives() {
55
+ registerHybrid({
56
+ makeNativeMethod("initHybrid", JHybridAndroidAutomotiveSpec::CxxPart::initHybrid),
57
+ });
64
58
  }
65
59
 
66
60
  // Properties
@@ -68,7 +62,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
68
62
 
69
63
  // Methods
70
64
  std::function<void()> JHybridAndroidAutomotiveSpec::registerCarUxRestrictionsListener(const std::function<void(const ActiveCarUxRestrictions& /* restrictions */)>& callback) {
71
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>(jni::alias_ref<JFunc_void_ActiveCarUxRestrictions::javaobject> /* callback */)>("registerCarUxRestrictionsListener_cxx");
65
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>(jni::alias_ref<JFunc_void_ActiveCarUxRestrictions::javaobject> /* callback */)>("registerCarUxRestrictionsListener_cxx");
72
66
  auto __result = method(_javaPart, JFunc_void_ActiveCarUxRestrictions_cxx::fromCpp(callback));
73
67
  return [&]() -> std::function<void()> {
74
68
  if (__result->isInstanceOf(JFunc_void_cxx::javaClassStatic())) [[likely]] {
@@ -81,12 +75,12 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
81
75
  }();
82
76
  }
83
77
  ActiveCarUxRestrictions JHybridAndroidAutomotiveSpec::getCarUxRestrictions() {
84
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JActiveCarUxRestrictions>()>("getCarUxRestrictions");
78
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JActiveCarUxRestrictions>()>("getCarUxRestrictions");
85
79
  auto __result = method(_javaPart);
86
80
  return __result->toCpp();
87
81
  }
88
82
  std::function<void()> JHybridAndroidAutomotiveSpec::registerAppFocusListener(const std::function<void(const AppFocusState& /* state */)>& callback) {
89
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>(jni::alias_ref<JFunc_void_AppFocusState::javaobject> /* callback */)>("registerAppFocusListener_cxx");
83
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>(jni::alias_ref<JFunc_void_AppFocusState::javaobject> /* callback */)>("registerAppFocusListener_cxx");
90
84
  auto __result = method(_javaPart, JFunc_void_AppFocusState_cxx::fromCpp(callback));
91
85
  return [&]() -> std::function<void()> {
92
86
  if (__result->isInstanceOf(JFunc_void_cxx::javaClassStatic())) [[likely]] {
@@ -99,12 +93,12 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
99
93
  }();
100
94
  }
101
95
  AppFocusState JHybridAndroidAutomotiveSpec::getAppFocusState() {
102
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JAppFocusState>()>("getAppFocusState");
96
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JAppFocusState>()>("getAppFocusState");
103
97
  auto __result = method(_javaPart);
104
98
  return __result->toCpp();
105
99
  }
106
100
  std::function<void()> JHybridAndroidAutomotiveSpec::requestAppFocus() {
107
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>()>("requestAppFocus_cxx");
101
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>()>("requestAppFocus_cxx");
108
102
  auto __result = method(_javaPart);
109
103
  return [&]() -> std::function<void()> {
110
104
  if (__result->isInstanceOf(JFunc_void_cxx::javaClassStatic())) [[likely]] {
@@ -18,34 +18,33 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
18
18
 
19
19
  using namespace facebook;
20
20
 
21
- class JHybridAndroidAutomotiveSpec: public jni::HybridClass<JHybridAndroidAutomotiveSpec, JHybridObject>,
22
- public virtual HybridAndroidAutomotiveSpec {
21
+ class JHybridAndroidAutomotiveSpec: public virtual HybridAndroidAutomotiveSpec, public virtual JHybridObject {
23
22
  public:
24
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAndroidAutomotiveSpec;";
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 JHybridAndroidAutomotiveSpec(jni::alias_ref<jhybridobject> jThis) :
31
- HybridObject(HybridAndroidAutomotiveSpec::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/HybridAndroidAutomotiveSpec;";
25
+ std::shared_ptr<JHybridAndroidAutomotiveSpec> getJHybridAndroidAutomotiveSpec();
26
+ };
27
+ struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
28
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAndroidAutomotiveSpec$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 JHybridAndroidAutomotiveSpec(const jni::local_ref<JHybridAndroidAutomotiveSpec::JavaPart>& javaPart):
38
+ HybridObject(HybridAndroidAutomotiveSpec::TAG),
39
+ JHybridObject(javaPart),
40
+ _javaPart(jni::make_global(javaPart)) {}
36
41
  ~JHybridAndroidAutomotiveSpec() 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<JHybridAndroidAutomotiveSpec::javaobject>& getJavaPart() const noexcept {
47
+ inline const jni::global_ref<JHybridAndroidAutomotiveSpec::JavaPart>& getJavaPart() const noexcept {
49
48
  return _javaPart;
50
49
  }
51
50
 
@@ -62,9 +61,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
62
61
  std::function<void()> requestAppFocus() override;
63
62
 
64
63
  private:
65
- friend HybridBase;
66
- using HybridBase::HybridBase;
67
- jni::global_ref<JHybridAndroidAutomotiveSpec::javaobject> _javaPart;
64
+ jni::global_ref<JHybridAndroidAutomotiveSpec::JavaPart> _javaPart;
68
65
  };
69
66
 
70
67
  } // namespace margelo::nitro::swe::iternio::reactnativeautoplay
@@ -69,37 +69,31 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay { enum class NitroBu
69
69
 
70
70
  namespace margelo::nitro::swe::iternio::reactnativeautoplay {
71
71
 
72
- jni::local_ref<JHybridAutoPlaySpec::jhybriddata> JHybridAutoPlaySpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
73
- return makeCxxInstance(jThis);
74
- }
75
-
76
- void JHybridAutoPlaySpec::registerNatives() {
77
- registerHybrid({
78
- makeNativeMethod("initHybrid", JHybridAutoPlaySpec::initHybrid),
79
- });
72
+ std::shared_ptr<JHybridAutoPlaySpec> JHybridAutoPlaySpec::JavaPart::getJHybridAutoPlaySpec() {
73
+ auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
74
+ auto castHybridObject = std::dynamic_pointer_cast<JHybridAutoPlaySpec>(hybridObject);
75
+ if (castHybridObject == nullptr) [[unlikely]] {
76
+ throw std::runtime_error("Failed to downcast JHybridObject to JHybridAutoPlaySpec!");
77
+ }
78
+ return castHybridObject;
80
79
  }
81
80
 
82
- size_t JHybridAutoPlaySpec::getExternalMemorySize() noexcept {
83
- static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
84
- return method(_javaPart);
81
+ jni::local_ref<JHybridAutoPlaySpec::CxxPart::jhybriddata> JHybridAutoPlaySpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
82
+ return makeCxxInstance(jThis);
85
83
  }
86
84
 
87
- bool JHybridAutoPlaySpec::equals(const std::shared_ptr<HybridObject>& other) {
88
- if (auto otherCast = std::dynamic_pointer_cast<JHybridAutoPlaySpec>(other)) {
89
- return _javaPart == otherCast->_javaPart;
85
+ std::shared_ptr<JHybridObject> JHybridAutoPlaySpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
86
+ auto castJavaPart = jni::dynamic_ref_cast<JHybridAutoPlaySpec::JavaPart>(javaPart);
87
+ if (castJavaPart == nullptr) [[unlikely]] {
88
+ throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridAutoPlaySpec::JavaPart!");
90
89
  }
91
- return false;
92
- }
93
-
94
- void JHybridAutoPlaySpec::dispose() noexcept {
95
- static const auto method = javaClassStatic()->getMethod<void()>("dispose");
96
- method(_javaPart);
90
+ return std::make_shared<JHybridAutoPlaySpec>(castJavaPart);
97
91
  }
98
92
 
99
- std::string JHybridAutoPlaySpec::toString() {
100
- static const auto method = javaClassStatic()->getMethod<jni::JString()>("toString");
101
- auto javaString = method(_javaPart);
102
- return javaString->toStdString();
93
+ void JHybridAutoPlaySpec::CxxPart::registerNatives() {
94
+ registerHybrid({
95
+ makeNativeMethod("initHybrid", JHybridAutoPlaySpec::CxxPart::initHybrid),
96
+ });
103
97
  }
104
98
 
105
99
  // Properties
@@ -107,7 +101,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
107
101
 
108
102
  // Methods
109
103
  std::function<void()> JHybridAutoPlaySpec::addListener(EventName eventType, const std::function<void()>& callback) {
110
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>(jni::alias_ref<JEventName> /* eventType */, jni::alias_ref<JFunc_void::javaobject> /* callback */)>("addListener_cxx");
104
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>(jni::alias_ref<JEventName> /* eventType */, jni::alias_ref<JFunc_void::javaobject> /* callback */)>("addListener_cxx");
111
105
  auto __result = method(_javaPart, JEventName::fromCpp(eventType), JFunc_void_cxx::fromCpp(callback));
112
106
  return [&]() -> std::function<void()> {
113
107
  if (__result->isInstanceOf(JFunc_void_cxx::javaClassStatic())) [[likely]] {
@@ -120,7 +114,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
120
114
  }();
121
115
  }
122
116
  std::function<void()> JHybridAutoPlaySpec::addListenerRenderState(const std::string& moduleName, const std::function<void(VisibilityState /* payload */)>& callback) {
123
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>(jni::alias_ref<jni::JString> /* moduleName */, jni::alias_ref<JFunc_void_VisibilityState::javaobject> /* callback */)>("addListenerRenderState_cxx");
117
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>(jni::alias_ref<jni::JString> /* moduleName */, jni::alias_ref<JFunc_void_VisibilityState::javaobject> /* callback */)>("addListenerRenderState_cxx");
124
118
  auto __result = method(_javaPart, jni::make_jstring(moduleName), JFunc_void_VisibilityState_cxx::fromCpp(callback));
125
119
  return [&]() -> std::function<void()> {
126
120
  if (__result->isInstanceOf(JFunc_void_cxx::javaClassStatic())) [[likely]] {
@@ -133,7 +127,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
133
127
  }();
134
128
  }
135
129
  std::function<void()> JHybridAutoPlaySpec::addListenerVoiceInput(const std::function<void(const std::optional<Location>& /* coordinates */, const std::optional<std::string>& /* query */)>& callback) {
136
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>(jni::alias_ref<JFunc_void_std__optional_Location__std__optional_std__string_::javaobject> /* callback */)>("addListenerVoiceInput_cxx");
130
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>(jni::alias_ref<JFunc_void_std__optional_Location__std__optional_std__string_::javaobject> /* callback */)>("addListenerVoiceInput_cxx");
137
131
  auto __result = method(_javaPart, JFunc_void_std__optional_Location__std__optional_std__string__cxx::fromCpp(callback));
138
132
  return [&]() -> std::function<void()> {
139
133
  if (__result->isInstanceOf(JFunc_void_cxx::javaClassStatic())) [[likely]] {
@@ -146,7 +140,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
146
140
  }();
147
141
  }
148
142
  std::shared_ptr<Promise<void>> JHybridAutoPlaySpec::setRootTemplate(const std::string& templateId) {
149
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* templateId */)>("setRootTemplate");
143
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* templateId */)>("setRootTemplate");
150
144
  auto __result = method(_javaPart, jni::make_jstring(templateId));
151
145
  return [&]() {
152
146
  auto __promise = Promise<void>::create();
@@ -161,7 +155,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
161
155
  }();
162
156
  }
163
157
  std::shared_ptr<Promise<void>> JHybridAutoPlaySpec::pushTemplate(const std::string& templateId) {
164
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* templateId */)>("pushTemplate");
158
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* templateId */)>("pushTemplate");
165
159
  auto __result = method(_javaPart, jni::make_jstring(templateId));
166
160
  return [&]() {
167
161
  auto __promise = Promise<void>::create();
@@ -176,7 +170,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
176
170
  }();
177
171
  }
178
172
  std::shared_ptr<Promise<void>> JHybridAutoPlaySpec::popTemplate(std::optional<bool> animate) {
179
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JBoolean> /* animate */)>("popTemplate");
173
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JBoolean> /* animate */)>("popTemplate");
180
174
  auto __result = method(_javaPart, animate.has_value() ? jni::JBoolean::valueOf(animate.value()) : nullptr);
181
175
  return [&]() {
182
176
  auto __promise = Promise<void>::create();
@@ -191,7 +185,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
191
185
  }();
192
186
  }
193
187
  std::shared_ptr<Promise<void>> JHybridAutoPlaySpec::popToRootTemplate(std::optional<bool> animate) {
194
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JBoolean> /* animate */)>("popToRootTemplate");
188
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JBoolean> /* animate */)>("popToRootTemplate");
195
189
  auto __result = method(_javaPart, animate.has_value() ? jni::JBoolean::valueOf(animate.value()) : nullptr);
196
190
  return [&]() {
197
191
  auto __promise = Promise<void>::create();
@@ -206,7 +200,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
206
200
  }();
207
201
  }
208
202
  std::shared_ptr<Promise<void>> JHybridAutoPlaySpec::popToTemplate(const std::string& templateId, std::optional<bool> animate) {
209
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<jni::JBoolean> /* animate */)>("popToTemplate");
203
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<jni::JBoolean> /* animate */)>("popToTemplate");
210
204
  auto __result = method(_javaPart, jni::make_jstring(templateId), animate.has_value() ? jni::JBoolean::valueOf(animate.value()) : nullptr);
211
205
  return [&]() {
212
206
  auto __promise = Promise<void>::create();
@@ -221,7 +215,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
221
215
  }();
222
216
  }
223
217
  std::function<void()> JHybridAutoPlaySpec::addSafeAreaInsetsListener(const std::string& moduleName, const std::function<void(const SafeAreaInsets& /* insets */)>& callback) {
224
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>(jni::alias_ref<jni::JString> /* moduleName */, jni::alias_ref<JFunc_void_SafeAreaInsets::javaobject> /* callback */)>("addSafeAreaInsetsListener_cxx");
218
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>(jni::alias_ref<jni::JString> /* moduleName */, jni::alias_ref<JFunc_void_SafeAreaInsets::javaobject> /* callback */)>("addSafeAreaInsetsListener_cxx");
225
219
  auto __result = method(_javaPart, jni::make_jstring(moduleName), JFunc_void_SafeAreaInsets_cxx::fromCpp(callback));
226
220
  return [&]() -> std::function<void()> {
227
221
  if (__result->isInstanceOf(JFunc_void_cxx::javaClassStatic())) [[likely]] {
@@ -234,7 +228,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
234
228
  }();
235
229
  }
236
230
  std::shared_ptr<Promise<void>> JHybridAutoPlaySpec::setTemplateHeaderActions(const std::string& templateId, const std::optional<std::vector<NitroAction>>& headerActions) {
237
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<jni::JArrayClass<JNitroAction>> /* headerActions */)>("setTemplateHeaderActions");
231
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* templateId */, jni::alias_ref<jni::JArrayClass<JNitroAction>> /* headerActions */)>("setTemplateHeaderActions");
238
232
  auto __result = method(_javaPart, jni::make_jstring(templateId), headerActions.has_value() ? [&]() {
239
233
  size_t __size = headerActions.value().size();
240
234
  jni::local_ref<jni::JArrayClass<JNitroAction>> __array = jni::JArrayClass<JNitroAction>::newArray(__size);
@@ -258,7 +252,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
258
252
  }();
259
253
  }
260
254
  bool JHybridAutoPlaySpec::isConnected() {
261
- static const auto method = javaClassStatic()->getMethod<jboolean()>("isConnected");
255
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean()>("isConnected");
262
256
  auto __result = method(_javaPart);
263
257
  return static_cast<bool>(__result);
264
258
  }
@@ -18,34 +18,33 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
18
18
 
19
19
  using namespace facebook;
20
20
 
21
- class JHybridAutoPlaySpec: public jni::HybridClass<JHybridAutoPlaySpec, JHybridObject>,
22
- public virtual HybridAutoPlaySpec {
21
+ class JHybridAutoPlaySpec: public virtual HybridAutoPlaySpec, public virtual JHybridObject {
23
22
  public:
24
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAutoPlaySpec;";
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 JHybridAutoPlaySpec(jni::alias_ref<jhybridobject> jThis) :
31
- HybridObject(HybridAutoPlaySpec::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/HybridAutoPlaySpec;";
25
+ std::shared_ptr<JHybridAutoPlaySpec> getJHybridAutoPlaySpec();
26
+ };
27
+ struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
28
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAutoPlaySpec$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 JHybridAutoPlaySpec(const jni::local_ref<JHybridAutoPlaySpec::JavaPart>& javaPart):
38
+ HybridObject(HybridAutoPlaySpec::TAG),
39
+ JHybridObject(javaPart),
40
+ _javaPart(jni::make_global(javaPart)) {}
36
41
  ~JHybridAutoPlaySpec() 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<JHybridAutoPlaySpec::javaobject>& getJavaPart() const noexcept {
47
+ inline const jni::global_ref<JHybridAutoPlaySpec::JavaPart>& getJavaPart() const noexcept {
49
48
  return _javaPart;
50
49
  }
51
50
 
@@ -68,9 +67,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
68
67
  bool isConnected() override;
69
68
 
70
69
  private:
71
- friend HybridBase;
72
- using HybridBase::HybridBase;
73
- jni::global_ref<JHybridAutoPlaySpec::javaobject> _javaPart;
70
+ jni::global_ref<JHybridAutoPlaySpec::JavaPart> _javaPart;
74
71
  };
75
72
 
76
73
  } // namespace margelo::nitro::swe::iternio::reactnativeautoplay
@@ -58,37 +58,31 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay { enum class ZoomEve
58
58
 
59
59
  namespace margelo::nitro::swe::iternio::reactnativeautoplay {
60
60
 
61
- jni::local_ref<JHybridClusterSpec::jhybriddata> JHybridClusterSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
62
- return makeCxxInstance(jThis);
63
- }
64
-
65
- void JHybridClusterSpec::registerNatives() {
66
- registerHybrid({
67
- makeNativeMethod("initHybrid", JHybridClusterSpec::initHybrid),
68
- });
61
+ std::shared_ptr<JHybridClusterSpec> JHybridClusterSpec::JavaPart::getJHybridClusterSpec() {
62
+ auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
63
+ auto castHybridObject = std::dynamic_pointer_cast<JHybridClusterSpec>(hybridObject);
64
+ if (castHybridObject == nullptr) [[unlikely]] {
65
+ throw std::runtime_error("Failed to downcast JHybridObject to JHybridClusterSpec!");
66
+ }
67
+ return castHybridObject;
69
68
  }
70
69
 
71
- size_t JHybridClusterSpec::getExternalMemorySize() noexcept {
72
- static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
73
- return method(_javaPart);
70
+ jni::local_ref<JHybridClusterSpec::CxxPart::jhybriddata> JHybridClusterSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
71
+ return makeCxxInstance(jThis);
74
72
  }
75
73
 
76
- bool JHybridClusterSpec::equals(const std::shared_ptr<HybridObject>& other) {
77
- if (auto otherCast = std::dynamic_pointer_cast<JHybridClusterSpec>(other)) {
78
- return _javaPart == otherCast->_javaPart;
74
+ std::shared_ptr<JHybridObject> JHybridClusterSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
75
+ auto castJavaPart = jni::dynamic_ref_cast<JHybridClusterSpec::JavaPart>(javaPart);
76
+ if (castJavaPart == nullptr) [[unlikely]] {
77
+ throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridClusterSpec::JavaPart!");
79
78
  }
80
- return false;
81
- }
82
-
83
- void JHybridClusterSpec::dispose() noexcept {
84
- static const auto method = javaClassStatic()->getMethod<void()>("dispose");
85
- method(_javaPart);
79
+ return std::make_shared<JHybridClusterSpec>(castJavaPart);
86
80
  }
87
81
 
88
- std::string JHybridClusterSpec::toString() {
89
- static const auto method = javaClassStatic()->getMethod<jni::JString()>("toString");
90
- auto javaString = method(_javaPart);
91
- return javaString->toStdString();
82
+ void JHybridClusterSpec::CxxPart::registerNatives() {
83
+ registerHybrid({
84
+ makeNativeMethod("initHybrid", JHybridClusterSpec::CxxPart::initHybrid),
85
+ });
92
86
  }
93
87
 
94
88
  // Properties
@@ -96,7 +90,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
96
90
 
97
91
  // Methods
98
92
  std::function<void()> JHybridClusterSpec::addListener(ClusterEventName eventType, const std::function<void(const std::string& /* clusterId */)>& callback) {
99
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>(jni::alias_ref<JClusterEventName> /* eventType */, jni::alias_ref<JFunc_void_std__string::javaobject> /* callback */)>("addListener_cxx");
93
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>(jni::alias_ref<JClusterEventName> /* eventType */, jni::alias_ref<JFunc_void_std__string::javaobject> /* callback */)>("addListener_cxx");
100
94
  auto __result = method(_javaPart, JClusterEventName::fromCpp(eventType), JFunc_void_std__string_cxx::fromCpp(callback));
101
95
  return [&]() -> std::function<void()> {
102
96
  if (__result->isInstanceOf(JFunc_void_cxx::javaClassStatic())) [[likely]] {
@@ -109,7 +103,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
109
103
  }();
110
104
  }
111
105
  std::shared_ptr<Promise<void>> JHybridClusterSpec::initRootView(const std::string& clusterId) {
112
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* clusterId */)>("initRootView");
106
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* clusterId */)>("initRootView");
113
107
  auto __result = method(_javaPart, jni::make_jstring(clusterId));
114
108
  return [&]() {
115
109
  auto __promise = Promise<void>::create();
@@ -124,7 +118,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
124
118
  }();
125
119
  }
126
120
  void JHybridClusterSpec::setAttributedInactiveDescriptionVariants(const std::string& clusterId, const std::vector<NitroAttributedString>& attributedInactiveDescriptionVariants) {
127
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* clusterId */, jni::alias_ref<jni::JArrayClass<JNitroAttributedString>> /* attributedInactiveDescriptionVariants */)>("setAttributedInactiveDescriptionVariants");
121
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* clusterId */, jni::alias_ref<jni::JArrayClass<JNitroAttributedString>> /* attributedInactiveDescriptionVariants */)>("setAttributedInactiveDescriptionVariants");
128
122
  method(_javaPart, jni::make_jstring(clusterId), [&]() {
129
123
  size_t __size = attributedInactiveDescriptionVariants.size();
130
124
  jni::local_ref<jni::JArrayClass<JNitroAttributedString>> __array = jni::JArrayClass<JNitroAttributedString>::newArray(__size);
@@ -137,7 +131,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
137
131
  }());
138
132
  }
139
133
  std::function<void()> JHybridClusterSpec::addListenerColorScheme(const std::function<void(const std::string& /* clusterId */, ColorScheme /* payload */)>& callback) {
140
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>(jni::alias_ref<JFunc_void_std__string_ColorScheme::javaobject> /* callback */)>("addListenerColorScheme_cxx");
134
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>(jni::alias_ref<JFunc_void_std__string_ColorScheme::javaobject> /* callback */)>("addListenerColorScheme_cxx");
141
135
  auto __result = method(_javaPart, JFunc_void_std__string_ColorScheme_cxx::fromCpp(callback));
142
136
  return [&]() -> std::function<void()> {
143
137
  if (__result->isInstanceOf(JFunc_void_cxx::javaClassStatic())) [[likely]] {
@@ -150,7 +144,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
150
144
  }();
151
145
  }
152
146
  std::function<void()> JHybridClusterSpec::addListenerZoom(const std::function<void(const std::string& /* clusterId */, ZoomEvent /* payload */)>& callback) {
153
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>(jni::alias_ref<JFunc_void_std__string_ZoomEvent::javaobject> /* callback */)>("addListenerZoom_cxx");
147
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>(jni::alias_ref<JFunc_void_std__string_ZoomEvent::javaobject> /* callback */)>("addListenerZoom_cxx");
154
148
  auto __result = method(_javaPart, JFunc_void_std__string_ZoomEvent_cxx::fromCpp(callback));
155
149
  return [&]() -> std::function<void()> {
156
150
  if (__result->isInstanceOf(JFunc_void_cxx::javaClassStatic())) [[likely]] {
@@ -163,7 +157,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
163
157
  }();
164
158
  }
165
159
  std::function<void()> JHybridClusterSpec::addListenerCompass(const std::function<void(const std::string& /* clusterId */, bool /* payload */)>& callback) {
166
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>(jni::alias_ref<JFunc_void_std__string_bool::javaobject> /* callback */)>("addListenerCompass_cxx");
160
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>(jni::alias_ref<JFunc_void_std__string_bool::javaobject> /* callback */)>("addListenerCompass_cxx");
167
161
  auto __result = method(_javaPart, JFunc_void_std__string_bool_cxx::fromCpp(callback));
168
162
  return [&]() -> std::function<void()> {
169
163
  if (__result->isInstanceOf(JFunc_void_cxx::javaClassStatic())) [[likely]] {
@@ -176,7 +170,7 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
176
170
  }();
177
171
  }
178
172
  std::function<void()> JHybridClusterSpec::addListenerSpeedLimit(const std::function<void(const std::string& /* clusterId */, bool /* payload */)>& callback) {
179
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>(jni::alias_ref<JFunc_void_std__string_bool::javaobject> /* callback */)>("addListenerSpeedLimit_cxx");
173
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>(jni::alias_ref<JFunc_void_std__string_bool::javaobject> /* callback */)>("addListenerSpeedLimit_cxx");
180
174
  auto __result = method(_javaPart, JFunc_void_std__string_bool_cxx::fromCpp(callback));
181
175
  return [&]() -> std::function<void()> {
182
176
  if (__result->isInstanceOf(JFunc_void_cxx::javaClassStatic())) [[likely]] {
@@ -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