react-native-nitro-geolocation 1.1.4 → 1.2.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 (186) hide show
  1. package/README.md +74 -8
  2. package/android/build.gradle +6 -0
  3. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/AndroidAccuracy.kt +105 -0
  4. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/AndroidHeadingManager.kt +313 -0
  5. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/AndroidLocationSettings.kt +313 -0
  6. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/GetCurrentPosition.kt +46 -45
  7. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/LocationMetadata.kt +26 -0
  8. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/LocationValues.kt +31 -0
  9. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/NitroGeolocation.kt +1025 -140
  10. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/NitroGeolocationCompat.kt +11 -11
  11. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/RequestAuthorization.kt +6 -6
  12. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/WatchPosition.kt +46 -45
  13. package/ios/CLLocation+GeolocationMetadata.swift +32 -0
  14. package/ios/LocationManager.swift +205 -51
  15. package/ios/NitroGeolocation.swift +949 -110
  16. package/ios/NitroGeolocationCompat.swift +7 -7
  17. package/nitrogen/generated/android/c++/JAccuracyAuthorization.hpp +61 -0
  18. package/nitrogen/generated/android/c++/JAndroidAccuracyPreset.hpp +64 -0
  19. package/nitrogen/generated/android/c++/JAndroidGranularity.hpp +61 -0
  20. package/nitrogen/generated/android/c++/{JRNConfigurationInternal.hpp → JCompatGeolocationConfigurationInternal.hpp} +10 -10
  21. package/nitrogen/generated/android/c++/{JGeolocationError.hpp → JCompatGeolocationError.hpp} +10 -10
  22. package/nitrogen/generated/android/c++/JCompatGeolocationOptions.hpp +105 -0
  23. package/nitrogen/generated/android/c++/JCompatGeolocationResponse.hpp +67 -0
  24. package/nitrogen/generated/android/c++/JFunc_void_AccuracyAuthorization.hpp +77 -0
  25. package/nitrogen/generated/android/c++/JFunc_void_CompatGeolocationError.hpp +78 -0
  26. package/nitrogen/generated/android/c++/JFunc_void_CompatGeolocationResponse.hpp +84 -0
  27. package/nitrogen/generated/android/c++/JFunc_void_GeolocationResponse.hpp +2 -0
  28. package/nitrogen/generated/android/c++/JFunc_void_Heading.hpp +78 -0
  29. package/nitrogen/generated/android/c++/JFunc_void_LocationProviderStatus.hpp +78 -0
  30. package/nitrogen/generated/android/c++/JFunc_void_PermissionStatus.hpp +77 -0
  31. package/nitrogen/generated/android/c++/JFunc_void_std__vector_GeocodedLocation_.hpp +97 -0
  32. package/nitrogen/generated/android/c++/JFunc_void_std__vector_ReverseGeocodedAddress_.hpp +98 -0
  33. package/nitrogen/generated/android/c++/JGeocodedLocation.hpp +65 -0
  34. package/nitrogen/generated/android/c++/JGeocodingCoordinates.hpp +61 -0
  35. package/nitrogen/generated/android/c++/{JModernGeolocationConfiguration.hpp → JGeolocationConfiguration.hpp} +10 -10
  36. package/nitrogen/generated/android/c++/JGeolocationResponse.hpp +13 -3
  37. package/nitrogen/generated/android/c++/JHeading.hpp +69 -0
  38. package/nitrogen/generated/android/c++/JHeadingOptions.hpp +57 -0
  39. package/nitrogen/generated/android/c++/JHybridNitroGeolocationCompatSpec.cpp +46 -30
  40. package/nitrogen/generated/android/c++/JHybridNitroGeolocationCompatSpec.hpp +4 -4
  41. package/nitrogen/generated/android/c++/JHybridNitroGeolocationSpec.cpp +169 -33
  42. package/nitrogen/generated/android/c++/JHybridNitroGeolocationSpec.hpp +14 -3
  43. package/nitrogen/generated/android/c++/JIOSAccuracyPreset.hpp +73 -0
  44. package/nitrogen/generated/android/c++/JIOSActivityType.hpp +67 -0
  45. package/nitrogen/generated/android/c++/JLocationAccuracyOptions.hpp +65 -0
  46. package/nitrogen/generated/android/c++/JLocationAvailability.hpp +62 -0
  47. package/nitrogen/generated/android/c++/JLocationProviderStatus.hpp +77 -0
  48. package/nitrogen/generated/android/c++/JLocationProviderUsed.hpp +67 -0
  49. package/nitrogen/generated/android/c++/JLocationRequestOptions.hpp +49 -3
  50. package/nitrogen/generated/android/c++/{JGeolocationOptions.hpp → JLocationSettingsOptions.hpp} +28 -22
  51. package/nitrogen/generated/android/c++/JReverseGeocodedAddress.hpp +82 -0
  52. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/AccuracyAuthorization.kt +24 -0
  53. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/AndroidAccuracyPreset.kt +25 -0
  54. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/AndroidGranularity.kt +24 -0
  55. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/{RNConfigurationInternal.kt → CompatGeolocationConfigurationInternal.kt} +5 -5
  56. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/{GeolocationError.kt → CompatGeolocationError.kt} +5 -5
  57. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/CompatGeolocationOptions.kt +68 -0
  58. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/CompatGeolocationResponse.kt +41 -0
  59. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/Func_void_AccuracyAuthorization.kt +80 -0
  60. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/{Func_void_GeolocationError.kt → Func_void_CompatGeolocationError.kt} +9 -9
  61. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/Func_void_CompatGeolocationResponse.kt +80 -0
  62. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/Func_void_Heading.kt +80 -0
  63. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/Func_void_LocationProviderStatus.kt +80 -0
  64. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/Func_void_PermissionStatus.kt +80 -0
  65. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/Func_void_std__vector_GeocodedLocation_.kt +80 -0
  66. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/Func_void_std__vector_ReverseGeocodedAddress_.kt +80 -0
  67. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/GeocodedLocation.kt +44 -0
  68. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/GeocodingCoordinates.kt +41 -0
  69. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/{ModernGeolocationConfiguration.kt → GeolocationConfiguration.kt} +5 -5
  70. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/GeolocationResponse.kt +9 -3
  71. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/Heading.kt +47 -0
  72. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/HeadingOptions.kt +38 -0
  73. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/HybridNitroGeolocationCompatSpec.kt +7 -7
  74. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/HybridNitroGeolocationSpec.kt +92 -3
  75. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/IOSAccuracyPreset.kt +28 -0
  76. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/IOSActivityType.kt +26 -0
  77. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/LocationAccuracyOptions.kt +41 -0
  78. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/LocationAvailability.kt +41 -0
  79. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/LocationProviderStatus.kt +53 -0
  80. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/LocationProviderUsed.kt +26 -0
  81. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/LocationRequestOptions.kt +30 -3
  82. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/{GeolocationOptions.kt → LocationSettingsOptions.kt} +11 -11
  83. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/ReverseGeocodedAddress.kt +56 -0
  84. package/nitrogen/generated/android/nitrogeolocationOnLoad.cpp +18 -4
  85. package/nitrogen/generated/ios/NitroGeolocation-Swift-Cxx-Bridge.cpp +76 -12
  86. package/nitrogen/generated/ios/NitroGeolocation-Swift-Cxx-Bridge.hpp +519 -77
  87. package/nitrogen/generated/ios/NitroGeolocation-Swift-Cxx-Umbrella.hpp +61 -12
  88. package/nitrogen/generated/ios/c++/HybridNitroGeolocationCompatSpecSwift.hpp +28 -16
  89. package/nitrogen/generated/ios/c++/HybridNitroGeolocationSpecSwift.hpp +131 -13
  90. package/nitrogen/generated/ios/swift/AccuracyAuthorization.swift +44 -0
  91. package/nitrogen/generated/ios/swift/AndroidAccuracyPreset.swift +48 -0
  92. package/nitrogen/generated/ios/swift/AndroidGranularity.swift +44 -0
  93. package/nitrogen/generated/ios/swift/{RNConfigurationInternal.swift → CompatGeolocationConfigurationInternal.swift} +5 -5
  94. package/nitrogen/generated/ios/swift/{GeolocationError.swift → CompatGeolocationError.swift} +5 -5
  95. package/nitrogen/generated/ios/swift/CompatGeolocationOptions.swift +208 -0
  96. package/nitrogen/generated/ios/swift/CompatGeolocationResponse.swift +34 -0
  97. package/nitrogen/generated/ios/swift/Func_void_AccuracyAuthorization.swift +46 -0
  98. package/nitrogen/generated/ios/swift/Func_void_CompatGeolocationError.swift +46 -0
  99. package/nitrogen/generated/ios/swift/Func_void_CompatGeolocationResponse.swift +46 -0
  100. package/nitrogen/generated/ios/swift/{Func_void_GeolocationError.swift → Func_void_Heading.swift} +11 -11
  101. package/nitrogen/generated/ios/swift/Func_void_LocationAvailability.swift +46 -0
  102. package/nitrogen/generated/ios/swift/Func_void_LocationProviderStatus.swift +46 -0
  103. package/nitrogen/generated/ios/swift/Func_void_bool.swift +46 -0
  104. package/nitrogen/generated/ios/swift/Func_void_std__vector_GeocodedLocation_.swift +46 -0
  105. package/nitrogen/generated/ios/swift/Func_void_std__vector_ReverseGeocodedAddress_.swift +46 -0
  106. package/nitrogen/generated/ios/swift/GeocodedLocation.swift +52 -0
  107. package/nitrogen/generated/ios/swift/GeocodingCoordinates.swift +34 -0
  108. package/nitrogen/generated/ios/swift/{ModernGeolocationConfiguration.swift → GeolocationConfiguration.swift} +5 -5
  109. package/nitrogen/generated/ios/swift/GeolocationResponse.swift +31 -2
  110. package/nitrogen/generated/ios/swift/Heading.swift +70 -0
  111. package/nitrogen/generated/ios/swift/HeadingOptions.swift +42 -0
  112. package/nitrogen/generated/ios/swift/HybridNitroGeolocationCompatSpec.swift +4 -4
  113. package/nitrogen/generated/ios/swift/HybridNitroGeolocationCompatSpec_cxx.swift +28 -28
  114. package/nitrogen/generated/ios/swift/HybridNitroGeolocationSpec.swift +14 -3
  115. package/nitrogen/generated/ios/swift/HybridNitroGeolocationSpec_cxx.swift +318 -15
  116. package/nitrogen/generated/ios/swift/IOSAccuracyPreset.swift +60 -0
  117. package/nitrogen/generated/ios/swift/IOSActivityType.swift +52 -0
  118. package/nitrogen/generated/ios/swift/LocationAccuracyOptions.swift +46 -0
  119. package/nitrogen/generated/ios/swift/LocationAvailability.swift +47 -0
  120. package/nitrogen/generated/ios/swift/LocationProviderStatus.swift +106 -0
  121. package/nitrogen/generated/ios/swift/LocationProviderUsed.swift +52 -0
  122. package/nitrogen/generated/ios/swift/LocationRequestOptions.swift +142 -1
  123. package/nitrogen/generated/ios/swift/{GeolocationOptions.swift → LocationSettingsOptions.swift} +39 -46
  124. package/nitrogen/generated/ios/swift/ReverseGeocodedAddress.swift +150 -0
  125. package/nitrogen/generated/shared/c++/AccuracyAuthorization.hpp +80 -0
  126. package/nitrogen/generated/shared/c++/AndroidAccuracyPreset.hpp +84 -0
  127. package/nitrogen/generated/shared/c++/AndroidGranularity.hpp +80 -0
  128. package/nitrogen/generated/shared/c++/{RNConfigurationInternal.hpp → CompatGeolocationConfigurationInternal.hpp} +11 -11
  129. package/nitrogen/generated/shared/c++/{GeolocationError.hpp → CompatGeolocationError.hpp} +11 -11
  130. package/nitrogen/generated/shared/c++/CompatGeolocationOptions.hpp +128 -0
  131. package/nitrogen/generated/shared/c++/CompatGeolocationResponse.hpp +88 -0
  132. package/nitrogen/generated/shared/c++/GeocodedLocation.hpp +91 -0
  133. package/nitrogen/generated/shared/c++/GeocodingCoordinates.hpp +87 -0
  134. package/nitrogen/generated/shared/c++/{ModernGeolocationConfiguration.hpp → GeolocationConfiguration.hpp} +11 -11
  135. package/nitrogen/generated/shared/c++/GeolocationResponse.hpp +14 -2
  136. package/nitrogen/generated/shared/c++/Heading.hpp +95 -0
  137. package/nitrogen/generated/shared/c++/HeadingOptions.hpp +83 -0
  138. package/nitrogen/generated/shared/c++/HybridNitroGeolocationCompatSpec.hpp +16 -16
  139. package/nitrogen/generated/shared/c++/HybridNitroGeolocationSpec.cpp +11 -0
  140. package/nitrogen/generated/shared/c++/HybridNitroGeolocationSpec.hpp +51 -12
  141. package/nitrogen/generated/shared/c++/IOSAccuracyPreset.hpp +96 -0
  142. package/nitrogen/generated/shared/c++/IOSActivityType.hpp +88 -0
  143. package/nitrogen/generated/shared/c++/LocationAccuracyOptions.hpp +92 -0
  144. package/nitrogen/generated/shared/c++/LocationAvailability.hpp +88 -0
  145. package/nitrogen/generated/shared/c++/LocationProviderStatus.hpp +103 -0
  146. package/nitrogen/generated/shared/c++/LocationProviderUsed.hpp +88 -0
  147. package/nitrogen/generated/shared/c++/LocationRequestOptions.hpp +47 -3
  148. package/nitrogen/generated/shared/c++/{GeolocationOptions.hpp → LocationSettingsOptions.hpp} +26 -24
  149. package/nitrogen/generated/shared/c++/ReverseGeocodedAddress.hpp +108 -0
  150. package/package.json +1 -1
  151. package/src/NitroGeolocation.nitro.ts +291 -17
  152. package/src/NitroGeolocationCompat.nitro.ts +12 -12
  153. package/src/api/geocode.ts +18 -0
  154. package/src/api/getAccuracyAuthorization.ts +12 -0
  155. package/src/api/getCurrentPosition.ts +5 -3
  156. package/src/api/getHeading.ts +13 -0
  157. package/src/api/getLastKnownPosition.ts +28 -0
  158. package/src/api/getLocationAvailability.ts +11 -0
  159. package/src/api/getProviderStatus.ts +16 -0
  160. package/src/api/hasServicesEnabled.ts +13 -0
  161. package/src/api/index.ts +11 -0
  162. package/src/api/requestLocationSettings.ts +29 -0
  163. package/src/api/requestPermission.ts +3 -1
  164. package/src/api/requestTemporaryFullAccuracy.ts +21 -0
  165. package/src/api/reverseGeocode.ts +23 -0
  166. package/src/api/setConfiguration.ts +8 -4
  167. package/src/api/watchHeading.ts +19 -0
  168. package/src/api/watchPosition.ts +2 -2
  169. package/src/compat/getCurrentPosition.ts +7 -7
  170. package/src/compat/index.tsx +5 -5
  171. package/src/compat/requestAuthorization.ts +2 -2
  172. package/src/compat/setRNConfiguration.ts +7 -5
  173. package/src/compat/watchPosition.ts +7 -7
  174. package/src/devtools/getCurrentPosition.ts +5 -3
  175. package/src/devtools/index.ts +1 -1
  176. package/src/devtools/watchPosition.ts +6 -7
  177. package/src/hooks/useWatchPosition.ts +2 -2
  178. package/src/index.tsx +35 -6
  179. package/src/publicTypes.ts +96 -0
  180. package/src/types.ts +113 -37
  181. package/src/utils/errors.test.ts +65 -0
  182. package/src/utils/errors.ts +45 -18
  183. package/src/utils/index.ts +2 -2
  184. package/src/utils/provider.test.ts +172 -1
  185. package/src/utils/provider.ts +50 -5
  186. package/nitrogen/generated/android/c++/JFunc_void_GeolocationError.hpp +0 -78
@@ -3,7 +3,7 @@ import CoreLocation
3
3
  class NitroGeolocationCompat: HybridNitroGeolocationCompatSpec {
4
4
  // MARK: - Properties
5
5
 
6
- private var configuration: RNConfigurationInternal = RNConfigurationInternal(
6
+ private var configuration: CompatGeolocationConfigurationInternal = CompatGeolocationConfigurationInternal(
7
7
  skipPermissionRequests: false,
8
8
  authorizationLevel: nil,
9
9
  enableBackgroundLocationUpdates: nil,
@@ -14,11 +14,11 @@ class NitroGeolocationCompat: HybridNitroGeolocationCompatSpec {
14
14
 
15
15
  // MARK: - Public API
16
16
 
17
- public func setRNConfiguration(config: RNConfigurationInternal) throws {
17
+ public func setRNConfiguration(config: CompatGeolocationConfigurationInternal) throws {
18
18
  configuration = config
19
19
  }
20
20
 
21
- public func requestAuthorization(success: (() -> Void)?, error: ((GeolocationError) -> Void)?)
21
+ public func requestAuthorization(success: (() -> Void)?, error: ((CompatGeolocationError) -> Void)?)
22
22
  throws
23
23
  {
24
24
  let authType = determineAuthorizationType()
@@ -35,8 +35,8 @@ class NitroGeolocationCompat: HybridNitroGeolocationCompatSpec {
35
35
  }
36
36
 
37
37
  public func getCurrentPosition(
38
- success: @escaping (GeolocationResponse) -> Void, error: ((GeolocationError) -> Void)?,
39
- options: GeolocationOptions?
38
+ success: @escaping (CompatGeolocationResponse) -> Void, error: ((CompatGeolocationError) -> Void)?,
39
+ options: CompatGeolocationOptions?
40
40
  ) throws {
41
41
  // Fast path: check cached location immediately (no dispatch overhead!)
42
42
  let parsedOptions = LocationManager.ParsedOptions.parse(from: options)
@@ -52,8 +52,8 @@ class NitroGeolocationCompat: HybridNitroGeolocationCompatSpec {
52
52
  }
53
53
 
54
54
  public func watchPosition(
55
- success: @escaping (GeolocationResponse) -> Void, error: ((GeolocationError) -> Void)?,
56
- options: GeolocationOptions?
55
+ success: @escaping (CompatGeolocationResponse) -> Void, error: ((CompatGeolocationError) -> Void)?,
56
+ options: CompatGeolocationOptions?
57
57
  ) throws -> Double {
58
58
  return locationManager.watchPosition(success: success, error: error, options: options)
59
59
  }
@@ -0,0 +1,61 @@
1
+ ///
2
+ /// JAccuracyAuthorization.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "AccuracyAuthorization.hpp"
12
+
13
+ namespace margelo::nitro::nitrogeolocation {
14
+
15
+ using namespace facebook;
16
+
17
+ /**
18
+ * The C++ JNI bridge between the C++ enum "AccuracyAuthorization" and the the Kotlin enum "AccuracyAuthorization".
19
+ */
20
+ struct JAccuracyAuthorization final: public jni::JavaClass<JAccuracyAuthorization> {
21
+ public:
22
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitrogeolocation/AccuracyAuthorization;";
23
+
24
+ public:
25
+ /**
26
+ * Convert this Java/Kotlin-based enum to the C++ enum AccuracyAuthorization.
27
+ */
28
+ [[maybe_unused]]
29
+ [[nodiscard]]
30
+ AccuracyAuthorization toCpp() const {
31
+ static const auto clazz = javaClassStatic();
32
+ static const auto fieldOrdinal = clazz->getField<int>("value");
33
+ int ordinal = this->getFieldValue(fieldOrdinal);
34
+ return static_cast<AccuracyAuthorization>(ordinal);
35
+ }
36
+
37
+ public:
38
+ /**
39
+ * Create a Java/Kotlin-based enum with the given C++ enum's value.
40
+ */
41
+ [[maybe_unused]]
42
+ static jni::alias_ref<JAccuracyAuthorization> fromCpp(AccuracyAuthorization value) {
43
+ static const auto clazz = javaClassStatic();
44
+ switch (value) {
45
+ case AccuracyAuthorization::REDUCED:
46
+ static const auto fieldREDUCED = clazz->getStaticField<JAccuracyAuthorization>("REDUCED");
47
+ return clazz->getStaticFieldValue(fieldREDUCED);
48
+ case AccuracyAuthorization::FULL:
49
+ static const auto fieldFULL = clazz->getStaticField<JAccuracyAuthorization>("FULL");
50
+ return clazz->getStaticFieldValue(fieldFULL);
51
+ case AccuracyAuthorization::UNKNOWN:
52
+ static const auto fieldUNKNOWN = clazz->getStaticField<JAccuracyAuthorization>("UNKNOWN");
53
+ return clazz->getStaticFieldValue(fieldUNKNOWN);
54
+ default:
55
+ std::string stringValue = std::to_string(static_cast<int>(value));
56
+ throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
57
+ }
58
+ }
59
+ };
60
+
61
+ } // namespace margelo::nitro::nitrogeolocation
@@ -0,0 +1,64 @@
1
+ ///
2
+ /// JAndroidAccuracyPreset.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "AndroidAccuracyPreset.hpp"
12
+
13
+ namespace margelo::nitro::nitrogeolocation {
14
+
15
+ using namespace facebook;
16
+
17
+ /**
18
+ * The C++ JNI bridge between the C++ enum "AndroidAccuracyPreset" and the the Kotlin enum "AndroidAccuracyPreset".
19
+ */
20
+ struct JAndroidAccuracyPreset final: public jni::JavaClass<JAndroidAccuracyPreset> {
21
+ public:
22
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitrogeolocation/AndroidAccuracyPreset;";
23
+
24
+ public:
25
+ /**
26
+ * Convert this Java/Kotlin-based enum to the C++ enum AndroidAccuracyPreset.
27
+ */
28
+ [[maybe_unused]]
29
+ [[nodiscard]]
30
+ AndroidAccuracyPreset toCpp() const {
31
+ static const auto clazz = javaClassStatic();
32
+ static const auto fieldOrdinal = clazz->getField<int>("value");
33
+ int ordinal = this->getFieldValue(fieldOrdinal);
34
+ return static_cast<AndroidAccuracyPreset>(ordinal);
35
+ }
36
+
37
+ public:
38
+ /**
39
+ * Create a Java/Kotlin-based enum with the given C++ enum's value.
40
+ */
41
+ [[maybe_unused]]
42
+ static jni::alias_ref<JAndroidAccuracyPreset> fromCpp(AndroidAccuracyPreset value) {
43
+ static const auto clazz = javaClassStatic();
44
+ switch (value) {
45
+ case AndroidAccuracyPreset::HIGH:
46
+ static const auto fieldHIGH = clazz->getStaticField<JAndroidAccuracyPreset>("HIGH");
47
+ return clazz->getStaticFieldValue(fieldHIGH);
48
+ case AndroidAccuracyPreset::BALANCED:
49
+ static const auto fieldBALANCED = clazz->getStaticField<JAndroidAccuracyPreset>("BALANCED");
50
+ return clazz->getStaticFieldValue(fieldBALANCED);
51
+ case AndroidAccuracyPreset::LOW:
52
+ static const auto fieldLOW = clazz->getStaticField<JAndroidAccuracyPreset>("LOW");
53
+ return clazz->getStaticFieldValue(fieldLOW);
54
+ case AndroidAccuracyPreset::PASSIVE:
55
+ static const auto fieldPASSIVE = clazz->getStaticField<JAndroidAccuracyPreset>("PASSIVE");
56
+ return clazz->getStaticFieldValue(fieldPASSIVE);
57
+ default:
58
+ std::string stringValue = std::to_string(static_cast<int>(value));
59
+ throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
60
+ }
61
+ }
62
+ };
63
+
64
+ } // namespace margelo::nitro::nitrogeolocation
@@ -0,0 +1,61 @@
1
+ ///
2
+ /// JAndroidGranularity.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "AndroidGranularity.hpp"
12
+
13
+ namespace margelo::nitro::nitrogeolocation {
14
+
15
+ using namespace facebook;
16
+
17
+ /**
18
+ * The C++ JNI bridge between the C++ enum "AndroidGranularity" and the the Kotlin enum "AndroidGranularity".
19
+ */
20
+ struct JAndroidGranularity final: public jni::JavaClass<JAndroidGranularity> {
21
+ public:
22
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitrogeolocation/AndroidGranularity;";
23
+
24
+ public:
25
+ /**
26
+ * Convert this Java/Kotlin-based enum to the C++ enum AndroidGranularity.
27
+ */
28
+ [[maybe_unused]]
29
+ [[nodiscard]]
30
+ AndroidGranularity toCpp() const {
31
+ static const auto clazz = javaClassStatic();
32
+ static const auto fieldOrdinal = clazz->getField<int>("value");
33
+ int ordinal = this->getFieldValue(fieldOrdinal);
34
+ return static_cast<AndroidGranularity>(ordinal);
35
+ }
36
+
37
+ public:
38
+ /**
39
+ * Create a Java/Kotlin-based enum with the given C++ enum's value.
40
+ */
41
+ [[maybe_unused]]
42
+ static jni::alias_ref<JAndroidGranularity> fromCpp(AndroidGranularity value) {
43
+ static const auto clazz = javaClassStatic();
44
+ switch (value) {
45
+ case AndroidGranularity::PERMISSION:
46
+ static const auto fieldPERMISSION = clazz->getStaticField<JAndroidGranularity>("PERMISSION");
47
+ return clazz->getStaticFieldValue(fieldPERMISSION);
48
+ case AndroidGranularity::COARSE:
49
+ static const auto fieldCOARSE = clazz->getStaticField<JAndroidGranularity>("COARSE");
50
+ return clazz->getStaticFieldValue(fieldCOARSE);
51
+ case AndroidGranularity::FINE:
52
+ static const auto fieldFINE = clazz->getStaticField<JAndroidGranularity>("FINE");
53
+ return clazz->getStaticFieldValue(fieldFINE);
54
+ default:
55
+ std::string stringValue = std::to_string(static_cast<int>(value));
56
+ throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
57
+ }
58
+ }
59
+ };
60
+
61
+ } // namespace margelo::nitro::nitrogeolocation
@@ -1,5 +1,5 @@
1
1
  ///
2
- /// JRNConfigurationInternal.hpp
2
+ /// JCompatGeolocationConfigurationInternal.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
5
  /// Copyright © Marc Rousavy @ Margelo
@@ -8,7 +8,7 @@
8
8
  #pragma once
9
9
 
10
10
  #include <fbjni/fbjni.h>
11
- #include "RNConfigurationInternal.hpp"
11
+ #include "CompatGeolocationConfigurationInternal.hpp"
12
12
 
13
13
  #include "AuthorizationLevelInternal.hpp"
14
14
  #include "JAuthorizationLevelInternal.hpp"
@@ -21,19 +21,19 @@ namespace margelo::nitro::nitrogeolocation {
21
21
  using namespace facebook;
22
22
 
23
23
  /**
24
- * The C++ JNI bridge between the C++ struct "RNConfigurationInternal" and the the Kotlin data class "RNConfigurationInternal".
24
+ * The C++ JNI bridge between the C++ struct "CompatGeolocationConfigurationInternal" and the the Kotlin data class "CompatGeolocationConfigurationInternal".
25
25
  */
26
- struct JRNConfigurationInternal final: public jni::JavaClass<JRNConfigurationInternal> {
26
+ struct JCompatGeolocationConfigurationInternal final: public jni::JavaClass<JCompatGeolocationConfigurationInternal> {
27
27
  public:
28
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitrogeolocation/RNConfigurationInternal;";
28
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitrogeolocation/CompatGeolocationConfigurationInternal;";
29
29
 
30
30
  public:
31
31
  /**
32
- * Convert this Java/Kotlin-based struct to the C++ struct RNConfigurationInternal by copying all values to C++.
32
+ * Convert this Java/Kotlin-based struct to the C++ struct CompatGeolocationConfigurationInternal by copying all values to C++.
33
33
  */
34
34
  [[maybe_unused]]
35
35
  [[nodiscard]]
36
- RNConfigurationInternal toCpp() const {
36
+ CompatGeolocationConfigurationInternal toCpp() const {
37
37
  static const auto clazz = javaClassStatic();
38
38
  static const auto fieldSkipPermissionRequests = clazz->getField<jboolean>("skipPermissionRequests");
39
39
  jboolean skipPermissionRequests = this->getFieldValue(fieldSkipPermissionRequests);
@@ -43,7 +43,7 @@ namespace margelo::nitro::nitrogeolocation {
43
43
  jni::local_ref<jni::JBoolean> enableBackgroundLocationUpdates = this->getFieldValue(fieldEnableBackgroundLocationUpdates);
44
44
  static const auto fieldLocationProvider = clazz->getField<JLocationProviderInternal>("locationProvider");
45
45
  jni::local_ref<JLocationProviderInternal> locationProvider = this->getFieldValue(fieldLocationProvider);
46
- return RNConfigurationInternal(
46
+ return CompatGeolocationConfigurationInternal(
47
47
  static_cast<bool>(skipPermissionRequests),
48
48
  authorizationLevel != nullptr ? std::make_optional(authorizationLevel->toCpp()) : std::nullopt,
49
49
  enableBackgroundLocationUpdates != nullptr ? std::make_optional(static_cast<bool>(enableBackgroundLocationUpdates->value())) : std::nullopt,
@@ -56,8 +56,8 @@ namespace margelo::nitro::nitrogeolocation {
56
56
  * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
57
57
  */
58
58
  [[maybe_unused]]
59
- static jni::local_ref<JRNConfigurationInternal::javaobject> fromCpp(const RNConfigurationInternal& value) {
60
- using JSignature = JRNConfigurationInternal(jboolean, jni::alias_ref<JAuthorizationLevelInternal>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<JLocationProviderInternal>);
59
+ static jni::local_ref<JCompatGeolocationConfigurationInternal::javaobject> fromCpp(const CompatGeolocationConfigurationInternal& value) {
60
+ using JSignature = JCompatGeolocationConfigurationInternal(jboolean, jni::alias_ref<JAuthorizationLevelInternal>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<JLocationProviderInternal>);
61
61
  static const auto clazz = javaClassStatic();
62
62
  static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
63
63
  return create(
@@ -1,5 +1,5 @@
1
1
  ///
2
- /// JGeolocationError.hpp
2
+ /// JCompatGeolocationError.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
5
  /// Copyright © Marc Rousavy @ Margelo
@@ -8,7 +8,7 @@
8
8
  #pragma once
9
9
 
10
10
  #include <fbjni/fbjni.h>
11
- #include "GeolocationError.hpp"
11
+ #include "CompatGeolocationError.hpp"
12
12
 
13
13
  #include <string>
14
14
 
@@ -17,19 +17,19 @@ namespace margelo::nitro::nitrogeolocation {
17
17
  using namespace facebook;
18
18
 
19
19
  /**
20
- * The C++ JNI bridge between the C++ struct "GeolocationError" and the the Kotlin data class "GeolocationError".
20
+ * The C++ JNI bridge between the C++ struct "CompatGeolocationError" and the the Kotlin data class "CompatGeolocationError".
21
21
  */
22
- struct JGeolocationError final: public jni::JavaClass<JGeolocationError> {
22
+ struct JCompatGeolocationError final: public jni::JavaClass<JCompatGeolocationError> {
23
23
  public:
24
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitrogeolocation/GeolocationError;";
24
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitrogeolocation/CompatGeolocationError;";
25
25
 
26
26
  public:
27
27
  /**
28
- * Convert this Java/Kotlin-based struct to the C++ struct GeolocationError by copying all values to C++.
28
+ * Convert this Java/Kotlin-based struct to the C++ struct CompatGeolocationError by copying all values to C++.
29
29
  */
30
30
  [[maybe_unused]]
31
31
  [[nodiscard]]
32
- GeolocationError toCpp() const {
32
+ CompatGeolocationError toCpp() const {
33
33
  static const auto clazz = javaClassStatic();
34
34
  static const auto fieldCode = clazz->getField<double>("code");
35
35
  double code = this->getFieldValue(fieldCode);
@@ -41,7 +41,7 @@ namespace margelo::nitro::nitrogeolocation {
41
41
  double POSITION_UNAVAILABLE = this->getFieldValue(fieldPOSITION_UNAVAILABLE);
42
42
  static const auto fieldTIMEOUT = clazz->getField<double>("TIMEOUT");
43
43
  double TIMEOUT = this->getFieldValue(fieldTIMEOUT);
44
- return GeolocationError(
44
+ return CompatGeolocationError(
45
45
  code,
46
46
  message->toStdString(),
47
47
  PERMISSION_DENIED,
@@ -55,8 +55,8 @@ namespace margelo::nitro::nitrogeolocation {
55
55
  * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
56
56
  */
57
57
  [[maybe_unused]]
58
- static jni::local_ref<JGeolocationError::javaobject> fromCpp(const GeolocationError& value) {
59
- using JSignature = JGeolocationError(double, jni::alias_ref<jni::JString>, double, double, double);
58
+ static jni::local_ref<JCompatGeolocationError::javaobject> fromCpp(const CompatGeolocationError& value) {
59
+ using JSignature = JCompatGeolocationError(double, jni::alias_ref<jni::JString>, double, double, double);
60
60
  static const auto clazz = javaClassStatic();
61
61
  static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
62
62
  return create(
@@ -0,0 +1,105 @@
1
+ ///
2
+ /// JCompatGeolocationOptions.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "CompatGeolocationOptions.hpp"
12
+
13
+ #include "AndroidAccuracyPreset.hpp"
14
+ #include "IOSAccuracyPreset.hpp"
15
+ #include "IOSActivityType.hpp"
16
+ #include "JAndroidAccuracyPreset.hpp"
17
+ #include "JIOSAccuracyPreset.hpp"
18
+ #include "JIOSActivityType.hpp"
19
+ #include "JLocationAccuracyOptions.hpp"
20
+ #include "LocationAccuracyOptions.hpp"
21
+ #include <optional>
22
+
23
+ namespace margelo::nitro::nitrogeolocation {
24
+
25
+ using namespace facebook;
26
+
27
+ /**
28
+ * The C++ JNI bridge between the C++ struct "CompatGeolocationOptions" and the the Kotlin data class "CompatGeolocationOptions".
29
+ */
30
+ struct JCompatGeolocationOptions final: public jni::JavaClass<JCompatGeolocationOptions> {
31
+ public:
32
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitrogeolocation/CompatGeolocationOptions;";
33
+
34
+ public:
35
+ /**
36
+ * Convert this Java/Kotlin-based struct to the C++ struct CompatGeolocationOptions by copying all values to C++.
37
+ */
38
+ [[maybe_unused]]
39
+ [[nodiscard]]
40
+ CompatGeolocationOptions toCpp() const {
41
+ static const auto clazz = javaClassStatic();
42
+ static const auto fieldTimeout = clazz->getField<jni::JDouble>("timeout");
43
+ jni::local_ref<jni::JDouble> timeout = this->getFieldValue(fieldTimeout);
44
+ static const auto fieldMaximumAge = clazz->getField<jni::JDouble>("maximumAge");
45
+ jni::local_ref<jni::JDouble> maximumAge = this->getFieldValue(fieldMaximumAge);
46
+ static const auto fieldEnableHighAccuracy = clazz->getField<jni::JBoolean>("enableHighAccuracy");
47
+ jni::local_ref<jni::JBoolean> enableHighAccuracy = this->getFieldValue(fieldEnableHighAccuracy);
48
+ static const auto fieldAccuracy = clazz->getField<JLocationAccuracyOptions>("accuracy");
49
+ jni::local_ref<JLocationAccuracyOptions> accuracy = this->getFieldValue(fieldAccuracy);
50
+ static const auto fieldInterval = clazz->getField<jni::JDouble>("interval");
51
+ jni::local_ref<jni::JDouble> interval = this->getFieldValue(fieldInterval);
52
+ static const auto fieldFastestInterval = clazz->getField<jni::JDouble>("fastestInterval");
53
+ jni::local_ref<jni::JDouble> fastestInterval = this->getFieldValue(fieldFastestInterval);
54
+ static const auto fieldDistanceFilter = clazz->getField<jni::JDouble>("distanceFilter");
55
+ jni::local_ref<jni::JDouble> distanceFilter = this->getFieldValue(fieldDistanceFilter);
56
+ static const auto fieldUseSignificantChanges = clazz->getField<jni::JBoolean>("useSignificantChanges");
57
+ jni::local_ref<jni::JBoolean> useSignificantChanges = this->getFieldValue(fieldUseSignificantChanges);
58
+ static const auto fieldActivityType = clazz->getField<JIOSActivityType>("activityType");
59
+ jni::local_ref<JIOSActivityType> activityType = this->getFieldValue(fieldActivityType);
60
+ static const auto fieldPausesLocationUpdatesAutomatically = clazz->getField<jni::JBoolean>("pausesLocationUpdatesAutomatically");
61
+ jni::local_ref<jni::JBoolean> pausesLocationUpdatesAutomatically = this->getFieldValue(fieldPausesLocationUpdatesAutomatically);
62
+ static const auto fieldShowsBackgroundLocationIndicator = clazz->getField<jni::JBoolean>("showsBackgroundLocationIndicator");
63
+ jni::local_ref<jni::JBoolean> showsBackgroundLocationIndicator = this->getFieldValue(fieldShowsBackgroundLocationIndicator);
64
+ return CompatGeolocationOptions(
65
+ timeout != nullptr ? std::make_optional(timeout->value()) : std::nullopt,
66
+ maximumAge != nullptr ? std::make_optional(maximumAge->value()) : std::nullopt,
67
+ enableHighAccuracy != nullptr ? std::make_optional(static_cast<bool>(enableHighAccuracy->value())) : std::nullopt,
68
+ accuracy != nullptr ? std::make_optional(accuracy->toCpp()) : std::nullopt,
69
+ interval != nullptr ? std::make_optional(interval->value()) : std::nullopt,
70
+ fastestInterval != nullptr ? std::make_optional(fastestInterval->value()) : std::nullopt,
71
+ distanceFilter != nullptr ? std::make_optional(distanceFilter->value()) : std::nullopt,
72
+ useSignificantChanges != nullptr ? std::make_optional(static_cast<bool>(useSignificantChanges->value())) : std::nullopt,
73
+ activityType != nullptr ? std::make_optional(activityType->toCpp()) : std::nullopt,
74
+ pausesLocationUpdatesAutomatically != nullptr ? std::make_optional(static_cast<bool>(pausesLocationUpdatesAutomatically->value())) : std::nullopt,
75
+ showsBackgroundLocationIndicator != nullptr ? std::make_optional(static_cast<bool>(showsBackgroundLocationIndicator->value())) : std::nullopt
76
+ );
77
+ }
78
+
79
+ public:
80
+ /**
81
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
82
+ */
83
+ [[maybe_unused]]
84
+ static jni::local_ref<JCompatGeolocationOptions::javaobject> fromCpp(const CompatGeolocationOptions& value) {
85
+ using JSignature = JCompatGeolocationOptions(jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<JLocationAccuracyOptions>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<JIOSActivityType>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JBoolean>);
86
+ static const auto clazz = javaClassStatic();
87
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
88
+ return create(
89
+ clazz,
90
+ value.timeout.has_value() ? jni::JDouble::valueOf(value.timeout.value()) : nullptr,
91
+ value.maximumAge.has_value() ? jni::JDouble::valueOf(value.maximumAge.value()) : nullptr,
92
+ value.enableHighAccuracy.has_value() ? jni::JBoolean::valueOf(value.enableHighAccuracy.value()) : nullptr,
93
+ value.accuracy.has_value() ? JLocationAccuracyOptions::fromCpp(value.accuracy.value()) : nullptr,
94
+ value.interval.has_value() ? jni::JDouble::valueOf(value.interval.value()) : nullptr,
95
+ value.fastestInterval.has_value() ? jni::JDouble::valueOf(value.fastestInterval.value()) : nullptr,
96
+ value.distanceFilter.has_value() ? jni::JDouble::valueOf(value.distanceFilter.value()) : nullptr,
97
+ value.useSignificantChanges.has_value() ? jni::JBoolean::valueOf(value.useSignificantChanges.value()) : nullptr,
98
+ value.activityType.has_value() ? JIOSActivityType::fromCpp(value.activityType.value()) : nullptr,
99
+ value.pausesLocationUpdatesAutomatically.has_value() ? jni::JBoolean::valueOf(value.pausesLocationUpdatesAutomatically.value()) : nullptr,
100
+ value.showsBackgroundLocationIndicator.has_value() ? jni::JBoolean::valueOf(value.showsBackgroundLocationIndicator.value()) : nullptr
101
+ );
102
+ }
103
+ };
104
+
105
+ } // namespace margelo::nitro::nitrogeolocation
@@ -0,0 +1,67 @@
1
+ ///
2
+ /// JCompatGeolocationResponse.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "CompatGeolocationResponse.hpp"
12
+
13
+ #include "GeolocationCoordinates.hpp"
14
+ #include "JGeolocationCoordinates.hpp"
15
+ #include "JNullableDouble.hpp"
16
+ #include <NitroModules/JNull.hpp>
17
+ #include <NitroModules/Null.hpp>
18
+ #include <optional>
19
+ #include <variant>
20
+
21
+ namespace margelo::nitro::nitrogeolocation {
22
+
23
+ using namespace facebook;
24
+
25
+ /**
26
+ * The C++ JNI bridge between the C++ struct "CompatGeolocationResponse" and the the Kotlin data class "CompatGeolocationResponse".
27
+ */
28
+ struct JCompatGeolocationResponse final: public jni::JavaClass<JCompatGeolocationResponse> {
29
+ public:
30
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitrogeolocation/CompatGeolocationResponse;";
31
+
32
+ public:
33
+ /**
34
+ * Convert this Java/Kotlin-based struct to the C++ struct CompatGeolocationResponse by copying all values to C++.
35
+ */
36
+ [[maybe_unused]]
37
+ [[nodiscard]]
38
+ CompatGeolocationResponse toCpp() const {
39
+ static const auto clazz = javaClassStatic();
40
+ static const auto fieldCoords = clazz->getField<JGeolocationCoordinates>("coords");
41
+ jni::local_ref<JGeolocationCoordinates> coords = this->getFieldValue(fieldCoords);
42
+ static const auto fieldTimestamp = clazz->getField<double>("timestamp");
43
+ double timestamp = this->getFieldValue(fieldTimestamp);
44
+ return CompatGeolocationResponse(
45
+ coords->toCpp(),
46
+ timestamp
47
+ );
48
+ }
49
+
50
+ public:
51
+ /**
52
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
53
+ */
54
+ [[maybe_unused]]
55
+ static jni::local_ref<JCompatGeolocationResponse::javaobject> fromCpp(const CompatGeolocationResponse& value) {
56
+ using JSignature = JCompatGeolocationResponse(jni::alias_ref<JGeolocationCoordinates>, double);
57
+ static const auto clazz = javaClassStatic();
58
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
59
+ return create(
60
+ clazz,
61
+ JGeolocationCoordinates::fromCpp(value.coords),
62
+ value.timestamp
63
+ );
64
+ }
65
+ };
66
+
67
+ } // namespace margelo::nitro::nitrogeolocation
@@ -0,0 +1,77 @@
1
+ ///
2
+ /// JFunc_void_AccuracyAuthorization.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include <functional>
12
+
13
+ #include "AccuracyAuthorization.hpp"
14
+ #include <functional>
15
+ #include <NitroModules/JNICallable.hpp>
16
+ #include "JAccuracyAuthorization.hpp"
17
+
18
+ namespace margelo::nitro::nitrogeolocation {
19
+
20
+ using namespace facebook;
21
+
22
+ /**
23
+ * Represents the Java/Kotlin callback `(authorization: AccuracyAuthorization) -> Unit`.
24
+ * This can be passed around between C++ and Java/Kotlin.
25
+ */
26
+ struct JFunc_void_AccuracyAuthorization: public jni::JavaClass<JFunc_void_AccuracyAuthorization> {
27
+ public:
28
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitrogeolocation/Func_void_AccuracyAuthorization;";
29
+
30
+ public:
31
+ /**
32
+ * Invokes the function this `JFunc_void_AccuracyAuthorization` instance holds through JNI.
33
+ */
34
+ void invoke(AccuracyAuthorization authorization) const {
35
+ static const auto method = javaClassStatic()->getMethod<void(jni::alias_ref<JAccuracyAuthorization> /* authorization */)>("invoke");
36
+ method(self(), JAccuracyAuthorization::fromCpp(authorization));
37
+ }
38
+ };
39
+
40
+ /**
41
+ * An implementation of Func_void_AccuracyAuthorization that is backed by a C++ implementation (using `std::function<...>`)
42
+ */
43
+ class JFunc_void_AccuracyAuthorization_cxx final: public jni::HybridClass<JFunc_void_AccuracyAuthorization_cxx, JFunc_void_AccuracyAuthorization> {
44
+ public:
45
+ static jni::local_ref<JFunc_void_AccuracyAuthorization::javaobject> fromCpp(const std::function<void(AccuracyAuthorization /* authorization */)>& func) {
46
+ return JFunc_void_AccuracyAuthorization_cxx::newObjectCxxArgs(func);
47
+ }
48
+
49
+ public:
50
+ /**
51
+ * Invokes the C++ `std::function<...>` this `JFunc_void_AccuracyAuthorization_cxx` instance holds.
52
+ */
53
+ void invoke_cxx(jni::alias_ref<JAccuracyAuthorization> authorization) {
54
+ _func(authorization->toCpp());
55
+ }
56
+
57
+ public:
58
+ [[nodiscard]]
59
+ inline const std::function<void(AccuracyAuthorization /* authorization */)>& getFunction() const {
60
+ return _func;
61
+ }
62
+
63
+ public:
64
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitrogeolocation/Func_void_AccuracyAuthorization_cxx;";
65
+ static void registerNatives() {
66
+ registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_AccuracyAuthorization_cxx::invoke_cxx)});
67
+ }
68
+
69
+ private:
70
+ explicit JFunc_void_AccuracyAuthorization_cxx(const std::function<void(AccuracyAuthorization /* authorization */)>& func): _func(func) { }
71
+
72
+ private:
73
+ friend HybridBase;
74
+ std::function<void(AccuracyAuthorization /* authorization */)> _func;
75
+ };
76
+
77
+ } // namespace margelo::nitro::nitrogeolocation