@onekeyfe/react-native-segment-slider 3.0.85 → 3.0.86-alpha.0

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 (75) hide show
  1. package/README.md +13 -3
  2. package/android/src/main/java/com/margelo/nitro/segmentslider/HybridSegmentSlider.kt +31 -7
  3. package/ios/HybridSegmentSlider.swift +34 -8
  4. package/lib/nitrogen/generated/android/c++/JFunc_void.hpp +3 -3
  5. package/lib/nitrogen/generated/android/c++/JFunc_void_double.hpp +3 -3
  6. package/lib/nitrogen/generated/android/c++/JHybridSegmentSliderSpec.cpp +71 -63
  7. package/lib/nitrogen/generated/android/c++/JHybridSegmentSliderSpec.hpp +24 -20
  8. package/lib/nitrogen/generated/android/c++/views/JHybridSegmentSliderStateUpdater.cpp +81 -77
  9. package/lib/nitrogen/generated/android/c++/views/JHybridSegmentSliderStateUpdater.hpp +4 -4
  10. package/lib/nitrogen/generated/android/kotlin/com/margelo/nitro/segmentslider/Func_void.kt +1 -1
  11. package/lib/nitrogen/generated/android/kotlin/com/margelo/nitro/segmentslider/Func_void_double.kt +1 -1
  12. package/lib/nitrogen/generated/android/kotlin/com/margelo/nitro/segmentslider/HybridSegmentSliderSpec.kt +25 -17
  13. package/lib/nitrogen/generated/android/kotlin/com/margelo/nitro/segmentslider/segmentsliderOnLoad.kt +1 -1
  14. package/lib/nitrogen/generated/android/kotlin/com/margelo/nitro/segmentslider/views/HybridSegmentSliderManager.kt +10 -40
  15. package/lib/nitrogen/generated/android/kotlin/com/margelo/nitro/segmentslider/views/HybridSegmentSliderStateUpdater.kt +1 -1
  16. package/lib/nitrogen/generated/android/segmentslider+autolinking.cmake +1 -1
  17. package/lib/nitrogen/generated/android/segmentslider+autolinking.gradle +1 -1
  18. package/lib/nitrogen/generated/android/segmentsliderOnLoad.cpp +20 -30
  19. package/lib/nitrogen/generated/android/segmentsliderOnLoad.hpp +5 -14
  20. package/lib/nitrogen/generated/ios/SegmentSlider+autolinking.rb +2 -2
  21. package/lib/nitrogen/generated/ios/SegmentSlider-Swift-Cxx-Bridge.cpp +1 -1
  22. package/lib/nitrogen/generated/ios/SegmentSlider-Swift-Cxx-Bridge.hpp +3 -3
  23. package/lib/nitrogen/generated/ios/SegmentSlider-Swift-Cxx-Umbrella.hpp +1 -1
  24. package/lib/nitrogen/generated/ios/SegmentSliderAutolinking.mm +1 -1
  25. package/lib/nitrogen/generated/ios/SegmentSliderAutolinking.swift +8 -9
  26. package/lib/nitrogen/generated/ios/c++/HybridSegmentSliderSpecSwift.cpp +1 -1
  27. package/lib/nitrogen/generated/ios/c++/HybridSegmentSliderSpecSwift.hpp +7 -7
  28. package/lib/nitrogen/generated/ios/c++/views/HybridSegmentSliderComponent.mm +6 -27
  29. package/lib/nitrogen/generated/ios/swift/Func_void.swift +2 -1
  30. package/lib/nitrogen/generated/ios/swift/Func_void_double.swift +2 -1
  31. package/lib/nitrogen/generated/ios/swift/HybridSegmentSliderSpec.swift +5 -3
  32. package/lib/nitrogen/generated/ios/swift/HybridSegmentSliderSpec_cxx.swift +13 -18
  33. package/lib/nitrogen/generated/shared/c++/HybridSegmentSliderSpec.cpp +3 -1
  34. package/lib/nitrogen/generated/shared/c++/HybridSegmentSliderSpec.hpp +3 -1
  35. package/lib/nitrogen/generated/shared/c++/views/HybridSegmentSliderComponent.cpp +46 -10
  36. package/lib/nitrogen/generated/shared/c++/views/HybridSegmentSliderComponent.hpp +7 -9
  37. package/lib/nitrogen/generated/shared/json/SegmentSliderConfig.json +1 -0
  38. package/lib/typescript/src/SegmentSlider.nitro.d.ts +8 -0
  39. package/lib/typescript/src/SegmentSlider.nitro.d.ts.map +1 -1
  40. package/nitrogen/generated/android/c++/JFunc_void.hpp +3 -3
  41. package/nitrogen/generated/android/c++/JFunc_void_double.hpp +3 -3
  42. package/nitrogen/generated/android/c++/JHybridSegmentSliderSpec.cpp +71 -63
  43. package/nitrogen/generated/android/c++/JHybridSegmentSliderSpec.hpp +24 -20
  44. package/nitrogen/generated/android/c++/views/JHybridSegmentSliderStateUpdater.cpp +81 -77
  45. package/nitrogen/generated/android/c++/views/JHybridSegmentSliderStateUpdater.hpp +4 -4
  46. package/nitrogen/generated/android/kotlin/com/margelo/nitro/segmentslider/Func_void.kt +1 -1
  47. package/nitrogen/generated/android/kotlin/com/margelo/nitro/segmentslider/Func_void_double.kt +1 -1
  48. package/nitrogen/generated/android/kotlin/com/margelo/nitro/segmentslider/HybridSegmentSliderSpec.kt +25 -17
  49. package/nitrogen/generated/android/kotlin/com/margelo/nitro/segmentslider/segmentsliderOnLoad.kt +1 -1
  50. package/nitrogen/generated/android/kotlin/com/margelo/nitro/segmentslider/views/HybridSegmentSliderManager.kt +10 -40
  51. package/nitrogen/generated/android/kotlin/com/margelo/nitro/segmentslider/views/HybridSegmentSliderStateUpdater.kt +1 -1
  52. package/nitrogen/generated/android/segmentslider+autolinking.cmake +1 -1
  53. package/nitrogen/generated/android/segmentslider+autolinking.gradle +1 -1
  54. package/nitrogen/generated/android/segmentsliderOnLoad.cpp +20 -30
  55. package/nitrogen/generated/android/segmentsliderOnLoad.hpp +5 -14
  56. package/nitrogen/generated/ios/SegmentSlider+autolinking.rb +2 -2
  57. package/nitrogen/generated/ios/SegmentSlider-Swift-Cxx-Bridge.cpp +1 -1
  58. package/nitrogen/generated/ios/SegmentSlider-Swift-Cxx-Bridge.hpp +3 -3
  59. package/nitrogen/generated/ios/SegmentSlider-Swift-Cxx-Umbrella.hpp +1 -1
  60. package/nitrogen/generated/ios/SegmentSliderAutolinking.mm +1 -1
  61. package/nitrogen/generated/ios/SegmentSliderAutolinking.swift +8 -9
  62. package/nitrogen/generated/ios/c++/HybridSegmentSliderSpecSwift.cpp +1 -1
  63. package/nitrogen/generated/ios/c++/HybridSegmentSliderSpecSwift.hpp +7 -7
  64. package/nitrogen/generated/ios/c++/views/HybridSegmentSliderComponent.mm +6 -27
  65. package/nitrogen/generated/ios/swift/Func_void.swift +2 -1
  66. package/nitrogen/generated/ios/swift/Func_void_double.swift +2 -1
  67. package/nitrogen/generated/ios/swift/HybridSegmentSliderSpec.swift +5 -3
  68. package/nitrogen/generated/ios/swift/HybridSegmentSliderSpec_cxx.swift +13 -18
  69. package/nitrogen/generated/shared/c++/HybridSegmentSliderSpec.cpp +3 -1
  70. package/nitrogen/generated/shared/c++/HybridSegmentSliderSpec.hpp +3 -1
  71. package/nitrogen/generated/shared/c++/views/HybridSegmentSliderComponent.cpp +46 -10
  72. package/nitrogen/generated/shared/c++/views/HybridSegmentSliderComponent.hpp +7 -9
  73. package/nitrogen/generated/shared/json/SegmentSliderConfig.json +1 -0
  74. package/package.json +4 -4
  75. package/src/SegmentSlider.nitro.ts +12 -1
@@ -2,7 +2,7 @@
2
2
  /// JHybridSegmentSliderSpec.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "JHybridSegmentSliderSpec.hpp"
@@ -18,198 +18,206 @@
18
18
 
19
19
  namespace margelo::nitro::segmentslider {
20
20
 
21
- std::shared_ptr<JHybridSegmentSliderSpec> JHybridSegmentSliderSpec::JavaPart::getJHybridSegmentSliderSpec() {
22
- auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
23
- auto castHybridObject = std::dynamic_pointer_cast<JHybridSegmentSliderSpec>(hybridObject);
24
- if (castHybridObject == nullptr) [[unlikely]] {
25
- throw std::runtime_error("Failed to downcast JHybridObject to JHybridSegmentSliderSpec!");
26
- }
27
- return castHybridObject;
21
+ jni::local_ref<JHybridSegmentSliderSpec::jhybriddata> JHybridSegmentSliderSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
22
+ return makeCxxInstance(jThis);
28
23
  }
29
24
 
30
- jni::local_ref<JHybridSegmentSliderSpec::CxxPart::jhybriddata> JHybridSegmentSliderSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
31
- return makeCxxInstance(jThis);
25
+ void JHybridSegmentSliderSpec::registerNatives() {
26
+ registerHybrid({
27
+ makeNativeMethod("initHybrid", JHybridSegmentSliderSpec::initHybrid),
28
+ });
32
29
  }
33
30
 
34
- std::shared_ptr<JHybridObject> JHybridSegmentSliderSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
35
- auto castJavaPart = jni::dynamic_ref_cast<JHybridSegmentSliderSpec::JavaPart>(javaPart);
36
- if (castJavaPart == nullptr) [[unlikely]] {
37
- throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridSegmentSliderSpec::JavaPart!");
38
- }
39
- return std::make_shared<JHybridSegmentSliderSpec>(castJavaPart);
31
+ size_t JHybridSegmentSliderSpec::getExternalMemorySize() noexcept {
32
+ static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
33
+ return method(_javaPart);
40
34
  }
41
35
 
42
- void JHybridSegmentSliderSpec::CxxPart::registerNatives() {
43
- registerHybrid({
44
- makeNativeMethod("initHybrid", JHybridSegmentSliderSpec::CxxPart::initHybrid),
45
- });
36
+ void JHybridSegmentSliderSpec::dispose() noexcept {
37
+ static const auto method = javaClassStatic()->getMethod<void()>("dispose");
38
+ method(_javaPart);
39
+ }
40
+
41
+ std::string JHybridSegmentSliderSpec::toString() {
42
+ static const auto method = javaClassStatic()->getMethod<jni::JString()>("toString");
43
+ auto javaString = method(_javaPart);
44
+ return javaString->toStdString();
46
45
  }
47
46
 
48
47
  // Properties
49
48
  double JHybridSegmentSliderSpec::getDefaultValue() {
50
- static const auto method = _javaPart->javaClassStatic()->getMethod<double()>("getDefaultValue");
49
+ static const auto method = javaClassStatic()->getMethod<double()>("getDefaultValue");
51
50
  auto __result = method(_javaPart);
52
51
  return __result;
53
52
  }
54
53
  void JHybridSegmentSliderSpec::setDefaultValue(double defaultValue) {
55
- static const auto method = _javaPart->javaClassStatic()->getMethod<void(double /* defaultValue */)>("setDefaultValue");
54
+ static const auto method = javaClassStatic()->getMethod<void(double /* defaultValue */)>("setDefaultValue");
56
55
  method(_javaPart, defaultValue);
57
56
  }
58
57
  double JHybridSegmentSliderSpec::getMin() {
59
- static const auto method = _javaPart->javaClassStatic()->getMethod<double()>("getMin");
58
+ static const auto method = javaClassStatic()->getMethod<double()>("getMin");
60
59
  auto __result = method(_javaPart);
61
60
  return __result;
62
61
  }
63
62
  void JHybridSegmentSliderSpec::setMin(double min) {
64
- static const auto method = _javaPart->javaClassStatic()->getMethod<void(double /* min */)>("setMin");
63
+ static const auto method = javaClassStatic()->getMethod<void(double /* min */)>("setMin");
65
64
  method(_javaPart, min);
66
65
  }
67
66
  double JHybridSegmentSliderSpec::getMax() {
68
- static const auto method = _javaPart->javaClassStatic()->getMethod<double()>("getMax");
67
+ static const auto method = javaClassStatic()->getMethod<double()>("getMax");
69
68
  auto __result = method(_javaPart);
70
69
  return __result;
71
70
  }
72
71
  void JHybridSegmentSliderSpec::setMax(double max) {
73
- static const auto method = _javaPart->javaClassStatic()->getMethod<void(double /* max */)>("setMax");
72
+ static const auto method = javaClassStatic()->getMethod<void(double /* max */)>("setMax");
74
73
  method(_javaPart, max);
75
74
  }
76
75
  double JHybridSegmentSliderSpec::getSegments() {
77
- static const auto method = _javaPart->javaClassStatic()->getMethod<double()>("getSegments");
76
+ static const auto method = javaClassStatic()->getMethod<double()>("getSegments");
78
77
  auto __result = method(_javaPart);
79
78
  return __result;
80
79
  }
81
80
  void JHybridSegmentSliderSpec::setSegments(double segments) {
82
- static const auto method = _javaPart->javaClassStatic()->getMethod<void(double /* segments */)>("setSegments");
81
+ static const auto method = javaClassStatic()->getMethod<void(double /* segments */)>("setSegments");
83
82
  method(_javaPart, segments);
84
83
  }
85
84
  double JHybridSegmentSliderSpec::getSliderHeight() {
86
- static const auto method = _javaPart->javaClassStatic()->getMethod<double()>("getSliderHeight");
85
+ static const auto method = javaClassStatic()->getMethod<double()>("getSliderHeight");
87
86
  auto __result = method(_javaPart);
88
87
  return __result;
89
88
  }
90
89
  void JHybridSegmentSliderSpec::setSliderHeight(double sliderHeight) {
91
- static const auto method = _javaPart->javaClassStatic()->getMethod<void(double /* sliderHeight */)>("setSliderHeight");
90
+ static const auto method = javaClassStatic()->getMethod<void(double /* sliderHeight */)>("setSliderHeight");
92
91
  method(_javaPart, sliderHeight);
93
92
  }
94
93
  bool JHybridSegmentSliderSpec::getDisabled() {
95
- static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean()>("getDisabled");
94
+ static const auto method = javaClassStatic()->getMethod<jboolean()>("getDisabled");
96
95
  auto __result = method(_javaPart);
97
96
  return static_cast<bool>(__result);
98
97
  }
99
98
  void JHybridSegmentSliderSpec::setDisabled(bool disabled) {
100
- static const auto method = _javaPart->javaClassStatic()->getMethod<void(jboolean /* disabled */)>("setDisabled");
99
+ static const auto method = javaClassStatic()->getMethod<void(jboolean /* disabled */)>("setDisabled");
101
100
  method(_javaPart, disabled);
102
101
  }
103
102
  bool JHybridSegmentSliderSpec::getShowBubble() {
104
- static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean()>("getShowBubble");
103
+ static const auto method = javaClassStatic()->getMethod<jboolean()>("getShowBubble");
105
104
  auto __result = method(_javaPart);
106
105
  return static_cast<bool>(__result);
107
106
  }
108
107
  void JHybridSegmentSliderSpec::setShowBubble(bool showBubble) {
109
- static const auto method = _javaPart->javaClassStatic()->getMethod<void(jboolean /* showBubble */)>("setShowBubble");
108
+ static const auto method = javaClassStatic()->getMethod<void(jboolean /* showBubble */)>("setShowBubble");
110
109
  method(_javaPart, showBubble);
111
110
  }
112
111
  bool JHybridSegmentSliderSpec::getCenterOrigin() {
113
- static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean()>("getCenterOrigin");
112
+ static const auto method = javaClassStatic()->getMethod<jboolean()>("getCenterOrigin");
114
113
  auto __result = method(_javaPart);
115
114
  return static_cast<bool>(__result);
116
115
  }
117
116
  void JHybridSegmentSliderSpec::setCenterOrigin(bool centerOrigin) {
118
- static const auto method = _javaPart->javaClassStatic()->getMethod<void(jboolean /* centerOrigin */)>("setCenterOrigin");
117
+ static const auto method = javaClassStatic()->getMethod<void(jboolean /* centerOrigin */)>("setCenterOrigin");
119
118
  method(_javaPart, centerOrigin);
120
119
  }
121
120
  bool JHybridSegmentSliderSpec::getSnapTapToSegment() {
122
- static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean()>("getSnapTapToSegment");
121
+ static const auto method = javaClassStatic()->getMethod<jboolean()>("getSnapTapToSegment");
123
122
  auto __result = method(_javaPart);
124
123
  return static_cast<bool>(__result);
125
124
  }
126
125
  void JHybridSegmentSliderSpec::setSnapTapToSegment(bool snapTapToSegment) {
127
- static const auto method = _javaPart->javaClassStatic()->getMethod<void(jboolean /* snapTapToSegment */)>("setSnapTapToSegment");
126
+ static const auto method = javaClassStatic()->getMethod<void(jboolean /* snapTapToSegment */)>("setSnapTapToSegment");
128
127
  method(_javaPart, snapTapToSegment);
129
128
  }
129
+ bool JHybridSegmentSliderSpec::getAlignSegmentMarksToIntegerValues() {
130
+ static const auto method = javaClassStatic()->getMethod<jboolean()>("getAlignSegmentMarksToIntegerValues");
131
+ auto __result = method(_javaPart);
132
+ return static_cast<bool>(__result);
133
+ }
134
+ void JHybridSegmentSliderSpec::setAlignSegmentMarksToIntegerValues(bool alignSegmentMarksToIntegerValues) {
135
+ static const auto method = javaClassStatic()->getMethod<void(jboolean /* alignSegmentMarksToIntegerValues */)>("setAlignSegmentMarksToIntegerValues");
136
+ method(_javaPart, alignSegmentMarksToIntegerValues);
137
+ }
130
138
  std::string JHybridSegmentSliderSpec::getFillColor() {
131
- static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getFillColor");
139
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getFillColor");
132
140
  auto __result = method(_javaPart);
133
141
  return __result->toStdString();
134
142
  }
135
143
  void JHybridSegmentSliderSpec::setFillColor(const std::string& fillColor) {
136
- static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* fillColor */)>("setFillColor");
144
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* fillColor */)>("setFillColor");
137
145
  method(_javaPart, jni::make_jstring(fillColor));
138
146
  }
139
147
  std::string JHybridSegmentSliderSpec::getTrackColor() {
140
- static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getTrackColor");
148
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getTrackColor");
141
149
  auto __result = method(_javaPart);
142
150
  return __result->toStdString();
143
151
  }
144
152
  void JHybridSegmentSliderSpec::setTrackColor(const std::string& trackColor) {
145
- static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* trackColor */)>("setTrackColor");
153
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* trackColor */)>("setTrackColor");
146
154
  method(_javaPart, jni::make_jstring(trackColor));
147
155
  }
148
156
  std::string JHybridSegmentSliderSpec::getThumbColor() {
149
- static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getThumbColor");
157
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getThumbColor");
150
158
  auto __result = method(_javaPart);
151
159
  return __result->toStdString();
152
160
  }
153
161
  void JHybridSegmentSliderSpec::setThumbColor(const std::string& thumbColor) {
154
- static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* thumbColor */)>("setThumbColor");
162
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* thumbColor */)>("setThumbColor");
155
163
  method(_javaPart, jni::make_jstring(thumbColor));
156
164
  }
157
165
  std::string JHybridSegmentSliderSpec::getThumbBorderColor() {
158
- static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getThumbBorderColor");
166
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getThumbBorderColor");
159
167
  auto __result = method(_javaPart);
160
168
  return __result->toStdString();
161
169
  }
162
170
  void JHybridSegmentSliderSpec::setThumbBorderColor(const std::string& thumbBorderColor) {
163
- static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* thumbBorderColor */)>("setThumbBorderColor");
171
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* thumbBorderColor */)>("setThumbBorderColor");
164
172
  method(_javaPart, jni::make_jstring(thumbBorderColor));
165
173
  }
166
174
  std::string JHybridSegmentSliderSpec::getMarkActiveColor() {
167
- static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getMarkActiveColor");
175
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getMarkActiveColor");
168
176
  auto __result = method(_javaPart);
169
177
  return __result->toStdString();
170
178
  }
171
179
  void JHybridSegmentSliderSpec::setMarkActiveColor(const std::string& markActiveColor) {
172
- static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* markActiveColor */)>("setMarkActiveColor");
180
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* markActiveColor */)>("setMarkActiveColor");
173
181
  method(_javaPart, jni::make_jstring(markActiveColor));
174
182
  }
175
183
  std::string JHybridSegmentSliderSpec::getMarkInactiveColor() {
176
- static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getMarkInactiveColor");
184
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getMarkInactiveColor");
177
185
  auto __result = method(_javaPart);
178
186
  return __result->toStdString();
179
187
  }
180
188
  void JHybridSegmentSliderSpec::setMarkInactiveColor(const std::string& markInactiveColor) {
181
- static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* markInactiveColor */)>("setMarkInactiveColor");
189
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* markInactiveColor */)>("setMarkInactiveColor");
182
190
  method(_javaPart, jni::make_jstring(markInactiveColor));
183
191
  }
184
192
  std::string JHybridSegmentSliderSpec::getMarkBorderColor() {
185
- static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getMarkBorderColor");
193
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getMarkBorderColor");
186
194
  auto __result = method(_javaPart);
187
195
  return __result->toStdString();
188
196
  }
189
197
  void JHybridSegmentSliderSpec::setMarkBorderColor(const std::string& markBorderColor) {
190
- static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* markBorderColor */)>("setMarkBorderColor");
198
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* markBorderColor */)>("setMarkBorderColor");
191
199
  method(_javaPart, jni::make_jstring(markBorderColor));
192
200
  }
193
201
  std::string JHybridSegmentSliderSpec::getBubbleColor() {
194
- static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getBubbleColor");
202
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getBubbleColor");
195
203
  auto __result = method(_javaPart);
196
204
  return __result->toStdString();
197
205
  }
198
206
  void JHybridSegmentSliderSpec::setBubbleColor(const std::string& bubbleColor) {
199
- static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* bubbleColor */)>("setBubbleColor");
207
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* bubbleColor */)>("setBubbleColor");
200
208
  method(_javaPart, jni::make_jstring(bubbleColor));
201
209
  }
202
210
  std::string JHybridSegmentSliderSpec::getBubbleTextColor() {
203
- static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getBubbleTextColor");
211
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getBubbleTextColor");
204
212
  auto __result = method(_javaPart);
205
213
  return __result->toStdString();
206
214
  }
207
215
  void JHybridSegmentSliderSpec::setBubbleTextColor(const std::string& bubbleTextColor) {
208
- static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* bubbleTextColor */)>("setBubbleTextColor");
216
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* bubbleTextColor */)>("setBubbleTextColor");
209
217
  method(_javaPart, jni::make_jstring(bubbleTextColor));
210
218
  }
211
219
  std::optional<std::function<void(double /* value */)>> JHybridSegmentSliderSpec::getOnChange() {
212
- static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JFunc_void_double::javaobject>()>("getOnChange_cxx");
220
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void_double::javaobject>()>("getOnChange_cxx");
213
221
  auto __result = method(_javaPart);
214
222
  return __result != nullptr ? std::make_optional([&]() -> std::function<void(double /* value */)> {
215
223
  if (__result->isInstanceOf(JFunc_void_double_cxx::javaClassStatic())) [[likely]] {
@@ -222,11 +230,11 @@ namespace margelo::nitro::segmentslider {
222
230
  }()) : std::nullopt;
223
231
  }
224
232
  void JHybridSegmentSliderSpec::setOnChange(const std::optional<std::function<void(double /* value */)>>& onChange) {
225
- static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_double::javaobject> /* onChange */)>("setOnChange_cxx");
233
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_double::javaobject> /* onChange */)>("setOnChange_cxx");
226
234
  method(_javaPart, onChange.has_value() ? JFunc_void_double_cxx::fromCpp(onChange.value()) : nullptr);
227
235
  }
228
236
  std::optional<std::function<void()>> JHybridSegmentSliderSpec::getOnSlideStart() {
229
- static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>()>("getOnSlideStart_cxx");
237
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>()>("getOnSlideStart_cxx");
230
238
  auto __result = method(_javaPart);
231
239
  return __result != nullptr ? std::make_optional([&]() -> std::function<void()> {
232
240
  if (__result->isInstanceOf(JFunc_void_cxx::javaClassStatic())) [[likely]] {
@@ -239,11 +247,11 @@ namespace margelo::nitro::segmentslider {
239
247
  }()) : std::nullopt;
240
248
  }
241
249
  void JHybridSegmentSliderSpec::setOnSlideStart(const std::optional<std::function<void()>>& onSlideStart) {
242
- static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void::javaobject> /* onSlideStart */)>("setOnSlideStart_cxx");
250
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void::javaobject> /* onSlideStart */)>("setOnSlideStart_cxx");
243
251
  method(_javaPart, onSlideStart.has_value() ? JFunc_void_cxx::fromCpp(onSlideStart.value()) : nullptr);
244
252
  }
245
253
  std::optional<std::function<void()>> JHybridSegmentSliderSpec::getOnSlideComplete() {
246
- static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>()>("getOnSlideComplete_cxx");
254
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JFunc_void::javaobject>()>("getOnSlideComplete_cxx");
247
255
  auto __result = method(_javaPart);
248
256
  return __result != nullptr ? std::make_optional([&]() -> std::function<void()> {
249
257
  if (__result->isInstanceOf(JFunc_void_cxx::javaClassStatic())) [[likely]] {
@@ -256,13 +264,13 @@ namespace margelo::nitro::segmentslider {
256
264
  }()) : std::nullopt;
257
265
  }
258
266
  void JHybridSegmentSliderSpec::setOnSlideComplete(const std::optional<std::function<void()>>& onSlideComplete) {
259
- static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void::javaobject> /* onSlideComplete */)>("setOnSlideComplete_cxx");
267
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void::javaobject> /* onSlideComplete */)>("setOnSlideComplete_cxx");
260
268
  method(_javaPart, onSlideComplete.has_value() ? JFunc_void_cxx::fromCpp(onSlideComplete.value()) : nullptr);
261
269
  }
262
270
 
263
271
  // Methods
264
272
  void JHybridSegmentSliderSpec::setValue(double value) {
265
- static const auto method = _javaPart->javaClassStatic()->getMethod<void(double /* value */)>("setValue");
273
+ static const auto method = javaClassStatic()->getMethod<void(double /* value */)>("setValue");
266
274
  method(_javaPart, value);
267
275
  }
268
276
 
@@ -2,7 +2,7 @@
2
2
  /// HybridSegmentSliderSpec.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -18,33 +18,33 @@ namespace margelo::nitro::segmentslider {
18
18
 
19
19
  using namespace facebook;
20
20
 
21
- class JHybridSegmentSliderSpec: public virtual HybridSegmentSliderSpec, public virtual JHybridObject {
21
+ class JHybridSegmentSliderSpec: public jni::HybridClass<JHybridSegmentSliderSpec, JHybridObject>,
22
+ public virtual HybridSegmentSliderSpec {
22
23
  public:
23
- struct JavaPart: public jni::JavaClass<JavaPart, JHybridObject::JavaPart> {
24
- static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/segmentslider/HybridSegmentSliderSpec;";
25
- std::shared_ptr<JHybridSegmentSliderSpec> getJHybridSegmentSliderSpec();
26
- };
27
- struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
28
- static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/segmentslider/HybridSegmentSliderSpec$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
- };
24
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/segmentslider/HybridSegmentSliderSpec;";
25
+ static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
26
+ static void registerNatives();
35
27
 
36
- public:
37
- explicit JHybridSegmentSliderSpec(const jni::local_ref<JHybridSegmentSliderSpec::JavaPart>& javaPart):
28
+ protected:
29
+ // C++ constructor (called from Java via `initHybrid()`)
30
+ explicit JHybridSegmentSliderSpec(jni::alias_ref<jhybridobject> jThis) :
38
31
  HybridObject(HybridSegmentSliderSpec::TAG),
39
- JHybridObject(javaPart),
40
- _javaPart(jni::make_global(javaPart)) {}
32
+ HybridBase(jThis),
33
+ _javaPart(jni::make_global(jThis)) {}
34
+
35
+ public:
41
36
  ~JHybridSegmentSliderSpec() override {
42
37
  // Hermes GC can destroy JS objects on a non-JNI Thread.
43
38
  jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
44
39
  }
45
40
 
46
41
  public:
47
- inline const jni::global_ref<JHybridSegmentSliderSpec::JavaPart>& getJavaPart() const noexcept {
42
+ size_t getExternalMemorySize() noexcept override;
43
+ void dispose() noexcept override;
44
+ std::string toString() override;
45
+
46
+ public:
47
+ inline const jni::global_ref<JHybridSegmentSliderSpec::javaobject>& getJavaPart() const noexcept {
48
48
  return _javaPart;
49
49
  }
50
50
 
@@ -68,6 +68,8 @@ namespace margelo::nitro::segmentslider {
68
68
  void setCenterOrigin(bool centerOrigin) override;
69
69
  bool getSnapTapToSegment() override;
70
70
  void setSnapTapToSegment(bool snapTapToSegment) override;
71
+ bool getAlignSegmentMarksToIntegerValues() override;
72
+ void setAlignSegmentMarksToIntegerValues(bool alignSegmentMarksToIntegerValues) override;
71
73
  std::string getFillColor() override;
72
74
  void setFillColor(const std::string& fillColor) override;
73
75
  std::string getTrackColor() override;
@@ -98,7 +100,9 @@ namespace margelo::nitro::segmentslider {
98
100
  void setValue(double value) override;
99
101
 
100
102
  private:
101
- jni::global_ref<JHybridSegmentSliderSpec::JavaPart> _javaPart;
103
+ friend HybridBase;
104
+ using HybridBase::HybridBase;
105
+ jni::global_ref<JHybridSegmentSliderSpec::javaobject> _javaPart;
102
106
  };
103
107
 
104
108
  } // namespace margelo::nitro::segmentslider
@@ -2,13 +2,12 @@
2
2
  /// JHybridSegmentSliderStateUpdater.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © Marc Rousavy @ Margelo
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "JHybridSegmentSliderStateUpdater.hpp"
9
9
  #include "views/HybridSegmentSliderComponent.hpp"
10
10
  #include <NitroModules/NitroDefines.hpp>
11
- #include <react/fabric/StateWrapperImpl.h>
12
11
 
13
12
  namespace margelo::nitro::segmentslider::views {
14
13
 
@@ -16,120 +15,125 @@ using namespace facebook;
16
15
  using ConcreteStateData = react::ConcreteState<HybridSegmentSliderState>;
17
16
 
18
17
  void JHybridSegmentSliderStateUpdater::updateViewProps(jni::alias_ref<jni::JClass> /* class */,
19
- jni::alias_ref<JHybridSegmentSliderSpec::JavaPart> javaView,
18
+ jni::alias_ref<JHybridSegmentSliderSpec::javaobject> javaView,
20
19
  jni::alias_ref<JStateWrapper::javaobject> stateWrapperInterface) {
21
- std::shared_ptr<JHybridSegmentSliderSpec> hybridView = javaView->getJHybridSegmentSliderSpec();
20
+ JHybridSegmentSliderSpec* view = javaView->cthis();
22
21
 
23
22
  // Get concrete StateWrapperImpl from passed StateWrapper interface object
24
23
  jobject rawStateWrapper = stateWrapperInterface.get();
25
- if (!stateWrapperInterface->isInstanceOf(react::StateWrapperImpl::javaClassStatic())) [[unlikely]] {
24
+ if (!stateWrapperInterface->isInstanceOf(react::StateWrapperImpl::javaClassStatic())) {
26
25
  throw std::runtime_error("StateWrapper is not a StateWrapperImpl");
27
26
  }
28
27
  auto stateWrapper = jni::alias_ref<react::StateWrapperImpl::javaobject>{
29
28
  static_cast<react::StateWrapperImpl::javaobject>(rawStateWrapper)};
29
+
30
30
  std::shared_ptr<const react::State> state = stateWrapper->cthis()->getState();
31
- auto concreteState = std::static_pointer_cast<const ConcreteStateData>(state);
31
+ auto concreteState = std::dynamic_pointer_cast<const ConcreteStateData>(state);
32
32
  const HybridSegmentSliderState& data = concreteState->getData();
33
- const std::shared_ptr<HybridSegmentSliderProps>& props = data.getProps();
34
- if (props == nullptr) [[unlikely]] {
33
+ const std::optional<HybridSegmentSliderProps>& maybeProps = data.getProps();
34
+ if (!maybeProps.has_value()) {
35
35
  // Props aren't set yet!
36
36
  throw std::runtime_error("HybridSegmentSliderState's data doesn't contain any props!");
37
37
  }
38
-
39
- // Update all props if they are dirty
40
- if (props->defaultValue.isDirty) {
41
- hybridView->setDefaultValue(props->defaultValue.value);
42
- props->defaultValue.isDirty = false;
38
+ const HybridSegmentSliderProps& props = maybeProps.value();
39
+ if (props.defaultValue.isDirty) {
40
+ view->setDefaultValue(props.defaultValue.value);
41
+ // TODO: Set isDirty = false
42
+ }
43
+ if (props.min.isDirty) {
44
+ view->setMin(props.min.value);
45
+ // TODO: Set isDirty = false
43
46
  }
44
- if (props->min.isDirty) {
45
- hybridView->setMin(props->min.value);
46
- props->min.isDirty = false;
47
+ if (props.max.isDirty) {
48
+ view->setMax(props.max.value);
49
+ // TODO: Set isDirty = false
47
50
  }
48
- if (props->max.isDirty) {
49
- hybridView->setMax(props->max.value);
50
- props->max.isDirty = false;
51
+ if (props.segments.isDirty) {
52
+ view->setSegments(props.segments.value);
53
+ // TODO: Set isDirty = false
51
54
  }
52
- if (props->segments.isDirty) {
53
- hybridView->setSegments(props->segments.value);
54
- props->segments.isDirty = false;
55
+ if (props.sliderHeight.isDirty) {
56
+ view->setSliderHeight(props.sliderHeight.value);
57
+ // TODO: Set isDirty = false
55
58
  }
56
- if (props->sliderHeight.isDirty) {
57
- hybridView->setSliderHeight(props->sliderHeight.value);
58
- props->sliderHeight.isDirty = false;
59
+ if (props.disabled.isDirty) {
60
+ view->setDisabled(props.disabled.value);
61
+ // TODO: Set isDirty = false
59
62
  }
60
- if (props->disabled.isDirty) {
61
- hybridView->setDisabled(props->disabled.value);
62
- props->disabled.isDirty = false;
63
+ if (props.showBubble.isDirty) {
64
+ view->setShowBubble(props.showBubble.value);
65
+ // TODO: Set isDirty = false
63
66
  }
64
- if (props->showBubble.isDirty) {
65
- hybridView->setShowBubble(props->showBubble.value);
66
- props->showBubble.isDirty = false;
67
+ if (props.centerOrigin.isDirty) {
68
+ view->setCenterOrigin(props.centerOrigin.value);
69
+ // TODO: Set isDirty = false
67
70
  }
68
- if (props->centerOrigin.isDirty) {
69
- hybridView->setCenterOrigin(props->centerOrigin.value);
70
- props->centerOrigin.isDirty = false;
71
+ if (props.snapTapToSegment.isDirty) {
72
+ view->setSnapTapToSegment(props.snapTapToSegment.value);
73
+ // TODO: Set isDirty = false
71
74
  }
72
- if (props->snapTapToSegment.isDirty) {
73
- hybridView->setSnapTapToSegment(props->snapTapToSegment.value);
74
- props->snapTapToSegment.isDirty = false;
75
+ if (props.alignSegmentMarksToIntegerValues.isDirty) {
76
+ view->setAlignSegmentMarksToIntegerValues(props.alignSegmentMarksToIntegerValues.value);
77
+ // TODO: Set isDirty = false
75
78
  }
76
- if (props->fillColor.isDirty) {
77
- hybridView->setFillColor(props->fillColor.value);
78
- props->fillColor.isDirty = false;
79
+ if (props.fillColor.isDirty) {
80
+ view->setFillColor(props.fillColor.value);
81
+ // TODO: Set isDirty = false
79
82
  }
80
- if (props->trackColor.isDirty) {
81
- hybridView->setTrackColor(props->trackColor.value);
82
- props->trackColor.isDirty = false;
83
+ if (props.trackColor.isDirty) {
84
+ view->setTrackColor(props.trackColor.value);
85
+ // TODO: Set isDirty = false
83
86
  }
84
- if (props->thumbColor.isDirty) {
85
- hybridView->setThumbColor(props->thumbColor.value);
86
- props->thumbColor.isDirty = false;
87
+ if (props.thumbColor.isDirty) {
88
+ view->setThumbColor(props.thumbColor.value);
89
+ // TODO: Set isDirty = false
87
90
  }
88
- if (props->thumbBorderColor.isDirty) {
89
- hybridView->setThumbBorderColor(props->thumbBorderColor.value);
90
- props->thumbBorderColor.isDirty = false;
91
+ if (props.thumbBorderColor.isDirty) {
92
+ view->setThumbBorderColor(props.thumbBorderColor.value);
93
+ // TODO: Set isDirty = false
91
94
  }
92
- if (props->markActiveColor.isDirty) {
93
- hybridView->setMarkActiveColor(props->markActiveColor.value);
94
- props->markActiveColor.isDirty = false;
95
+ if (props.markActiveColor.isDirty) {
96
+ view->setMarkActiveColor(props.markActiveColor.value);
97
+ // TODO: Set isDirty = false
95
98
  }
96
- if (props->markInactiveColor.isDirty) {
97
- hybridView->setMarkInactiveColor(props->markInactiveColor.value);
98
- props->markInactiveColor.isDirty = false;
99
+ if (props.markInactiveColor.isDirty) {
100
+ view->setMarkInactiveColor(props.markInactiveColor.value);
101
+ // TODO: Set isDirty = false
99
102
  }
100
- if (props->markBorderColor.isDirty) {
101
- hybridView->setMarkBorderColor(props->markBorderColor.value);
102
- props->markBorderColor.isDirty = false;
103
+ if (props.markBorderColor.isDirty) {
104
+ view->setMarkBorderColor(props.markBorderColor.value);
105
+ // TODO: Set isDirty = false
103
106
  }
104
- if (props->bubbleColor.isDirty) {
105
- hybridView->setBubbleColor(props->bubbleColor.value);
106
- props->bubbleColor.isDirty = false;
107
+ if (props.bubbleColor.isDirty) {
108
+ view->setBubbleColor(props.bubbleColor.value);
109
+ // TODO: Set isDirty = false
107
110
  }
108
- if (props->bubbleTextColor.isDirty) {
109
- hybridView->setBubbleTextColor(props->bubbleTextColor.value);
110
- props->bubbleTextColor.isDirty = false;
111
+ if (props.bubbleTextColor.isDirty) {
112
+ view->setBubbleTextColor(props.bubbleTextColor.value);
113
+ // TODO: Set isDirty = false
111
114
  }
112
- if (props->onChange.isDirty) {
113
- hybridView->setOnChange(props->onChange.value);
114
- props->onChange.isDirty = false;
115
+ if (props.onChange.isDirty) {
116
+ view->setOnChange(props.onChange.value);
117
+ // TODO: Set isDirty = false
115
118
  }
116
- if (props->onSlideStart.isDirty) {
117
- hybridView->setOnSlideStart(props->onSlideStart.value);
118
- props->onSlideStart.isDirty = false;
119
+ if (props.onSlideStart.isDirty) {
120
+ view->setOnSlideStart(props.onSlideStart.value);
121
+ // TODO: Set isDirty = false
119
122
  }
120
- if (props->onSlideComplete.isDirty) {
121
- hybridView->setOnSlideComplete(props->onSlideComplete.value);
122
- props->onSlideComplete.isDirty = false;
123
+ if (props.onSlideComplete.isDirty) {
124
+ view->setOnSlideComplete(props.onSlideComplete.value);
125
+ // TODO: Set isDirty = false
123
126
  }
124
127
 
125
128
  // Update hybridRef if it changed
126
- if (props->hybridRef.isDirty) {
129
+ if (props.hybridRef.isDirty) {
127
130
  // hybridRef changed - call it with new this
128
- const auto& maybeFunc = props->hybridRef.value;
131
+ const auto& maybeFunc = props.hybridRef.value;
129
132
  if (maybeFunc.has_value()) {
130
- maybeFunc.value()(hybridView);
133
+ std::shared_ptr<JHybridSegmentSliderSpec> shared = javaView->cthis()->shared_cast<JHybridSegmentSliderSpec>();
134
+ maybeFunc.value()(shared);
131
135
  }
132
- props->hybridRef.isDirty = false;
136
+ // TODO: Set isDirty = false
133
137
  }
134
138
  }
135
139