react-native-nitro-geolocation 1.0.0 → 1.1.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 (101) hide show
  1. package/android/src/main/cpp/cpp-adapter.cpp +4 -1
  2. package/nitrogen/generated/android/c++/JAuthorizationLevel.hpp +1 -1
  3. package/nitrogen/generated/android/c++/JAuthorizationLevelInternal.hpp +1 -1
  4. package/nitrogen/generated/android/c++/JFunc_void.hpp +1 -1
  5. package/nitrogen/generated/android/c++/JFunc_void_GeolocationError.hpp +1 -1
  6. package/nitrogen/generated/android/c++/JFunc_void_GeolocationResponse.hpp +1 -1
  7. package/nitrogen/generated/android/c++/JFunc_void_LocationError.hpp +1 -1
  8. package/nitrogen/generated/android/c++/JGeolocationCoordinates.hpp +1 -1
  9. package/nitrogen/generated/android/c++/JGeolocationError.hpp +1 -1
  10. package/nitrogen/generated/android/c++/JGeolocationOptions.hpp +1 -1
  11. package/nitrogen/generated/android/c++/JGeolocationResponse.hpp +1 -1
  12. package/nitrogen/generated/android/c++/JHybridNitroGeolocationCompatSpec.cpp +26 -25
  13. package/nitrogen/generated/android/c++/JHybridNitroGeolocationCompatSpec.hpp +20 -22
  14. package/nitrogen/generated/android/c++/JHybridNitroGeolocationSpec.cpp +27 -26
  15. package/nitrogen/generated/android/c++/JHybridNitroGeolocationSpec.hpp +20 -22
  16. package/nitrogen/generated/android/c++/JLocationError.hpp +1 -1
  17. package/nitrogen/generated/android/c++/JLocationProvider.hpp +1 -1
  18. package/nitrogen/generated/android/c++/JLocationProviderInternal.hpp +1 -1
  19. package/nitrogen/generated/android/c++/JLocationRequestOptions.hpp +1 -1
  20. package/nitrogen/generated/android/c++/JModernGeolocationConfiguration.hpp +1 -1
  21. package/nitrogen/generated/android/c++/JNullableDouble.cpp +1 -1
  22. package/nitrogen/generated/android/c++/JNullableDouble.hpp +1 -1
  23. package/nitrogen/generated/android/c++/JPermissionStatus.hpp +1 -1
  24. package/nitrogen/generated/android/c++/JRNConfigurationInternal.hpp +1 -1
  25. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/AuthorizationLevel.kt +1 -1
  26. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/AuthorizationLevelInternal.kt +1 -1
  27. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/Func_void.kt +1 -1
  28. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/Func_void_GeolocationError.kt +1 -1
  29. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/Func_void_GeolocationResponse.kt +1 -1
  30. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/Func_void_LocationError.kt +1 -1
  31. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/GeolocationCoordinates.kt +1 -1
  32. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/GeolocationError.kt +1 -1
  33. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/GeolocationOptions.kt +1 -1
  34. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/GeolocationResponse.kt +1 -1
  35. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/HybridNitroGeolocationCompatSpec.kt +16 -19
  36. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/HybridNitroGeolocationSpec.kt +16 -19
  37. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/LocationError.kt +1 -1
  38. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/LocationProvider.kt +1 -1
  39. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/LocationProviderInternal.kt +1 -1
  40. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/LocationRequestOptions.kt +1 -1
  41. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/ModernGeolocationConfiguration.kt +1 -1
  42. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/NullableDouble.kt +1 -7
  43. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/PermissionStatus.kt +1 -1
  44. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/RNConfigurationInternal.kt +1 -1
  45. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/nitrogeolocationOnLoad.kt +1 -1
  46. package/nitrogen/generated/android/nitrogeolocation+autolinking.cmake +1 -1
  47. package/nitrogen/generated/android/nitrogeolocation+autolinking.gradle +1 -1
  48. package/nitrogen/generated/android/nitrogeolocationOnLoad.cpp +46 -30
  49. package/nitrogen/generated/android/nitrogeolocationOnLoad.hpp +14 -5
  50. package/nitrogen/generated/ios/NitroGeolocation+autolinking.rb +1 -1
  51. package/nitrogen/generated/ios/NitroGeolocation-Swift-Cxx-Bridge.cpp +1 -1
  52. package/nitrogen/generated/ios/NitroGeolocation-Swift-Cxx-Bridge.hpp +13 -13
  53. package/nitrogen/generated/ios/NitroGeolocation-Swift-Cxx-Umbrella.hpp +1 -1
  54. package/nitrogen/generated/ios/NitroGeolocationAutolinking.mm +1 -1
  55. package/nitrogen/generated/ios/NitroGeolocationAutolinking.swift +13 -15
  56. package/nitrogen/generated/ios/c++/HybridNitroGeolocationCompatSpecSwift.cpp +1 -1
  57. package/nitrogen/generated/ios/c++/HybridNitroGeolocationCompatSpecSwift.hpp +7 -1
  58. package/nitrogen/generated/ios/c++/HybridNitroGeolocationSpecSwift.cpp +1 -1
  59. package/nitrogen/generated/ios/c++/HybridNitroGeolocationSpecSwift.hpp +7 -1
  60. package/nitrogen/generated/ios/swift/AuthorizationLevel.swift +1 -1
  61. package/nitrogen/generated/ios/swift/AuthorizationLevelInternal.swift +1 -1
  62. package/nitrogen/generated/ios/swift/Func_void.swift +1 -2
  63. package/nitrogen/generated/ios/swift/Func_void_GeolocationError.swift +1 -2
  64. package/nitrogen/generated/ios/swift/Func_void_GeolocationResponse.swift +1 -2
  65. package/nitrogen/generated/ios/swift/Func_void_LocationError.swift +1 -2
  66. package/nitrogen/generated/ios/swift/Func_void_PermissionStatus.swift +1 -2
  67. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +1 -2
  68. package/nitrogen/generated/ios/swift/GeolocationCoordinates.swift +1 -2
  69. package/nitrogen/generated/ios/swift/GeolocationError.swift +1 -2
  70. package/nitrogen/generated/ios/swift/GeolocationOptions.swift +41 -7
  71. package/nitrogen/generated/ios/swift/GeolocationResponse.swift +1 -2
  72. package/nitrogen/generated/ios/swift/HybridNitroGeolocationCompatSpec.swift +3 -4
  73. package/nitrogen/generated/ios/swift/HybridNitroGeolocationCompatSpec_cxx.swift +9 -2
  74. package/nitrogen/generated/ios/swift/HybridNitroGeolocationSpec.swift +3 -4
  75. package/nitrogen/generated/ios/swift/HybridNitroGeolocationSpec_cxx.swift +9 -2
  76. package/nitrogen/generated/ios/swift/LocationError.swift +1 -2
  77. package/nitrogen/generated/ios/swift/LocationProvider.swift +1 -1
  78. package/nitrogen/generated/ios/swift/LocationProviderInternal.swift +1 -1
  79. package/nitrogen/generated/ios/swift/LocationRequestOptions.swift +41 -7
  80. package/nitrogen/generated/ios/swift/ModernGeolocationConfiguration.swift +1 -2
  81. package/nitrogen/generated/ios/swift/NullableDouble.swift +1 -1
  82. package/nitrogen/generated/ios/swift/PermissionStatus.swift +1 -1
  83. package/nitrogen/generated/ios/swift/RNConfigurationInternal.swift +1 -2
  84. package/nitrogen/generated/shared/c++/AuthorizationLevel.hpp +1 -1
  85. package/nitrogen/generated/shared/c++/AuthorizationLevelInternal.hpp +1 -1
  86. package/nitrogen/generated/shared/c++/GeolocationCoordinates.hpp +1 -1
  87. package/nitrogen/generated/shared/c++/GeolocationError.hpp +1 -1
  88. package/nitrogen/generated/shared/c++/GeolocationOptions.hpp +1 -1
  89. package/nitrogen/generated/shared/c++/GeolocationResponse.hpp +1 -1
  90. package/nitrogen/generated/shared/c++/HybridNitroGeolocationCompatSpec.cpp +1 -1
  91. package/nitrogen/generated/shared/c++/HybridNitroGeolocationCompatSpec.hpp +1 -1
  92. package/nitrogen/generated/shared/c++/HybridNitroGeolocationSpec.cpp +1 -1
  93. package/nitrogen/generated/shared/c++/HybridNitroGeolocationSpec.hpp +1 -1
  94. package/nitrogen/generated/shared/c++/LocationError.hpp +1 -1
  95. package/nitrogen/generated/shared/c++/LocationProvider.hpp +1 -1
  96. package/nitrogen/generated/shared/c++/LocationProviderInternal.hpp +1 -1
  97. package/nitrogen/generated/shared/c++/LocationRequestOptions.hpp +1 -1
  98. package/nitrogen/generated/shared/c++/ModernGeolocationConfiguration.hpp +1 -1
  99. package/nitrogen/generated/shared/c++/PermissionStatus.hpp +1 -1
  100. package/nitrogen/generated/shared/c++/RNConfigurationInternal.hpp +1 -1
  101. package/package.json +7 -4
@@ -1,6 +1,9 @@
1
1
  #include <jni.h>
2
+ #include <fbjni/fbjni.h>
2
3
  #include "nitrogeolocationOnLoad.hpp"
3
4
 
4
5
  JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) {
5
- return margelo::nitro::nitrogeolocation::initialize(vm);
6
+ return facebook::jni::initialize(vm, [] {
7
+ margelo::nitro::nitrogeolocation::registerAllNatives();
8
+ });
6
9
  }
@@ -2,7 +2,7 @@
2
2
  /// JAuthorizationLevel.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// JAuthorizationLevelInternal.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// JFunc_void.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// JFunc_void_GeolocationError.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// JFunc_void_GeolocationResponse.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// JFunc_void_LocationError.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// JGeolocationCoordinates.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// JGeolocationError.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// JGeolocationOptions.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// JGeolocationResponse.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// JHybridNitroGeolocationCompatSpec.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "JHybridNitroGeolocationCompatSpec.hpp"
@@ -50,30 +50,31 @@ namespace margelo::nitro::nitrogeolocation { struct GeolocationOptions; }
50
50
 
51
51
  namespace margelo::nitro::nitrogeolocation {
52
52
 
53
- jni::local_ref<JHybridNitroGeolocationCompatSpec::jhybriddata> JHybridNitroGeolocationCompatSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
54
- return makeCxxInstance(jThis);
55
- }
56
-
57
- void JHybridNitroGeolocationCompatSpec::registerNatives() {
58
- registerHybrid({
59
- makeNativeMethod("initHybrid", JHybridNitroGeolocationCompatSpec::initHybrid),
60
- });
53
+ std::shared_ptr<JHybridNitroGeolocationCompatSpec> JHybridNitroGeolocationCompatSpec::JavaPart::getJHybridNitroGeolocationCompatSpec() {
54
+ auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
55
+ auto castHybridObject = std::dynamic_pointer_cast<JHybridNitroGeolocationCompatSpec>(hybridObject);
56
+ if (castHybridObject == nullptr) [[unlikely]] {
57
+ throw std::runtime_error("Failed to downcast JHybridObject to JHybridNitroGeolocationCompatSpec!");
58
+ }
59
+ return castHybridObject;
61
60
  }
62
61
 
63
- size_t JHybridNitroGeolocationCompatSpec::getExternalMemorySize() noexcept {
64
- static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
65
- return method(_javaPart);
62
+ jni::local_ref<JHybridNitroGeolocationCompatSpec::CxxPart::jhybriddata> JHybridNitroGeolocationCompatSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
63
+ return makeCxxInstance(jThis);
66
64
  }
67
65
 
68
- void JHybridNitroGeolocationCompatSpec::dispose() noexcept {
69
- static const auto method = javaClassStatic()->getMethod<void()>("dispose");
70
- method(_javaPart);
66
+ std::shared_ptr<JHybridObject> JHybridNitroGeolocationCompatSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
67
+ auto castJavaPart = jni::dynamic_ref_cast<JHybridNitroGeolocationCompatSpec::JavaPart>(javaPart);
68
+ if (castJavaPart == nullptr) [[unlikely]] {
69
+ throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridNitroGeolocationCompatSpec::JavaPart!");
70
+ }
71
+ return std::make_shared<JHybridNitroGeolocationCompatSpec>(castJavaPart);
71
72
  }
72
73
 
73
- std::string JHybridNitroGeolocationCompatSpec::toString() {
74
- static const auto method = javaClassStatic()->getMethod<jni::JString()>("toString");
75
- auto javaString = method(_javaPart);
76
- return javaString->toStdString();
74
+ void JHybridNitroGeolocationCompatSpec::CxxPart::registerNatives() {
75
+ registerHybrid({
76
+ makeNativeMethod("initHybrid", JHybridNitroGeolocationCompatSpec::CxxPart::initHybrid),
77
+ });
77
78
  }
78
79
 
79
80
  // Properties
@@ -81,28 +82,28 @@ namespace margelo::nitro::nitrogeolocation {
81
82
 
82
83
  // Methods
83
84
  void JHybridNitroGeolocationCompatSpec::setRNConfiguration(const RNConfigurationInternal& config) {
84
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JRNConfigurationInternal> /* config */)>("setRNConfiguration");
85
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JRNConfigurationInternal> /* config */)>("setRNConfiguration");
85
86
  method(_javaPart, JRNConfigurationInternal::fromCpp(config));
86
87
  }
87
88
  void JHybridNitroGeolocationCompatSpec::requestAuthorization(const std::optional<std::function<void()>>& success, const std::optional<std::function<void(const GeolocationError& /* error */)>>& error) {
88
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void::javaobject> /* success */, jni::alias_ref<JFunc_void_GeolocationError::javaobject> /* error */)>("requestAuthorization_cxx");
89
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void::javaobject> /* success */, jni::alias_ref<JFunc_void_GeolocationError::javaobject> /* error */)>("requestAuthorization_cxx");
89
90
  method(_javaPart, success.has_value() ? JFunc_void_cxx::fromCpp(success.value()) : nullptr, error.has_value() ? JFunc_void_GeolocationError_cxx::fromCpp(error.value()) : nullptr);
90
91
  }
91
92
  void JHybridNitroGeolocationCompatSpec::getCurrentPosition(const std::function<void(const GeolocationResponse& /* position */)>& success, const std::optional<std::function<void(const GeolocationError& /* error */)>>& error, const std::optional<GeolocationOptions>& options) {
92
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_GeolocationResponse::javaobject> /* success */, jni::alias_ref<JFunc_void_GeolocationError::javaobject> /* error */, jni::alias_ref<JGeolocationOptions> /* options */)>("getCurrentPosition_cxx");
93
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_GeolocationResponse::javaobject> /* success */, jni::alias_ref<JFunc_void_GeolocationError::javaobject> /* error */, jni::alias_ref<JGeolocationOptions> /* options */)>("getCurrentPosition_cxx");
93
94
  method(_javaPart, JFunc_void_GeolocationResponse_cxx::fromCpp(success), error.has_value() ? JFunc_void_GeolocationError_cxx::fromCpp(error.value()) : nullptr, options.has_value() ? JGeolocationOptions::fromCpp(options.value()) : nullptr);
94
95
  }
95
96
  double JHybridNitroGeolocationCompatSpec::watchPosition(const std::function<void(const GeolocationResponse& /* position */)>& success, const std::optional<std::function<void(const GeolocationError& /* error */)>>& error, const std::optional<GeolocationOptions>& options) {
96
- static const auto method = javaClassStatic()->getMethod<double(jni::alias_ref<JFunc_void_GeolocationResponse::javaobject> /* success */, jni::alias_ref<JFunc_void_GeolocationError::javaobject> /* error */, jni::alias_ref<JGeolocationOptions> /* options */)>("watchPosition_cxx");
97
+ static const auto method = _javaPart->javaClassStatic()->getMethod<double(jni::alias_ref<JFunc_void_GeolocationResponse::javaobject> /* success */, jni::alias_ref<JFunc_void_GeolocationError::javaobject> /* error */, jni::alias_ref<JGeolocationOptions> /* options */)>("watchPosition_cxx");
97
98
  auto __result = method(_javaPart, JFunc_void_GeolocationResponse_cxx::fromCpp(success), error.has_value() ? JFunc_void_GeolocationError_cxx::fromCpp(error.value()) : nullptr, options.has_value() ? JGeolocationOptions::fromCpp(options.value()) : nullptr);
98
99
  return __result;
99
100
  }
100
101
  void JHybridNitroGeolocationCompatSpec::clearWatch(double watchId) {
101
- static const auto method = javaClassStatic()->getMethod<void(double /* watchId */)>("clearWatch");
102
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(double /* watchId */)>("clearWatch");
102
103
  method(_javaPart, watchId);
103
104
  }
104
105
  void JHybridNitroGeolocationCompatSpec::stopObserving() {
105
- static const auto method = javaClassStatic()->getMethod<void()>("stopObserving");
106
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void()>("stopObserving");
106
107
  method(_javaPart);
107
108
  }
108
109
 
@@ -2,7 +2,7 @@
2
2
  /// HybridNitroGeolocationCompatSpec.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -18,33 +18,33 @@ namespace margelo::nitro::nitrogeolocation {
18
18
 
19
19
  using namespace facebook;
20
20
 
21
- class JHybridNitroGeolocationCompatSpec: public jni::HybridClass<JHybridNitroGeolocationCompatSpec, JHybridObject>,
22
- public virtual HybridNitroGeolocationCompatSpec {
21
+ class JHybridNitroGeolocationCompatSpec: public virtual HybridNitroGeolocationCompatSpec, public virtual JHybridObject {
23
22
  public:
24
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitrogeolocation/HybridNitroGeolocationCompatSpec;";
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 JHybridNitroGeolocationCompatSpec(jni::alias_ref<jhybridobject> jThis) :
31
- HybridObject(HybridNitroGeolocationCompatSpec::TAG),
32
- HybridBase(jThis),
33
- _javaPart(jni::make_global(jThis)) {}
23
+ struct JavaPart: public jni::JavaClass<JavaPart, JHybridObject::JavaPart> {
24
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitrogeolocation/HybridNitroGeolocationCompatSpec;";
25
+ std::shared_ptr<JHybridNitroGeolocationCompatSpec> getJHybridNitroGeolocationCompatSpec();
26
+ };
27
+ struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
28
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitrogeolocation/HybridNitroGeolocationCompatSpec$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 JHybridNitroGeolocationCompatSpec(const jni::local_ref<JHybridNitroGeolocationCompatSpec::JavaPart>& javaPart):
38
+ HybridObject(HybridNitroGeolocationCompatSpec::TAG),
39
+ JHybridObject(javaPart),
40
+ _javaPart(jni::make_global(javaPart)) {}
36
41
  ~JHybridNitroGeolocationCompatSpec() 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<JHybridNitroGeolocationCompatSpec::javaobject>& getJavaPart() const noexcept {
47
+ inline const jni::global_ref<JHybridNitroGeolocationCompatSpec::JavaPart>& getJavaPart() const noexcept {
48
48
  return _javaPart;
49
49
  }
50
50
 
@@ -62,9 +62,7 @@ namespace margelo::nitro::nitrogeolocation {
62
62
  void stopObserving() override;
63
63
 
64
64
  private:
65
- friend HybridBase;
66
- using HybridBase::HybridBase;
67
- jni::global_ref<JHybridNitroGeolocationCompatSpec::javaobject> _javaPart;
65
+ jni::global_ref<JHybridNitroGeolocationCompatSpec::JavaPart> _javaPart;
68
66
  };
69
67
 
70
68
  } // namespace margelo::nitro::nitrogeolocation
@@ -2,7 +2,7 @@
2
2
  /// JHybridNitroGeolocationSpec.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "JHybridNitroGeolocationSpec.hpp"
@@ -55,30 +55,31 @@ namespace margelo::nitro::nitrogeolocation { struct LocationError; }
55
55
 
56
56
  namespace margelo::nitro::nitrogeolocation {
57
57
 
58
- jni::local_ref<JHybridNitroGeolocationSpec::jhybriddata> JHybridNitroGeolocationSpec::initHybrid(jni::alias_ref<jhybridobject> jThis) {
59
- return makeCxxInstance(jThis);
60
- }
61
-
62
- void JHybridNitroGeolocationSpec::registerNatives() {
63
- registerHybrid({
64
- makeNativeMethod("initHybrid", JHybridNitroGeolocationSpec::initHybrid),
65
- });
58
+ std::shared_ptr<JHybridNitroGeolocationSpec> JHybridNitroGeolocationSpec::JavaPart::getJHybridNitroGeolocationSpec() {
59
+ auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
60
+ auto castHybridObject = std::dynamic_pointer_cast<JHybridNitroGeolocationSpec>(hybridObject);
61
+ if (castHybridObject == nullptr) [[unlikely]] {
62
+ throw std::runtime_error("Failed to downcast JHybridObject to JHybridNitroGeolocationSpec!");
63
+ }
64
+ return castHybridObject;
66
65
  }
67
66
 
68
- size_t JHybridNitroGeolocationSpec::getExternalMemorySize() noexcept {
69
- static const auto method = javaClassStatic()->getMethod<jlong()>("getMemorySize");
70
- return method(_javaPart);
67
+ jni::local_ref<JHybridNitroGeolocationSpec::CxxPart::jhybriddata> JHybridNitroGeolocationSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
68
+ return makeCxxInstance(jThis);
71
69
  }
72
70
 
73
- void JHybridNitroGeolocationSpec::dispose() noexcept {
74
- static const auto method = javaClassStatic()->getMethod<void()>("dispose");
75
- method(_javaPart);
71
+ std::shared_ptr<JHybridObject> JHybridNitroGeolocationSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
72
+ auto castJavaPart = jni::dynamic_ref_cast<JHybridNitroGeolocationSpec::JavaPart>(javaPart);
73
+ if (castJavaPart == nullptr) [[unlikely]] {
74
+ throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridNitroGeolocationSpec::JavaPart!");
75
+ }
76
+ return std::make_shared<JHybridNitroGeolocationSpec>(castJavaPart);
76
77
  }
77
78
 
78
- std::string JHybridNitroGeolocationSpec::toString() {
79
- static const auto method = javaClassStatic()->getMethod<jni::JString()>("toString");
80
- auto javaString = method(_javaPart);
81
- return javaString->toStdString();
79
+ void JHybridNitroGeolocationSpec::CxxPart::registerNatives() {
80
+ registerHybrid({
81
+ makeNativeMethod("initHybrid", JHybridNitroGeolocationSpec::CxxPart::initHybrid),
82
+ });
82
83
  }
83
84
 
84
85
  // Properties
@@ -86,11 +87,11 @@ namespace margelo::nitro::nitrogeolocation {
86
87
 
87
88
  // Methods
88
89
  void JHybridNitroGeolocationSpec::setConfiguration(const ModernGeolocationConfiguration& config) {
89
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JModernGeolocationConfiguration> /* config */)>("setConfiguration");
90
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JModernGeolocationConfiguration> /* config */)>("setConfiguration");
90
91
  method(_javaPart, JModernGeolocationConfiguration::fromCpp(config));
91
92
  }
92
93
  std::shared_ptr<Promise<PermissionStatus>> JHybridNitroGeolocationSpec::checkPermission() {
93
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("checkPermission");
94
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("checkPermission");
94
95
  auto __result = method(_javaPart);
95
96
  return [&]() {
96
97
  auto __promise = Promise<PermissionStatus>::create();
@@ -106,7 +107,7 @@ namespace margelo::nitro::nitrogeolocation {
106
107
  }();
107
108
  }
108
109
  std::shared_ptr<Promise<PermissionStatus>> JHybridNitroGeolocationSpec::requestPermission() {
109
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("requestPermission");
110
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("requestPermission");
110
111
  auto __result = method(_javaPart);
111
112
  return [&]() {
112
113
  auto __promise = Promise<PermissionStatus>::create();
@@ -122,7 +123,7 @@ namespace margelo::nitro::nitrogeolocation {
122
123
  }();
123
124
  }
124
125
  std::shared_ptr<Promise<GeolocationResponse>> JHybridNitroGeolocationSpec::getCurrentPosition(const std::optional<LocationRequestOptions>& options) {
125
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<JLocationRequestOptions> /* options */)>("getCurrentPosition");
126
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<JLocationRequestOptions> /* options */)>("getCurrentPosition");
126
127
  auto __result = method(_javaPart, options.has_value() ? JLocationRequestOptions::fromCpp(options.value()) : nullptr);
127
128
  return [&]() {
128
129
  auto __promise = Promise<GeolocationResponse>::create();
@@ -138,16 +139,16 @@ namespace margelo::nitro::nitrogeolocation {
138
139
  }();
139
140
  }
140
141
  std::string JHybridNitroGeolocationSpec::watchPosition(const std::function<void(const GeolocationResponse& /* position */)>& success, const std::optional<std::function<void(const LocationError& /* error */)>>& error, const std::optional<LocationRequestOptions>& options) {
141
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JString>(jni::alias_ref<JFunc_void_GeolocationResponse::javaobject> /* success */, jni::alias_ref<JFunc_void_LocationError::javaobject> /* error */, jni::alias_ref<JLocationRequestOptions> /* options */)>("watchPosition_cxx");
142
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JString>(jni::alias_ref<JFunc_void_GeolocationResponse::javaobject> /* success */, jni::alias_ref<JFunc_void_LocationError::javaobject> /* error */, jni::alias_ref<JLocationRequestOptions> /* options */)>("watchPosition_cxx");
142
143
  auto __result = method(_javaPart, JFunc_void_GeolocationResponse_cxx::fromCpp(success), error.has_value() ? JFunc_void_LocationError_cxx::fromCpp(error.value()) : nullptr, options.has_value() ? JLocationRequestOptions::fromCpp(options.value()) : nullptr);
143
144
  return __result->toStdString();
144
145
  }
145
146
  void JHybridNitroGeolocationSpec::unwatch(const std::string& token) {
146
- static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* token */)>("unwatch");
147
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* token */)>("unwatch");
147
148
  method(_javaPart, jni::make_jstring(token));
148
149
  }
149
150
  void JHybridNitroGeolocationSpec::stopObserving() {
150
- static const auto method = javaClassStatic()->getMethod<void()>("stopObserving");
151
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void()>("stopObserving");
151
152
  method(_javaPart);
152
153
  }
153
154
 
@@ -2,7 +2,7 @@
2
2
  /// HybridNitroGeolocationSpec.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -18,33 +18,33 @@ namespace margelo::nitro::nitrogeolocation {
18
18
 
19
19
  using namespace facebook;
20
20
 
21
- class JHybridNitroGeolocationSpec: public jni::HybridClass<JHybridNitroGeolocationSpec, JHybridObject>,
22
- public virtual HybridNitroGeolocationSpec {
21
+ class JHybridNitroGeolocationSpec: public virtual HybridNitroGeolocationSpec, public virtual JHybridObject {
23
22
  public:
24
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitrogeolocation/HybridNitroGeolocationSpec;";
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 JHybridNitroGeolocationSpec(jni::alias_ref<jhybridobject> jThis) :
31
- HybridObject(HybridNitroGeolocationSpec::TAG),
32
- HybridBase(jThis),
33
- _javaPart(jni::make_global(jThis)) {}
23
+ struct JavaPart: public jni::JavaClass<JavaPart, JHybridObject::JavaPart> {
24
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitrogeolocation/HybridNitroGeolocationSpec;";
25
+ std::shared_ptr<JHybridNitroGeolocationSpec> getJHybridNitroGeolocationSpec();
26
+ };
27
+ struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
28
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitrogeolocation/HybridNitroGeolocationSpec$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 JHybridNitroGeolocationSpec(const jni::local_ref<JHybridNitroGeolocationSpec::JavaPart>& javaPart):
38
+ HybridObject(HybridNitroGeolocationSpec::TAG),
39
+ JHybridObject(javaPart),
40
+ _javaPart(jni::make_global(javaPart)) {}
36
41
  ~JHybridNitroGeolocationSpec() 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<JHybridNitroGeolocationSpec::javaobject>& getJavaPart() const noexcept {
47
+ inline const jni::global_ref<JHybridNitroGeolocationSpec::JavaPart>& getJavaPart() const noexcept {
48
48
  return _javaPart;
49
49
  }
50
50
 
@@ -63,9 +63,7 @@ namespace margelo::nitro::nitrogeolocation {
63
63
  void stopObserving() override;
64
64
 
65
65
  private:
66
- friend HybridBase;
67
- using HybridBase::HybridBase;
68
- jni::global_ref<JHybridNitroGeolocationSpec::javaobject> _javaPart;
66
+ jni::global_ref<JHybridNitroGeolocationSpec::JavaPart> _javaPart;
69
67
  };
70
68
 
71
69
  } // namespace margelo::nitro::nitrogeolocation
@@ -2,7 +2,7 @@
2
2
  /// JLocationError.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// JLocationProvider.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// JLocationProviderInternal.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// JLocationRequestOptions.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// JModernGeolocationConfiguration.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// JNullableDouble.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #include "JNullableDouble.hpp"
@@ -2,7 +2,7 @@
2
2
  /// JNullableDouble.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// JPermissionStatus.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// JRNConfigurationInternal.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  #pragma once
@@ -2,7 +2,7 @@
2
2
  /// AuthorizationLevel.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  package com.margelo.nitro.nitrogeolocation
@@ -2,7 +2,7 @@
2
2
  /// AuthorizationLevelInternal.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  package com.margelo.nitro.nitrogeolocation
@@ -2,7 +2,7 @@
2
2
  /// Func_void.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  package com.margelo.nitro.nitrogeolocation
@@ -2,7 +2,7 @@
2
2
  /// Func_void_GeolocationError.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  package com.margelo.nitro.nitrogeolocation
@@ -2,7 +2,7 @@
2
2
  /// Func_void_GeolocationResponse.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  package com.margelo.nitro.nitrogeolocation
@@ -2,7 +2,7 @@
2
2
  /// Func_void_LocationError.kt
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
5
+ /// Copyright © Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
8
  package com.margelo.nitro.nitrogeolocation