@qusaieilouti99/call-manager 0.1.227 → 0.1.231

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 (41) hide show
  1. package/CallManager.podspec +1 -1
  2. package/nitro.json +8 -2
  3. package/nitrogen/generated/android/c++/JAudioRoutesInfo.hpp +13 -12
  4. package/nitrogen/generated/android/c++/JCallEventType.hpp +16 -17
  5. package/nitrogen/generated/android/c++/JFunc_void_CallEventType_std__string.hpp +5 -4
  6. package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +5 -4
  7. package/nitrogen/generated/android/c++/JHybridCallManagerSpec.cpp +41 -39
  8. package/nitrogen/generated/android/c++/JHybridCallManagerSpec.hpp +20 -22
  9. package/nitrogen/generated/android/c++/JStringHolder.hpp +3 -3
  10. package/nitrogen/generated/android/kotlin/com/margelo/nitro/qusaieilouti99/callmanager/AudioRoutesInfo.kt +17 -2
  11. package/nitrogen/generated/android/kotlin/com/margelo/nitro/qusaieilouti99/callmanager/CallEventType.kt +3 -1
  12. package/nitrogen/generated/android/kotlin/com/margelo/nitro/qusaieilouti99/callmanager/Func_void_CallEventType_std__string.kt +1 -1
  13. package/nitrogen/generated/android/kotlin/com/margelo/nitro/qusaieilouti99/callmanager/Func_void_std__string.kt +1 -1
  14. package/nitrogen/generated/android/kotlin/com/margelo/nitro/qusaieilouti99/callmanager/HybridCallManagerSpec.kt +16 -19
  15. package/nitrogen/generated/android/kotlin/com/margelo/nitro/qusaieilouti99/callmanager/StringHolder.kt +15 -2
  16. package/nitrogen/generated/android/kotlin/com/margelo/nitro/qusaieilouti99/callmanager/qusaieilouti99_callmanagerOnLoad.kt +1 -1
  17. package/nitrogen/generated/android/qusaieilouti99_callmanager+autolinking.cmake +1 -1
  18. package/nitrogen/generated/android/qusaieilouti99_callmanager+autolinking.gradle +1 -1
  19. package/nitrogen/generated/android/qusaieilouti99_callmanagerOnLoad.cpp +29 -19
  20. package/nitrogen/generated/android/qusaieilouti99_callmanagerOnLoad.hpp +14 -5
  21. package/nitrogen/generated/ios/CallManager+autolinking.rb +4 -2
  22. package/nitrogen/generated/ios/CallManager-Swift-Cxx-Bridge.cpp +2 -1
  23. package/nitrogen/generated/ios/CallManager-Swift-Cxx-Bridge.hpp +2 -2
  24. package/nitrogen/generated/ios/CallManager-Swift-Cxx-Umbrella.hpp +1 -1
  25. package/nitrogen/generated/ios/CallManagerAutolinking.mm +1 -1
  26. package/nitrogen/generated/ios/CallManagerAutolinking.swift +9 -8
  27. package/nitrogen/generated/ios/c++/HybridCallManagerSpecSwift.cpp +1 -1
  28. package/nitrogen/generated/ios/c++/HybridCallManagerSpecSwift.hpp +7 -1
  29. package/nitrogen/generated/ios/swift/AudioRoutesInfo.swift +5 -23
  30. package/nitrogen/generated/ios/swift/CallEventType.swift +1 -1
  31. package/nitrogen/generated/ios/swift/Func_void_CallEventType_std__string.swift +1 -2
  32. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +1 -2
  33. package/nitrogen/generated/ios/swift/HybridCallManagerSpec.swift +3 -4
  34. package/nitrogen/generated/ios/swift/HybridCallManagerSpec_cxx.swift +9 -2
  35. package/nitrogen/generated/ios/swift/StringHolder.swift +3 -9
  36. package/nitrogen/generated/shared/c++/AudioRoutesInfo.hpp +16 -8
  37. package/nitrogen/generated/shared/c++/CallEventType.hpp +1 -1
  38. package/nitrogen/generated/shared/c++/HybridCallManagerSpec.cpp +1 -1
  39. package/nitrogen/generated/shared/c++/HybridCallManagerSpec.hpp +1 -1
  40. package/nitrogen/generated/shared/c++/StringHolder.hpp +13 -5
  41. package/package.json +10 -9
@@ -29,7 +29,7 @@ Pod::Spec.new do |s|
29
29
  s.dependency 'React-jsi'
30
30
  s.dependency 'React-callinvoker'
31
31
  s.dependency 'JitsiWebRTC'
32
- s.dependency 'ChatSharedDataManager', '~> 1.0.5'
32
+ s.dependency 'ChatSharedDataManager', '~> 1.0.6'
33
33
 
34
34
  load 'nitrogen/generated/ios/CallManager+autolinking.rb'
35
35
  add_nitrogen_files(s)
package/nitro.json CHANGED
@@ -9,8 +9,14 @@
9
9
  },
10
10
  "autolinking": {
11
11
  "CallManager": {
12
- "swift": "CallManager",
13
- "kotlin": "CallManager"
12
+ "ios": {
13
+ "language": "swift",
14
+ "implementationClassName": "CallManager"
15
+ },
16
+ "android": {
17
+ "language": "kotlin",
18
+ "implementationClassName": "CallManager"
19
+ }
14
20
  }
15
21
  },
16
22
  "ignorePaths": ["node_modules"]
@@ -2,7 +2,7 @@
2
2
  /// JAudioRoutesInfo.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -20,11 +20,11 @@ namespace margelo::nitro::qusaieilouti99_callmanager {
20
20
  using namespace facebook;
21
21
 
22
22
  /**
23
- * The C++ JNI bridge between the C++ struct "AudioRoutesInfo" and the the Kotlin data class "AudioRoutesInfo".
23
+ * The C++ JNI bridge between the C++ struct "AudioRoutesInfo" and the Kotlin data class "AudioRoutesInfo".
24
24
  */
25
25
  struct JAudioRoutesInfo final: public jni::JavaClass<JAudioRoutesInfo> {
26
26
  public:
27
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/qusaieilouti99/callmanager/AudioRoutesInfo;";
27
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/qusaieilouti99/callmanager/AudioRoutesInfo;";
28
28
 
29
29
  public:
30
30
  /**
@@ -39,16 +39,16 @@ namespace margelo::nitro::qusaieilouti99_callmanager {
39
39
  static const auto fieldCurrentRoute = clazz->getField<jni::JString>("currentRoute");
40
40
  jni::local_ref<jni::JString> currentRoute = this->getFieldValue(fieldCurrentRoute);
41
41
  return AudioRoutesInfo(
42
- [&]() {
43
- size_t __size = devices->size();
42
+ [&](auto&& __input) {
43
+ size_t __size = __input->size();
44
44
  std::vector<StringHolder> __vector;
45
45
  __vector.reserve(__size);
46
46
  for (size_t __i = 0; __i < __size; __i++) {
47
- auto __element = devices->getElement(__i);
47
+ auto __element = __input->getElement(__i);
48
48
  __vector.push_back(__element->toCpp());
49
49
  }
50
50
  return __vector;
51
- }(),
51
+ }(devices),
52
52
  currentRoute->toStdString()
53
53
  );
54
54
  }
@@ -64,15 +64,16 @@ namespace margelo::nitro::qusaieilouti99_callmanager {
64
64
  static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
65
65
  return create(
66
66
  clazz,
67
- [&]() {
68
- size_t __size = value.devices.size();
67
+ [&](auto&& __input) {
68
+ size_t __size = __input.size();
69
69
  jni::local_ref<jni::JArrayClass<JStringHolder>> __array = jni::JArrayClass<JStringHolder>::newArray(__size);
70
70
  for (size_t __i = 0; __i < __size; __i++) {
71
- const auto& __element = value.devices[__i];
72
- __array->setElement(__i, *JStringHolder::fromCpp(__element));
71
+ const auto& __element = __input[__i];
72
+ auto __elementJni = JStringHolder::fromCpp(__element);
73
+ __array->setElement(__i, *__elementJni);
73
74
  }
74
75
  return __array;
75
- }(),
76
+ }(value.devices),
76
77
  jni::make_jstring(value.currentRoute)
77
78
  );
78
79
  }
@@ -2,7 +2,7 @@
2
2
  /// JCallEventType.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -15,11 +15,11 @@ namespace margelo::nitro::qusaieilouti99_callmanager {
15
15
  using namespace facebook;
16
16
 
17
17
  /**
18
- * The C++ JNI bridge between the C++ enum "CallEventType" and the the Kotlin enum "CallEventType".
18
+ * The C++ JNI bridge between the C++ enum "CallEventType" and the Kotlin enum "CallEventType".
19
19
  */
20
20
  struct JCallEventType final: public jni::JavaClass<JCallEventType> {
21
21
  public:
22
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/qusaieilouti99/callmanager/CallEventType;";
22
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/qusaieilouti99/callmanager/CallEventType;";
23
23
 
24
24
  public:
25
25
  /**
@@ -41,46 +41,45 @@ namespace margelo::nitro::qusaieilouti99_callmanager {
41
41
  [[maybe_unused]]
42
42
  static jni::alias_ref<JCallEventType> fromCpp(CallEventType value) {
43
43
  static const auto clazz = javaClassStatic();
44
- static const auto fieldCALL_STATE_CHANGED = clazz->getStaticField<JCallEventType>("CALL_STATE_CHANGED");
45
- static const auto fieldAUDIO_DEVICES_CHANGED = clazz->getStaticField<JCallEventType>("AUDIO_DEVICES_CHANGED");
46
- static const auto fieldAUDIO_ROUTE_CHANGED = clazz->getStaticField<JCallEventType>("AUDIO_ROUTE_CHANGED");
47
- static const auto fieldCALL_HELD = clazz->getStaticField<JCallEventType>("CALL_HELD");
48
- static const auto fieldCALL_UNHELD = clazz->getStaticField<JCallEventType>("CALL_UNHELD");
49
- static const auto fieldCALL_UNHOLD_FAILED = clazz->getStaticField<JCallEventType>("CALL_UNHOLD_FAILED");
50
- static const auto fieldCALL_MUTED = clazz->getStaticField<JCallEventType>("CALL_MUTED");
51
- static const auto fieldCALL_UNMUTED = clazz->getStaticField<JCallEventType>("CALL_UNMUTED");
52
- static const auto fieldCALL_ANSWERED = clazz->getStaticField<JCallEventType>("CALL_ANSWERED");
53
- static const auto fieldOUTGOING_CALL_ANSWERED = clazz->getStaticField<JCallEventType>("OUTGOING_CALL_ANSWERED");
54
- static const auto fieldCALL_REJECTED = clazz->getStaticField<JCallEventType>("CALL_REJECTED");
55
- static const auto fieldCALL_ENDED = clazz->getStaticField<JCallEventType>("CALL_ENDED");
56
- static const auto fieldDTMF_TONE = clazz->getStaticField<JCallEventType>("DTMF_TONE");
57
-
58
44
  switch (value) {
59
45
  case CallEventType::CALL_STATE_CHANGED:
46
+ static const auto fieldCALL_STATE_CHANGED = clazz->getStaticField<JCallEventType>("CALL_STATE_CHANGED");
60
47
  return clazz->getStaticFieldValue(fieldCALL_STATE_CHANGED);
61
48
  case CallEventType::AUDIO_DEVICES_CHANGED:
49
+ static const auto fieldAUDIO_DEVICES_CHANGED = clazz->getStaticField<JCallEventType>("AUDIO_DEVICES_CHANGED");
62
50
  return clazz->getStaticFieldValue(fieldAUDIO_DEVICES_CHANGED);
63
51
  case CallEventType::AUDIO_ROUTE_CHANGED:
52
+ static const auto fieldAUDIO_ROUTE_CHANGED = clazz->getStaticField<JCallEventType>("AUDIO_ROUTE_CHANGED");
64
53
  return clazz->getStaticFieldValue(fieldAUDIO_ROUTE_CHANGED);
65
54
  case CallEventType::CALL_HELD:
55
+ static const auto fieldCALL_HELD = clazz->getStaticField<JCallEventType>("CALL_HELD");
66
56
  return clazz->getStaticFieldValue(fieldCALL_HELD);
67
57
  case CallEventType::CALL_UNHELD:
58
+ static const auto fieldCALL_UNHELD = clazz->getStaticField<JCallEventType>("CALL_UNHELD");
68
59
  return clazz->getStaticFieldValue(fieldCALL_UNHELD);
69
60
  case CallEventType::CALL_UNHOLD_FAILED:
61
+ static const auto fieldCALL_UNHOLD_FAILED = clazz->getStaticField<JCallEventType>("CALL_UNHOLD_FAILED");
70
62
  return clazz->getStaticFieldValue(fieldCALL_UNHOLD_FAILED);
71
63
  case CallEventType::CALL_MUTED:
64
+ static const auto fieldCALL_MUTED = clazz->getStaticField<JCallEventType>("CALL_MUTED");
72
65
  return clazz->getStaticFieldValue(fieldCALL_MUTED);
73
66
  case CallEventType::CALL_UNMUTED:
67
+ static const auto fieldCALL_UNMUTED = clazz->getStaticField<JCallEventType>("CALL_UNMUTED");
74
68
  return clazz->getStaticFieldValue(fieldCALL_UNMUTED);
75
69
  case CallEventType::CALL_ANSWERED:
70
+ static const auto fieldCALL_ANSWERED = clazz->getStaticField<JCallEventType>("CALL_ANSWERED");
76
71
  return clazz->getStaticFieldValue(fieldCALL_ANSWERED);
77
72
  case CallEventType::OUTGOING_CALL_ANSWERED:
73
+ static const auto fieldOUTGOING_CALL_ANSWERED = clazz->getStaticField<JCallEventType>("OUTGOING_CALL_ANSWERED");
78
74
  return clazz->getStaticFieldValue(fieldOUTGOING_CALL_ANSWERED);
79
75
  case CallEventType::CALL_REJECTED:
76
+ static const auto fieldCALL_REJECTED = clazz->getStaticField<JCallEventType>("CALL_REJECTED");
80
77
  return clazz->getStaticFieldValue(fieldCALL_REJECTED);
81
78
  case CallEventType::CALL_ENDED:
79
+ static const auto fieldCALL_ENDED = clazz->getStaticField<JCallEventType>("CALL_ENDED");
82
80
  return clazz->getStaticFieldValue(fieldCALL_ENDED);
83
81
  case CallEventType::DTMF_TONE:
82
+ static const auto fieldDTMF_TONE = clazz->getStaticField<JCallEventType>("DTMF_TONE");
84
83
  return clazz->getStaticFieldValue(fieldDTMF_TONE);
85
84
  default:
86
85
  std::string stringValue = std::to_string(static_cast<int>(value));
@@ -2,7 +2,7 @@
2
2
  /// JFunc_void_CallEventType_std__string.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -13,6 +13,7 @@
13
13
  #include "CallEventType.hpp"
14
14
  #include <string>
15
15
  #include <functional>
16
+ #include <NitroModules/JNICallable.hpp>
16
17
  #include "JCallEventType.hpp"
17
18
 
18
19
  namespace margelo::nitro::qusaieilouti99_callmanager {
@@ -25,7 +26,7 @@ namespace margelo::nitro::qusaieilouti99_callmanager {
25
26
  */
26
27
  struct JFunc_void_CallEventType_std__string: public jni::JavaClass<JFunc_void_CallEventType_std__string> {
27
28
  public:
28
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/qusaieilouti99/callmanager/Func_void_CallEventType_std__string;";
29
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/qusaieilouti99/callmanager/Func_void_CallEventType_std__string;";
29
30
 
30
31
  public:
31
32
  /**
@@ -40,7 +41,7 @@ namespace margelo::nitro::qusaieilouti99_callmanager {
40
41
  /**
41
42
  * An implementation of Func_void_CallEventType_std__string that is backed by a C++ implementation (using `std::function<...>`)
42
43
  */
43
- struct JFunc_void_CallEventType_std__string_cxx final: public jni::HybridClass<JFunc_void_CallEventType_std__string_cxx, JFunc_void_CallEventType_std__string> {
44
+ class JFunc_void_CallEventType_std__string_cxx final: public jni::HybridClass<JFunc_void_CallEventType_std__string_cxx, JFunc_void_CallEventType_std__string> {
44
45
  public:
45
46
  static jni::local_ref<JFunc_void_CallEventType_std__string::javaobject> fromCpp(const std::function<void(CallEventType /* event */, const std::string& /* payload */)>& func) {
46
47
  return JFunc_void_CallEventType_std__string_cxx::newObjectCxxArgs(func);
@@ -61,7 +62,7 @@ namespace margelo::nitro::qusaieilouti99_callmanager {
61
62
  }
62
63
 
63
64
  public:
64
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/qusaieilouti99/callmanager/Func_void_CallEventType_std__string_cxx;";
65
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/qusaieilouti99/callmanager/Func_void_CallEventType_std__string_cxx;";
65
66
  static void registerNatives() {
66
67
  registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_CallEventType_std__string_cxx::invoke_cxx)});
67
68
  }
@@ -2,7 +2,7 @@
2
2
  /// JFunc_void_std__string.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -12,6 +12,7 @@
12
12
 
13
13
  #include <string>
14
14
  #include <functional>
15
+ #include <NitroModules/JNICallable.hpp>
15
16
 
16
17
  namespace margelo::nitro::qusaieilouti99_callmanager {
17
18
 
@@ -23,7 +24,7 @@ namespace margelo::nitro::qusaieilouti99_callmanager {
23
24
  */
24
25
  struct JFunc_void_std__string: public jni::JavaClass<JFunc_void_std__string> {
25
26
  public:
26
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/qusaieilouti99/callmanager/Func_void_std__string;";
27
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/qusaieilouti99/callmanager/Func_void_std__string;";
27
28
 
28
29
  public:
29
30
  /**
@@ -38,7 +39,7 @@ namespace margelo::nitro::qusaieilouti99_callmanager {
38
39
  /**
39
40
  * An implementation of Func_void_std__string that is backed by a C++ implementation (using `std::function<...>`)
40
41
  */
41
- struct JFunc_void_std__string_cxx final: public jni::HybridClass<JFunc_void_std__string_cxx, JFunc_void_std__string> {
42
+ class JFunc_void_std__string_cxx final: public jni::HybridClass<JFunc_void_std__string_cxx, JFunc_void_std__string> {
42
43
  public:
43
44
  static jni::local_ref<JFunc_void_std__string::javaobject> fromCpp(const std::function<void(const std::string& /* payload */)>& func) {
44
45
  return JFunc_void_std__string_cxx::newObjectCxxArgs(func);
@@ -59,7 +60,7 @@ namespace margelo::nitro::qusaieilouti99_callmanager {
59
60
  }
60
61
 
61
62
  public:
62
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/qusaieilouti99/callmanager/Func_void_std__string_cxx;";
63
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/qusaieilouti99/callmanager/Func_void_std__string_cxx;";
63
64
  static void registerNatives() {
64
65
  registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_std__string_cxx::invoke_cxx)});
65
66
  }
@@ -2,7 +2,7 @@
2
2
  /// JHybridCallManagerSpec.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "JHybridCallManagerSpec.hpp"
@@ -24,35 +24,37 @@ namespace margelo::nitro::qusaieilouti99_callmanager { enum class CallEventType;
24
24
  #include "CallEventType.hpp"
25
25
  #include <functional>
26
26
  #include "JFunc_void_CallEventType_std__string.hpp"
27
+ #include <NitroModules/JNICallable.hpp>
27
28
  #include "JCallEventType.hpp"
28
29
  #include "JFunc_void_std__string.hpp"
29
30
 
30
31
  namespace margelo::nitro::qusaieilouti99_callmanager {
31
32
 
32
- jni::local_ref<JHybridCallManagerSpec::jhybriddata> JHybridCallManagerSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
33
- return makeCxxInstance(jThis);
34
- }
35
-
36
- void JHybridCallManagerSpec::registerNatives() {
37
- registerHybrid({
38
- makeNativeMethod("initHybrid", JHybridCallManagerSpec::initHybrid),
39
- });
33
+ std::shared_ptr<JHybridCallManagerSpec> JHybridCallManagerSpec::JavaPart::getJHybridCallManagerSpec() {
34
+ auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
35
+ auto castHybridObject = std::dynamic_pointer_cast<JHybridCallManagerSpec>(hybridObject);
36
+ if (castHybridObject == nullptr) [[unlikely]] {
37
+ throw std::runtime_error("Failed to downcast JHybridObject to JHybridCallManagerSpec!");
38
+ }
39
+ return castHybridObject;
40
40
  }
41
41
 
42
- size_t JHybridCallManagerSpec::getExternalMemorySize() noexcept {
43
- static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
44
- return method(_javaPart);
42
+ jni::local_ref<JHybridCallManagerSpec::CxxPart::jhybriddata> JHybridCallManagerSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
43
+ return makeCxxInstance(jThis);
45
44
  }
46
45
 
47
- void JHybridCallManagerSpec::dispose() noexcept {
48
- static const auto method = javaClassStatic()->getMethod<void()>("dispose");
49
- method(_javaPart);
46
+ std::shared_ptr<JHybridObject> JHybridCallManagerSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
47
+ auto castJavaPart = jni::dynamic_ref_cast<JHybridCallManagerSpec::JavaPart>(javaPart);
48
+ if (castJavaPart == nullptr) [[unlikely]] {
49
+ throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridCallManagerSpec::JavaPart!");
50
+ }
51
+ return std::make_shared<JHybridCallManagerSpec>(castJavaPart);
50
52
  }
51
53
 
52
- std::string JHybridCallManagerSpec::toString() {
53
- static const auto method = javaClassStatic()->getMethod<jni::JString()>("toString");
54
- auto javaString = method(_javaPart);
55
- return javaString->toStdString();
54
+ void JHybridCallManagerSpec::CxxPart::registerNatives() {
55
+ registerHybrid({
56
+ makeNativeMethod("initHybrid", JHybridCallManagerSpec::CxxPart::initHybrid),
57
+ });
56
58
  }
57
59
 
58
60
  // Properties
@@ -60,86 +62,86 @@ namespace margelo::nitro::qusaieilouti99_callmanager {
60
62
 
61
63
  // Methods
62
64
  void JHybridCallManagerSpec::endCall(const std::string& callId) {
63
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* callId */)>("endCall");
65
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* callId */)>("endCall");
64
66
  method(_javaPart, jni::make_jstring(callId));
65
67
  }
66
68
  void JHybridCallManagerSpec::silenceRingtone() {
67
- static const auto method = javaClassStatic()->getMethod<void()>("silenceRingtone");
69
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void()>("silenceRingtone");
68
70
  method(_javaPart);
69
71
  }
70
72
  void JHybridCallManagerSpec::callAnswered(const std::string& callId) {
71
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* callId */)>("callAnswered");
73
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* callId */)>("callAnswered");
72
74
  method(_javaPart, jni::make_jstring(callId));
73
75
  }
74
76
  AudioRoutesInfo JHybridCallManagerSpec::getAudioDevices() {
75
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JAudioRoutesInfo>()>("getAudioDevices");
77
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JAudioRoutesInfo>()>("getAudioDevices");
76
78
  auto __result = method(_javaPart);
77
79
  return __result->toCpp();
78
80
  }
79
81
  void JHybridCallManagerSpec::setAudioRoute(const std::string& route) {
80
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* route */)>("setAudioRoute");
82
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* route */)>("setAudioRoute");
81
83
  method(_javaPart, jni::make_jstring(route));
82
84
  }
83
85
  void JHybridCallManagerSpec::keepScreenAwake(bool keepAwake) {
84
- static const auto method = javaClassStatic()->getMethod<void(jboolean /* keepAwake */)>("keepScreenAwake");
86
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jboolean /* keepAwake */)>("keepScreenAwake");
85
87
  method(_javaPart, keepAwake);
86
88
  }
87
89
  void JHybridCallManagerSpec::endAllCalls() {
88
- static const auto method = javaClassStatic()->getMethod<void()>("endAllCalls");
90
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void()>("endAllCalls");
89
91
  method(_javaPart);
90
92
  }
91
93
  void JHybridCallManagerSpec::startOutgoingCall(const std::string& callId, const std::string& callType, const std::string& targetName, const std::optional<std::string>& metadata) {
92
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* callId */, jni::alias_ref<jni::JString> /* callType */, jni::alias_ref<jni::JString> /* targetName */, jni::alias_ref<jni::JString> /* metadata */)>("startOutgoingCall");
94
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* callId */, jni::alias_ref<jni::JString> /* callType */, jni::alias_ref<jni::JString> /* targetName */, jni::alias_ref<jni::JString> /* metadata */)>("startOutgoingCall");
93
95
  method(_javaPart, jni::make_jstring(callId), jni::make_jstring(callType), jni::make_jstring(targetName), metadata.has_value() ? jni::make_jstring(metadata.value()) : nullptr);
94
96
  }
95
97
  void JHybridCallManagerSpec::startCall(const std::string& callId, const std::string& callType, const std::string& targetName, const std::optional<std::string>& metadata) {
96
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* callId */, jni::alias_ref<jni::JString> /* callType */, jni::alias_ref<jni::JString> /* targetName */, jni::alias_ref<jni::JString> /* metadata */)>("startCall");
98
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* callId */, jni::alias_ref<jni::JString> /* callType */, jni::alias_ref<jni::JString> /* targetName */, jni::alias_ref<jni::JString> /* metadata */)>("startCall");
97
99
  method(_javaPart, jni::make_jstring(callId), jni::make_jstring(callType), jni::make_jstring(targetName), metadata.has_value() ? jni::make_jstring(metadata.value()) : nullptr);
98
100
  }
99
101
  void JHybridCallManagerSpec::setOnHold(const std::string& callId, bool onHold) {
100
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* callId */, jboolean /* onHold */)>("setOnHold");
102
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* callId */, jboolean /* onHold */)>("setOnHold");
101
103
  method(_javaPart, jni::make_jstring(callId), onHold);
102
104
  }
103
105
  void JHybridCallManagerSpec::setMuted(const std::string& callId, bool muted) {
104
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* callId */, jboolean /* muted */)>("setMuted");
106
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* callId */, jboolean /* muted */)>("setMuted");
105
107
  method(_javaPart, jni::make_jstring(callId), muted);
106
108
  }
107
109
  void JHybridCallManagerSpec::updateDisplayCallInformation(const std::string& callId, const std::string& callerName) {
108
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* callId */, jni::alias_ref<jni::JString> /* callerName */)>("updateDisplayCallInformation");
110
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* callId */, jni::alias_ref<jni::JString> /* callerName */)>("updateDisplayCallInformation");
109
111
  method(_javaPart, jni::make_jstring(callId), jni::make_jstring(callerName));
110
112
  }
111
113
  void JHybridCallManagerSpec::reportIncomingCall(const std::string& callId, const std::string& callType, const std::string& targetName, const std::optional<std::string>& metadata, const std::optional<std::string>& token, const std::optional<std::string>& rejectEndpoint) {
112
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* callId */, jni::alias_ref<jni::JString> /* callType */, jni::alias_ref<jni::JString> /* targetName */, jni::alias_ref<jni::JString> /* metadata */, jni::alias_ref<jni::JString> /* token */, jni::alias_ref<jni::JString> /* rejectEndpoint */)>("reportIncomingCall");
114
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* callId */, jni::alias_ref<jni::JString> /* callType */, jni::alias_ref<jni::JString> /* targetName */, jni::alias_ref<jni::JString> /* metadata */, jni::alias_ref<jni::JString> /* token */, jni::alias_ref<jni::JString> /* rejectEndpoint */)>("reportIncomingCall");
113
115
  method(_javaPart, jni::make_jstring(callId), jni::make_jstring(callType), jni::make_jstring(targetName), metadata.has_value() ? jni::make_jstring(metadata.value()) : nullptr, token.has_value() ? jni::make_jstring(token.value()) : nullptr, rejectEndpoint.has_value() ? jni::make_jstring(rejectEndpoint.value()) : nullptr);
114
116
  }
115
117
  void JHybridCallManagerSpec::addCallListener(const std::function<void(CallEventType /* event */, const std::string& /* payload */)>& listener) {
116
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_CallEventType_std__string::javaobject> /* listener */)>("addCallListener_cxx");
118
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_CallEventType_std__string::javaobject> /* listener */)>("addCallListener_cxx");
117
119
  method(_javaPart, JFunc_void_CallEventType_std__string_cxx::fromCpp(listener));
118
120
  }
119
121
  void JHybridCallManagerSpec::removeCallListener() {
120
- static const auto method = javaClassStatic()->getMethod<void()>("removeCallListener");
122
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void()>("removeCallListener");
121
123
  method(_javaPart);
122
124
  }
123
125
  void JHybridCallManagerSpec::registerVoIPTokenListener(const std::function<void(const std::string& /* payload */)>& listener) {
124
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__string::javaobject> /* listener */)>("registerVoIPTokenListener_cxx");
126
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_std__string::javaobject> /* listener */)>("registerVoIPTokenListener_cxx");
125
127
  method(_javaPart, JFunc_void_std__string_cxx::fromCpp(listener));
126
128
  }
127
129
  void JHybridCallManagerSpec::removeVoipTokenListener() {
128
- static const auto method = javaClassStatic()->getMethod<void()>("removeVoipTokenListener");
130
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void()>("removeVoipTokenListener");
129
131
  method(_javaPart);
130
132
  }
131
133
  bool JHybridCallManagerSpec::hasActiveCall() {
132
- static const auto method = javaClassStatic()->getMethod<jboolean()>("hasActiveCall");
134
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean()>("hasActiveCall");
133
135
  auto __result = method(_javaPart);
134
136
  return static_cast<bool>(__result);
135
137
  }
136
138
  bool JHybridCallManagerSpec::requestOverlayPermissionAndroid() {
137
- static const auto method = javaClassStatic()->getMethod<jboolean()>("requestOverlayPermissionAndroid");
139
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean()>("requestOverlayPermissionAndroid");
138
140
  auto __result = method(_javaPart);
139
141
  return static_cast<bool>(__result);
140
142
  }
141
143
  bool JHybridCallManagerSpec::hasOverlayPermissionAndroid() {
142
- static const auto method = javaClassStatic()->getMethod<jboolean()>("hasOverlayPermissionAndroid");
144
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean()>("hasOverlayPermissionAndroid");
143
145
  auto __result = method(_javaPart);
144
146
  return static_cast<bool>(__result);
145
147
  }
@@ -2,7 +2,7 @@
2
2
  /// HybridCallManagerSpec.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -18,33 +18,33 @@ namespace margelo::nitro::qusaieilouti99_callmanager {
18
18
 
19
19
  using namespace facebook;
20
20
 
21
- class JHybridCallManagerSpec: public jni::HybridClass<JHybridCallManagerSpec, JHybridObject>,
22
- public virtual HybridCallManagerSpec {
21
+ class JHybridCallManagerSpec: public virtual HybridCallManagerSpec, public virtual JHybridObject {
23
22
  public:
24
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/qusaieilouti99/callmanager/HybridCallManagerSpec;";
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 JHybridCallManagerSpec(jni::alias_ref<jhybridobject> jThis) :
31
- HybridObject(HybridCallManagerSpec::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/qusaieilouti99/callmanager/HybridCallManagerSpec;";
25
+ std::shared_ptr<JHybridCallManagerSpec> getJHybridCallManagerSpec();
26
+ };
27
+ struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
28
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/qusaieilouti99/callmanager/HybridCallManagerSpec$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 JHybridCallManagerSpec(const jni::local_ref<JHybridCallManagerSpec::JavaPart>& javaPart):
38
+ HybridObject(HybridCallManagerSpec::TAG),
39
+ JHybridObject(javaPart),
40
+ _javaPart(jni::make_global(javaPart)) {}
36
41
  ~JHybridCallManagerSpec() 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
- void dispose() noexcept override;
44
- std::string toString() override;
45
-
46
- public:
47
- inline const jni::global_ref<JHybridCallManagerSpec::javaobject>& getJavaPart() const noexcept {
47
+ inline const jni::global_ref<JHybridCallManagerSpec::JavaPart>& getJavaPart() const noexcept {
48
48
  return _javaPart;
49
49
  }
50
50
 
@@ -76,9 +76,7 @@ namespace margelo::nitro::qusaieilouti99_callmanager {
76
76
  bool hasOverlayPermissionAndroid() override;
77
77
 
78
78
  private:
79
- friend HybridBase;
80
- using HybridBase::HybridBase;
81
- jni::global_ref<JHybridCallManagerSpec::javaobject> _javaPart;
79
+ jni::global_ref<JHybridCallManagerSpec::JavaPart> _javaPart;
82
80
  };
83
81
 
84
82
  } // namespace margelo::nitro::qusaieilouti99_callmanager
@@ -2,7 +2,7 @@
2
2
  /// JStringHolder.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -17,11 +17,11 @@ namespace margelo::nitro::qusaieilouti99_callmanager {
17
17
  using namespace facebook;
18
18
 
19
19
  /**
20
- * The C++ JNI bridge between the C++ struct "StringHolder" and the the Kotlin data class "StringHolder".
20
+ * The C++ JNI bridge between the C++ struct "StringHolder" and the Kotlin data class "StringHolder".
21
21
  */
22
22
  struct JStringHolder final: public jni::JavaClass<JStringHolder> {
23
23
  public:
24
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/qusaieilouti99/callmanager/StringHolder;";
24
+ static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/qusaieilouti99/callmanager/StringHolder;";
25
25
 
26
26
  public:
27
27
  /**
@@ -2,13 +2,14 @@
2
2
  /// AudioRoutesInfo.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  package com.margelo.nitro.qusaieilouti99.callmanager
9
9
 
10
10
  import androidx.annotation.Keep
11
11
  import com.facebook.proguard.annotations.DoNotStrip
12
+ import java.util.Objects
12
13
 
13
14
 
14
15
  /**
@@ -26,7 +27,21 @@ data class AudioRoutesInfo(
26
27
  ) {
27
28
  /* primary constructor */
28
29
 
29
- private companion object {
30
+ override fun equals(other: Any?): Boolean {
31
+ if (this === other) return true
32
+ if (other !is AudioRoutesInfo) return false
33
+ return Objects.deepEquals(this.devices, other.devices)
34
+ && Objects.deepEquals(this.currentRoute, other.currentRoute)
35
+ }
36
+
37
+ override fun hashCode(): Int {
38
+ return arrayOf<Any?>(
39
+ devices,
40
+ currentRoute
41
+ ).contentDeepHashCode()
42
+ }
43
+
44
+ companion object {
30
45
  /**
31
46
  * Constructor called from C++
32
47
  */
@@ -2,7 +2,7 @@
2
2
  /// CallEventType.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  package com.margelo.nitro.qusaieilouti99.callmanager
@@ -29,4 +29,6 @@ enum class CallEventType(@DoNotStrip @Keep val value: Int) {
29
29
  CALL_REJECTED(10),
30
30
  CALL_ENDED(11),
31
31
  DTMF_TONE(12);
32
+
33
+ companion object
32
34
  }
@@ -2,7 +2,7 @@
2
2
  /// Func_void_CallEventType_std__string.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  package com.margelo.nitro.qusaieilouti99.callmanager
@@ -2,7 +2,7 @@
2
2
  /// Func_void_std__string.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2026 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  package com.margelo.nitro.qusaieilouti99.callmanager