react-native-nitro-geolocation 1.1.3 → 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 +316 -0
  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
@@ -9,49 +9,116 @@
9
9
 
10
10
  // Forward declaration of `PermissionStatus` to properly resolve imports.
11
11
  namespace margelo::nitro::nitrogeolocation { enum class PermissionStatus; }
12
- // Forward declaration of `GeolocationResponse` to properly resolve imports.
13
- namespace margelo::nitro::nitrogeolocation { struct GeolocationResponse; }
14
- // Forward declaration of `GeolocationCoordinates` to properly resolve imports.
15
- namespace margelo::nitro::nitrogeolocation { struct GeolocationCoordinates; }
16
- // Forward declaration of `ModernGeolocationConfiguration` to properly resolve imports.
17
- namespace margelo::nitro::nitrogeolocation { struct ModernGeolocationConfiguration; }
12
+ // Forward declaration of `LocationProviderStatus` to properly resolve imports.
13
+ namespace margelo::nitro::nitrogeolocation { struct LocationProviderStatus; }
14
+ // Forward declaration of `LocationAvailability` to properly resolve imports.
15
+ namespace margelo::nitro::nitrogeolocation { struct LocationAvailability; }
16
+ // Forward declaration of `AccuracyAuthorization` to properly resolve imports.
17
+ namespace margelo::nitro::nitrogeolocation { enum class AccuracyAuthorization; }
18
+ // Forward declaration of `GeolocationConfiguration` to properly resolve imports.
19
+ namespace margelo::nitro::nitrogeolocation { struct GeolocationConfiguration; }
18
20
  // Forward declaration of `AuthorizationLevel` to properly resolve imports.
19
21
  namespace margelo::nitro::nitrogeolocation { enum class AuthorizationLevel; }
20
22
  // Forward declaration of `LocationProvider` to properly resolve imports.
21
23
  namespace margelo::nitro::nitrogeolocation { enum class LocationProvider; }
22
- // Forward declaration of `LocationRequestOptions` to properly resolve imports.
23
- namespace margelo::nitro::nitrogeolocation { struct LocationRequestOptions; }
24
24
  // Forward declaration of `LocationError` to properly resolve imports.
25
25
  namespace margelo::nitro::nitrogeolocation { struct LocationError; }
26
+ // Forward declaration of `LocationSettingsOptions` to properly resolve imports.
27
+ namespace margelo::nitro::nitrogeolocation { struct LocationSettingsOptions; }
28
+ // Forward declaration of `LocationAccuracyOptions` to properly resolve imports.
29
+ namespace margelo::nitro::nitrogeolocation { struct LocationAccuracyOptions; }
30
+ // Forward declaration of `AndroidAccuracyPreset` to properly resolve imports.
31
+ namespace margelo::nitro::nitrogeolocation { enum class AndroidAccuracyPreset; }
32
+ // Forward declaration of `IOSAccuracyPreset` to properly resolve imports.
33
+ namespace margelo::nitro::nitrogeolocation { enum class IOSAccuracyPreset; }
34
+ // Forward declaration of `GeolocationResponse` to properly resolve imports.
35
+ namespace margelo::nitro::nitrogeolocation { struct GeolocationResponse; }
36
+ // Forward declaration of `GeolocationCoordinates` to properly resolve imports.
37
+ namespace margelo::nitro::nitrogeolocation { struct GeolocationCoordinates; }
38
+ // Forward declaration of `LocationProviderUsed` to properly resolve imports.
39
+ namespace margelo::nitro::nitrogeolocation { enum class LocationProviderUsed; }
40
+ // Forward declaration of `LocationRequestOptions` to properly resolve imports.
41
+ namespace margelo::nitro::nitrogeolocation { struct LocationRequestOptions; }
42
+ // Forward declaration of `AndroidGranularity` to properly resolve imports.
43
+ namespace margelo::nitro::nitrogeolocation { enum class AndroidGranularity; }
44
+ // Forward declaration of `IOSActivityType` to properly resolve imports.
45
+ namespace margelo::nitro::nitrogeolocation { enum class IOSActivityType; }
46
+ // Forward declaration of `GeocodedLocation` to properly resolve imports.
47
+ namespace margelo::nitro::nitrogeolocation { struct GeocodedLocation; }
48
+ // Forward declaration of `GeocodingCoordinates` to properly resolve imports.
49
+ namespace margelo::nitro::nitrogeolocation { struct GeocodingCoordinates; }
50
+ // Forward declaration of `ReverseGeocodedAddress` to properly resolve imports.
51
+ namespace margelo::nitro::nitrogeolocation { struct ReverseGeocodedAddress; }
52
+ // Forward declaration of `Heading` to properly resolve imports.
53
+ namespace margelo::nitro::nitrogeolocation { struct Heading; }
54
+ // Forward declaration of `HeadingOptions` to properly resolve imports.
55
+ namespace margelo::nitro::nitrogeolocation { struct HeadingOptions; }
26
56
 
27
57
  #include "PermissionStatus.hpp"
28
58
  #include <NitroModules/Promise.hpp>
29
59
  #include <NitroModules/JPromise.hpp>
30
60
  #include "JPermissionStatus.hpp"
31
- #include "GeolocationResponse.hpp"
32
- #include "JGeolocationResponse.hpp"
33
- #include "GeolocationCoordinates.hpp"
34
- #include "JGeolocationCoordinates.hpp"
35
- #include <NitroModules/Null.hpp>
36
- #include <variant>
61
+ #include "LocationProviderStatus.hpp"
62
+ #include "JLocationProviderStatus.hpp"
37
63
  #include <optional>
38
- #include "JNullableDouble.hpp"
39
- #include <NitroModules/JNull.hpp>
64
+ #include "LocationAvailability.hpp"
65
+ #include "JLocationAvailability.hpp"
40
66
  #include <string>
41
- #include "ModernGeolocationConfiguration.hpp"
42
- #include "JModernGeolocationConfiguration.hpp"
67
+ #include "AccuracyAuthorization.hpp"
68
+ #include "JAccuracyAuthorization.hpp"
69
+ #include "GeolocationConfiguration.hpp"
70
+ #include "JGeolocationConfiguration.hpp"
43
71
  #include "AuthorizationLevel.hpp"
44
72
  #include "JAuthorizationLevel.hpp"
45
73
  #include "LocationProvider.hpp"
46
74
  #include "JLocationProvider.hpp"
47
- #include "LocationRequestOptions.hpp"
48
- #include "JLocationRequestOptions.hpp"
49
75
  #include <functional>
50
- #include "JFunc_void_GeolocationResponse.hpp"
76
+ #include "JFunc_void_PermissionStatus.hpp"
51
77
  #include <NitroModules/JNICallable.hpp>
52
78
  #include "LocationError.hpp"
53
79
  #include "JFunc_void_LocationError.hpp"
54
80
  #include "JLocationError.hpp"
81
+ #include "JFunc_void_LocationProviderStatus.hpp"
82
+ #include "LocationSettingsOptions.hpp"
83
+ #include "JLocationSettingsOptions.hpp"
84
+ #include "LocationAccuracyOptions.hpp"
85
+ #include "JLocationAccuracyOptions.hpp"
86
+ #include "AndroidAccuracyPreset.hpp"
87
+ #include "JAndroidAccuracyPreset.hpp"
88
+ #include "IOSAccuracyPreset.hpp"
89
+ #include "JIOSAccuracyPreset.hpp"
90
+ #include "JFunc_void_AccuracyAuthorization.hpp"
91
+ #include "GeolocationResponse.hpp"
92
+ #include "JFunc_void_GeolocationResponse.hpp"
93
+ #include "JGeolocationResponse.hpp"
94
+ #include "GeolocationCoordinates.hpp"
95
+ #include "JGeolocationCoordinates.hpp"
96
+ #include <NitroModules/Null.hpp>
97
+ #include <variant>
98
+ #include "JNullableDouble.hpp"
99
+ #include <NitroModules/JNull.hpp>
100
+ #include "LocationProviderUsed.hpp"
101
+ #include "JLocationProviderUsed.hpp"
102
+ #include "LocationRequestOptions.hpp"
103
+ #include "JLocationRequestOptions.hpp"
104
+ #include "AndroidGranularity.hpp"
105
+ #include "JAndroidGranularity.hpp"
106
+ #include "IOSActivityType.hpp"
107
+ #include "JIOSActivityType.hpp"
108
+ #include "GeocodedLocation.hpp"
109
+ #include <vector>
110
+ #include "JFunc_void_std__vector_GeocodedLocation_.hpp"
111
+ #include "JGeocodedLocation.hpp"
112
+ #include "GeocodingCoordinates.hpp"
113
+ #include "JGeocodingCoordinates.hpp"
114
+ #include "ReverseGeocodedAddress.hpp"
115
+ #include "JFunc_void_std__vector_ReverseGeocodedAddress_.hpp"
116
+ #include "JReverseGeocodedAddress.hpp"
117
+ #include "Heading.hpp"
118
+ #include "JFunc_void_Heading.hpp"
119
+ #include "JHeading.hpp"
120
+ #include "HeadingOptions.hpp"
121
+ #include "JHeadingOptions.hpp"
55
122
 
56
123
  namespace margelo::nitro::nitrogeolocation {
57
124
 
@@ -86,9 +153,9 @@ namespace margelo::nitro::nitrogeolocation {
86
153
 
87
154
 
88
155
  // Methods
89
- void JHybridNitroGeolocationSpec::setConfiguration(const ModernGeolocationConfiguration& config) {
90
- static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JModernGeolocationConfiguration> /* config */)>("setConfiguration");
91
- method(_javaPart, JModernGeolocationConfiguration::fromCpp(config));
156
+ void JHybridNitroGeolocationSpec::setConfiguration(const GeolocationConfiguration& config) {
157
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JGeolocationConfiguration> /* config */)>("setConfiguration");
158
+ method(_javaPart, JGeolocationConfiguration::fromCpp(config));
92
159
  }
93
160
  std::shared_ptr<Promise<PermissionStatus>> JHybridNitroGeolocationSpec::checkPermission() {
94
161
  static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("checkPermission");
@@ -106,13 +173,49 @@ namespace margelo::nitro::nitrogeolocation {
106
173
  return __promise;
107
174
  }();
108
175
  }
109
- std::shared_ptr<Promise<PermissionStatus>> JHybridNitroGeolocationSpec::requestPermission() {
110
- static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("requestPermission");
176
+ void JHybridNitroGeolocationSpec::requestPermission(const std::function<void(PermissionStatus /* status */)>& success, const std::optional<std::function<void(const LocationError& /* error */)>>& error) {
177
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_PermissionStatus::javaobject> /* success */, jni::alias_ref<JFunc_void_LocationError::javaobject> /* error */)>("requestPermission_cxx");
178
+ method(_javaPart, JFunc_void_PermissionStatus_cxx::fromCpp(success), error.has_value() ? JFunc_void_LocationError_cxx::fromCpp(error.value()) : nullptr);
179
+ }
180
+ std::shared_ptr<Promise<bool>> JHybridNitroGeolocationSpec::hasServicesEnabled() {
181
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("hasServicesEnabled");
182
+ auto __result = method(_javaPart);
183
+ return [&]() {
184
+ auto __promise = Promise<bool>::create();
185
+ __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
186
+ auto __result = jni::static_ref_cast<jni::JBoolean>(__boxedResult);
187
+ __promise->resolve(static_cast<bool>(__result->value()));
188
+ });
189
+ __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
190
+ jni::JniException __jniError(__throwable);
191
+ __promise->reject(std::make_exception_ptr(__jniError));
192
+ });
193
+ return __promise;
194
+ }();
195
+ }
196
+ std::shared_ptr<Promise<LocationProviderStatus>> JHybridNitroGeolocationSpec::getProviderStatus() {
197
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getProviderStatus");
198
+ auto __result = method(_javaPart);
199
+ return [&]() {
200
+ auto __promise = Promise<LocationProviderStatus>::create();
201
+ __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
202
+ auto __result = jni::static_ref_cast<JLocationProviderStatus>(__boxedResult);
203
+ __promise->resolve(__result->toCpp());
204
+ });
205
+ __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
206
+ jni::JniException __jniError(__throwable);
207
+ __promise->reject(std::make_exception_ptr(__jniError));
208
+ });
209
+ return __promise;
210
+ }();
211
+ }
212
+ std::shared_ptr<Promise<LocationAvailability>> JHybridNitroGeolocationSpec::getLocationAvailability() {
213
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getLocationAvailability");
111
214
  auto __result = method(_javaPart);
112
215
  return [&]() {
113
- auto __promise = Promise<PermissionStatus>::create();
216
+ auto __promise = Promise<LocationAvailability>::create();
114
217
  __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
115
- auto __result = jni::static_ref_cast<JPermissionStatus>(__boxedResult);
218
+ auto __result = jni::static_ref_cast<JLocationAvailability>(__boxedResult);
116
219
  __promise->resolve(__result->toCpp());
117
220
  });
118
221
  __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
@@ -122,13 +225,17 @@ namespace margelo::nitro::nitrogeolocation {
122
225
  return __promise;
123
226
  }();
124
227
  }
125
- std::shared_ptr<Promise<GeolocationResponse>> JHybridNitroGeolocationSpec::getCurrentPosition(const std::optional<LocationRequestOptions>& options) {
126
- static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<JLocationRequestOptions> /* options */)>("getCurrentPosition");
127
- auto __result = method(_javaPart, options.has_value() ? JLocationRequestOptions::fromCpp(options.value()) : nullptr);
228
+ void JHybridNitroGeolocationSpec::requestLocationSettings(const std::function<void(const LocationProviderStatus& /* status */)>& success, const std::optional<std::function<void(const LocationError& /* error */)>>& error, const std::optional<LocationSettingsOptions>& options) {
229
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_LocationProviderStatus::javaobject> /* success */, jni::alias_ref<JFunc_void_LocationError::javaobject> /* error */, jni::alias_ref<JLocationSettingsOptions> /* options */)>("requestLocationSettings_cxx");
230
+ method(_javaPart, JFunc_void_LocationProviderStatus_cxx::fromCpp(success), error.has_value() ? JFunc_void_LocationError_cxx::fromCpp(error.value()) : nullptr, options.has_value() ? JLocationSettingsOptions::fromCpp(options.value()) : nullptr);
231
+ }
232
+ std::shared_ptr<Promise<AccuracyAuthorization>> JHybridNitroGeolocationSpec::getAccuracyAuthorization() {
233
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("getAccuracyAuthorization");
234
+ auto __result = method(_javaPart);
128
235
  return [&]() {
129
- auto __promise = Promise<GeolocationResponse>::create();
236
+ auto __promise = Promise<AccuracyAuthorization>::create();
130
237
  __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
131
- auto __result = jni::static_ref_cast<JGeolocationResponse>(__boxedResult);
238
+ auto __result = jni::static_ref_cast<JAccuracyAuthorization>(__boxedResult);
132
239
  __promise->resolve(__result->toCpp());
133
240
  });
134
241
  __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
@@ -138,6 +245,35 @@ namespace margelo::nitro::nitrogeolocation {
138
245
  return __promise;
139
246
  }();
140
247
  }
248
+ void JHybridNitroGeolocationSpec::requestTemporaryFullAccuracy(const std::string& purposeKey, const std::function<void(AccuracyAuthorization /* authorization */)>& success, const std::optional<std::function<void(const LocationError& /* error */)>>& error) {
249
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* purposeKey */, jni::alias_ref<JFunc_void_AccuracyAuthorization::javaobject> /* success */, jni::alias_ref<JFunc_void_LocationError::javaobject> /* error */)>("requestTemporaryFullAccuracy_cxx");
250
+ method(_javaPart, jni::make_jstring(purposeKey), JFunc_void_AccuracyAuthorization_cxx::fromCpp(success), error.has_value() ? JFunc_void_LocationError_cxx::fromCpp(error.value()) : nullptr);
251
+ }
252
+ void JHybridNitroGeolocationSpec::getCurrentPosition(const std::function<void(const GeolocationResponse& /* position */)>& success, const std::optional<std::function<void(const LocationError& /* error */)>>& error, const std::optional<LocationRequestOptions>& options) {
253
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_GeolocationResponse::javaobject> /* success */, jni::alias_ref<JFunc_void_LocationError::javaobject> /* error */, jni::alias_ref<JLocationRequestOptions> /* options */)>("getCurrentPosition_cxx");
254
+ 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);
255
+ }
256
+ void JHybridNitroGeolocationSpec::getLastKnownPosition(const std::function<void(const GeolocationResponse& /* position */)>& success, const std::optional<std::function<void(const LocationError& /* error */)>>& error, const std::optional<LocationRequestOptions>& options) {
257
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_GeolocationResponse::javaobject> /* success */, jni::alias_ref<JFunc_void_LocationError::javaobject> /* error */, jni::alias_ref<JLocationRequestOptions> /* options */)>("getLastKnownPosition_cxx");
258
+ 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);
259
+ }
260
+ void JHybridNitroGeolocationSpec::geocode(const std::string& address, const std::function<void(const std::vector<GeocodedLocation>& /* locations */)>& success, const std::optional<std::function<void(const LocationError& /* error */)>>& error) {
261
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<jni::JString> /* address */, jni::alias_ref<JFunc_void_std__vector_GeocodedLocation_::javaobject> /* success */, jni::alias_ref<JFunc_void_LocationError::javaobject> /* error */)>("geocode_cxx");
262
+ method(_javaPart, jni::make_jstring(address), JFunc_void_std__vector_GeocodedLocation__cxx::fromCpp(success), error.has_value() ? JFunc_void_LocationError_cxx::fromCpp(error.value()) : nullptr);
263
+ }
264
+ void JHybridNitroGeolocationSpec::reverseGeocode(const GeocodingCoordinates& coords, const std::function<void(const std::vector<ReverseGeocodedAddress>& /* addresses */)>& success, const std::optional<std::function<void(const LocationError& /* error */)>>& error) {
265
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JGeocodingCoordinates> /* coords */, jni::alias_ref<JFunc_void_std__vector_ReverseGeocodedAddress_::javaobject> /* success */, jni::alias_ref<JFunc_void_LocationError::javaobject> /* error */)>("reverseGeocode_cxx");
266
+ method(_javaPart, JGeocodingCoordinates::fromCpp(coords), JFunc_void_std__vector_ReverseGeocodedAddress__cxx::fromCpp(success), error.has_value() ? JFunc_void_LocationError_cxx::fromCpp(error.value()) : nullptr);
267
+ }
268
+ void JHybridNitroGeolocationSpec::getHeading(const std::function<void(const Heading& /* heading */)>& success, const std::optional<std::function<void(const LocationError& /* error */)>>& error) {
269
+ static const auto method = _javaPart->javaClassStatic()->getMethod<void(jni::alias_ref<JFunc_void_Heading::javaobject> /* success */, jni::alias_ref<JFunc_void_LocationError::javaobject> /* error */)>("getHeading_cxx");
270
+ method(_javaPart, JFunc_void_Heading_cxx::fromCpp(success), error.has_value() ? JFunc_void_LocationError_cxx::fromCpp(error.value()) : nullptr);
271
+ }
272
+ std::string JHybridNitroGeolocationSpec::watchHeading(const std::function<void(const Heading& /* heading */)>& success, const std::optional<std::function<void(const LocationError& /* error */)>>& error, const std::optional<HeadingOptions>& options) {
273
+ static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JString>(jni::alias_ref<JFunc_void_Heading::javaobject> /* success */, jni::alias_ref<JFunc_void_LocationError::javaobject> /* error */, jni::alias_ref<JHeadingOptions> /* options */)>("watchHeading_cxx");
274
+ auto __result = method(_javaPart, JFunc_void_Heading_cxx::fromCpp(success), error.has_value() ? JFunc_void_LocationError_cxx::fromCpp(error.value()) : nullptr, options.has_value() ? JHeadingOptions::fromCpp(options.value()) : nullptr);
275
+ return __result->toStdString();
276
+ }
141
277
  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) {
142
278
  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");
143
279
  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);
@@ -54,10 +54,21 @@ namespace margelo::nitro::nitrogeolocation {
54
54
 
55
55
  public:
56
56
  // Methods
57
- void setConfiguration(const ModernGeolocationConfiguration& config) override;
57
+ void setConfiguration(const GeolocationConfiguration& config) override;
58
58
  std::shared_ptr<Promise<PermissionStatus>> checkPermission() override;
59
- std::shared_ptr<Promise<PermissionStatus>> requestPermission() override;
60
- std::shared_ptr<Promise<GeolocationResponse>> getCurrentPosition(const std::optional<LocationRequestOptions>& options) override;
59
+ void requestPermission(const std::function<void(PermissionStatus /* status */)>& success, const std::optional<std::function<void(const LocationError& /* error */)>>& error) override;
60
+ std::shared_ptr<Promise<bool>> hasServicesEnabled() override;
61
+ std::shared_ptr<Promise<LocationProviderStatus>> getProviderStatus() override;
62
+ std::shared_ptr<Promise<LocationAvailability>> getLocationAvailability() override;
63
+ void requestLocationSettings(const std::function<void(const LocationProviderStatus& /* status */)>& success, const std::optional<std::function<void(const LocationError& /* error */)>>& error, const std::optional<LocationSettingsOptions>& options) override;
64
+ std::shared_ptr<Promise<AccuracyAuthorization>> getAccuracyAuthorization() override;
65
+ void requestTemporaryFullAccuracy(const std::string& purposeKey, const std::function<void(AccuracyAuthorization /* authorization */)>& success, const std::optional<std::function<void(const LocationError& /* error */)>>& error) override;
66
+ void getCurrentPosition(const std::function<void(const GeolocationResponse& /* position */)>& success, const std::optional<std::function<void(const LocationError& /* error */)>>& error, const std::optional<LocationRequestOptions>& options) override;
67
+ void getLastKnownPosition(const std::function<void(const GeolocationResponse& /* position */)>& success, const std::optional<std::function<void(const LocationError& /* error */)>>& error, const std::optional<LocationRequestOptions>& options) override;
68
+ void geocode(const std::string& address, const std::function<void(const std::vector<GeocodedLocation>& /* locations */)>& success, const std::optional<std::function<void(const LocationError& /* error */)>>& error) override;
69
+ void reverseGeocode(const GeocodingCoordinates& coords, const std::function<void(const std::vector<ReverseGeocodedAddress>& /* addresses */)>& success, const std::optional<std::function<void(const LocationError& /* error */)>>& error) override;
70
+ void getHeading(const std::function<void(const Heading& /* heading */)>& success, const std::optional<std::function<void(const LocationError& /* error */)>>& error) override;
71
+ std::string watchHeading(const std::function<void(const Heading& /* heading */)>& success, const std::optional<std::function<void(const LocationError& /* error */)>>& error, const std::optional<HeadingOptions>& options) override;
61
72
  std::string watchPosition(const std::function<void(const GeolocationResponse& /* position */)>& success, const std::optional<std::function<void(const LocationError& /* error */)>>& error, const std::optional<LocationRequestOptions>& options) override;
62
73
  void unwatch(const std::string& token) override;
63
74
  void stopObserving() override;
@@ -0,0 +1,73 @@
1
+ ///
2
+ /// JIOSAccuracyPreset.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 "IOSAccuracyPreset.hpp"
12
+
13
+ namespace margelo::nitro::nitrogeolocation {
14
+
15
+ using namespace facebook;
16
+
17
+ /**
18
+ * The C++ JNI bridge between the C++ enum "IOSAccuracyPreset" and the the Kotlin enum "IOSAccuracyPreset".
19
+ */
20
+ struct JIOSAccuracyPreset final: public jni::JavaClass<JIOSAccuracyPreset> {
21
+ public:
22
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitrogeolocation/IOSAccuracyPreset;";
23
+
24
+ public:
25
+ /**
26
+ * Convert this Java/Kotlin-based enum to the C++ enum IOSAccuracyPreset.
27
+ */
28
+ [[maybe_unused]]
29
+ [[nodiscard]]
30
+ IOSAccuracyPreset 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<IOSAccuracyPreset>(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<JIOSAccuracyPreset> fromCpp(IOSAccuracyPreset value) {
43
+ static const auto clazz = javaClassStatic();
44
+ switch (value) {
45
+ case IOSAccuracyPreset::BESTFORNAVIGATION:
46
+ static const auto fieldBESTFORNAVIGATION = clazz->getStaticField<JIOSAccuracyPreset>("BESTFORNAVIGATION");
47
+ return clazz->getStaticFieldValue(fieldBESTFORNAVIGATION);
48
+ case IOSAccuracyPreset::BEST:
49
+ static const auto fieldBEST = clazz->getStaticField<JIOSAccuracyPreset>("BEST");
50
+ return clazz->getStaticFieldValue(fieldBEST);
51
+ case IOSAccuracyPreset::NEARESTTENMETERS:
52
+ static const auto fieldNEARESTTENMETERS = clazz->getStaticField<JIOSAccuracyPreset>("NEARESTTENMETERS");
53
+ return clazz->getStaticFieldValue(fieldNEARESTTENMETERS);
54
+ case IOSAccuracyPreset::HUNDREDMETERS:
55
+ static const auto fieldHUNDREDMETERS = clazz->getStaticField<JIOSAccuracyPreset>("HUNDREDMETERS");
56
+ return clazz->getStaticFieldValue(fieldHUNDREDMETERS);
57
+ case IOSAccuracyPreset::KILOMETER:
58
+ static const auto fieldKILOMETER = clazz->getStaticField<JIOSAccuracyPreset>("KILOMETER");
59
+ return clazz->getStaticFieldValue(fieldKILOMETER);
60
+ case IOSAccuracyPreset::THREEKILOMETERS:
61
+ static const auto fieldTHREEKILOMETERS = clazz->getStaticField<JIOSAccuracyPreset>("THREEKILOMETERS");
62
+ return clazz->getStaticFieldValue(fieldTHREEKILOMETERS);
63
+ case IOSAccuracyPreset::REDUCED:
64
+ static const auto fieldREDUCED = clazz->getStaticField<JIOSAccuracyPreset>("REDUCED");
65
+ return clazz->getStaticFieldValue(fieldREDUCED);
66
+ default:
67
+ std::string stringValue = std::to_string(static_cast<int>(value));
68
+ throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
69
+ }
70
+ }
71
+ };
72
+
73
+ } // namespace margelo::nitro::nitrogeolocation
@@ -0,0 +1,67 @@
1
+ ///
2
+ /// JIOSActivityType.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 "IOSActivityType.hpp"
12
+
13
+ namespace margelo::nitro::nitrogeolocation {
14
+
15
+ using namespace facebook;
16
+
17
+ /**
18
+ * The C++ JNI bridge between the C++ enum "IOSActivityType" and the the Kotlin enum "IOSActivityType".
19
+ */
20
+ struct JIOSActivityType final: public jni::JavaClass<JIOSActivityType> {
21
+ public:
22
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitrogeolocation/IOSActivityType;";
23
+
24
+ public:
25
+ /**
26
+ * Convert this Java/Kotlin-based enum to the C++ enum IOSActivityType.
27
+ */
28
+ [[maybe_unused]]
29
+ [[nodiscard]]
30
+ IOSActivityType 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<IOSActivityType>(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<JIOSActivityType> fromCpp(IOSActivityType value) {
43
+ static const auto clazz = javaClassStatic();
44
+ switch (value) {
45
+ case IOSActivityType::OTHER:
46
+ static const auto fieldOTHER = clazz->getStaticField<JIOSActivityType>("OTHER");
47
+ return clazz->getStaticFieldValue(fieldOTHER);
48
+ case IOSActivityType::AUTOMOTIVENAVIGATION:
49
+ static const auto fieldAUTOMOTIVENAVIGATION = clazz->getStaticField<JIOSActivityType>("AUTOMOTIVENAVIGATION");
50
+ return clazz->getStaticFieldValue(fieldAUTOMOTIVENAVIGATION);
51
+ case IOSActivityType::FITNESS:
52
+ static const auto fieldFITNESS = clazz->getStaticField<JIOSActivityType>("FITNESS");
53
+ return clazz->getStaticFieldValue(fieldFITNESS);
54
+ case IOSActivityType::OTHERNAVIGATION:
55
+ static const auto fieldOTHERNAVIGATION = clazz->getStaticField<JIOSActivityType>("OTHERNAVIGATION");
56
+ return clazz->getStaticFieldValue(fieldOTHERNAVIGATION);
57
+ case IOSActivityType::AIRBORNE:
58
+ static const auto fieldAIRBORNE = clazz->getStaticField<JIOSActivityType>("AIRBORNE");
59
+ return clazz->getStaticFieldValue(fieldAIRBORNE);
60
+ default:
61
+ std::string stringValue = std::to_string(static_cast<int>(value));
62
+ throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
63
+ }
64
+ }
65
+ };
66
+
67
+ } // namespace margelo::nitro::nitrogeolocation
@@ -0,0 +1,65 @@
1
+ ///
2
+ /// JLocationAccuracyOptions.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 "LocationAccuracyOptions.hpp"
12
+
13
+ #include "AndroidAccuracyPreset.hpp"
14
+ #include "IOSAccuracyPreset.hpp"
15
+ #include "JAndroidAccuracyPreset.hpp"
16
+ #include "JIOSAccuracyPreset.hpp"
17
+ #include <optional>
18
+
19
+ namespace margelo::nitro::nitrogeolocation {
20
+
21
+ using namespace facebook;
22
+
23
+ /**
24
+ * The C++ JNI bridge between the C++ struct "LocationAccuracyOptions" and the the Kotlin data class "LocationAccuracyOptions".
25
+ */
26
+ struct JLocationAccuracyOptions final: public jni::JavaClass<JLocationAccuracyOptions> {
27
+ public:
28
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitrogeolocation/LocationAccuracyOptions;";
29
+
30
+ public:
31
+ /**
32
+ * Convert this Java/Kotlin-based struct to the C++ struct LocationAccuracyOptions by copying all values to C++.
33
+ */
34
+ [[maybe_unused]]
35
+ [[nodiscard]]
36
+ LocationAccuracyOptions toCpp() const {
37
+ static const auto clazz = javaClassStatic();
38
+ static const auto fieldAndroid = clazz->getField<JAndroidAccuracyPreset>("android");
39
+ jni::local_ref<JAndroidAccuracyPreset> android = this->getFieldValue(fieldAndroid);
40
+ static const auto fieldIos = clazz->getField<JIOSAccuracyPreset>("ios");
41
+ jni::local_ref<JIOSAccuracyPreset> ios = this->getFieldValue(fieldIos);
42
+ return LocationAccuracyOptions(
43
+ android != nullptr ? std::make_optional(android->toCpp()) : std::nullopt,
44
+ ios != nullptr ? std::make_optional(ios->toCpp()) : std::nullopt
45
+ );
46
+ }
47
+
48
+ public:
49
+ /**
50
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
51
+ */
52
+ [[maybe_unused]]
53
+ static jni::local_ref<JLocationAccuracyOptions::javaobject> fromCpp(const LocationAccuracyOptions& value) {
54
+ using JSignature = JLocationAccuracyOptions(jni::alias_ref<JAndroidAccuracyPreset>, jni::alias_ref<JIOSAccuracyPreset>);
55
+ static const auto clazz = javaClassStatic();
56
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
57
+ return create(
58
+ clazz,
59
+ value.android.has_value() ? JAndroidAccuracyPreset::fromCpp(value.android.value()) : nullptr,
60
+ value.ios.has_value() ? JIOSAccuracyPreset::fromCpp(value.ios.value()) : nullptr
61
+ );
62
+ }
63
+ };
64
+
65
+ } // namespace margelo::nitro::nitrogeolocation
@@ -0,0 +1,62 @@
1
+ ///
2
+ /// JLocationAvailability.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 "LocationAvailability.hpp"
12
+
13
+ #include <optional>
14
+ #include <string>
15
+
16
+ namespace margelo::nitro::nitrogeolocation {
17
+
18
+ using namespace facebook;
19
+
20
+ /**
21
+ * The C++ JNI bridge between the C++ struct "LocationAvailability" and the the Kotlin data class "LocationAvailability".
22
+ */
23
+ struct JLocationAvailability final: public jni::JavaClass<JLocationAvailability> {
24
+ public:
25
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitrogeolocation/LocationAvailability;";
26
+
27
+ public:
28
+ /**
29
+ * Convert this Java/Kotlin-based struct to the C++ struct LocationAvailability by copying all values to C++.
30
+ */
31
+ [[maybe_unused]]
32
+ [[nodiscard]]
33
+ LocationAvailability toCpp() const {
34
+ static const auto clazz = javaClassStatic();
35
+ static const auto fieldAvailable = clazz->getField<jboolean>("available");
36
+ jboolean available = this->getFieldValue(fieldAvailable);
37
+ static const auto fieldReason = clazz->getField<jni::JString>("reason");
38
+ jni::local_ref<jni::JString> reason = this->getFieldValue(fieldReason);
39
+ return LocationAvailability(
40
+ static_cast<bool>(available),
41
+ reason != nullptr ? std::make_optional(reason->toStdString()) : std::nullopt
42
+ );
43
+ }
44
+
45
+ public:
46
+ /**
47
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
48
+ */
49
+ [[maybe_unused]]
50
+ static jni::local_ref<JLocationAvailability::javaobject> fromCpp(const LocationAvailability& value) {
51
+ using JSignature = JLocationAvailability(jboolean, jni::alias_ref<jni::JString>);
52
+ static const auto clazz = javaClassStatic();
53
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
54
+ return create(
55
+ clazz,
56
+ value.available,
57
+ value.reason.has_value() ? jni::make_jstring(value.reason.value()) : nullptr
58
+ );
59
+ }
60
+ };
61
+
62
+ } // namespace margelo::nitro::nitrogeolocation
@@ -0,0 +1,77 @@
1
+ ///
2
+ /// JLocationProviderStatus.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 "LocationProviderStatus.hpp"
12
+
13
+ #include <optional>
14
+
15
+ namespace margelo::nitro::nitrogeolocation {
16
+
17
+ using namespace facebook;
18
+
19
+ /**
20
+ * The C++ JNI bridge between the C++ struct "LocationProviderStatus" and the the Kotlin data class "LocationProviderStatus".
21
+ */
22
+ struct JLocationProviderStatus final: public jni::JavaClass<JLocationProviderStatus> {
23
+ public:
24
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitrogeolocation/LocationProviderStatus;";
25
+
26
+ public:
27
+ /**
28
+ * Convert this Java/Kotlin-based struct to the C++ struct LocationProviderStatus by copying all values to C++.
29
+ */
30
+ [[maybe_unused]]
31
+ [[nodiscard]]
32
+ LocationProviderStatus toCpp() const {
33
+ static const auto clazz = javaClassStatic();
34
+ static const auto fieldLocationServicesEnabled = clazz->getField<jboolean>("locationServicesEnabled");
35
+ jboolean locationServicesEnabled = this->getFieldValue(fieldLocationServicesEnabled);
36
+ static const auto fieldBackgroundModeEnabled = clazz->getField<jboolean>("backgroundModeEnabled");
37
+ jboolean backgroundModeEnabled = this->getFieldValue(fieldBackgroundModeEnabled);
38
+ static const auto fieldGpsAvailable = clazz->getField<jni::JBoolean>("gpsAvailable");
39
+ jni::local_ref<jni::JBoolean> gpsAvailable = this->getFieldValue(fieldGpsAvailable);
40
+ static const auto fieldNetworkAvailable = clazz->getField<jni::JBoolean>("networkAvailable");
41
+ jni::local_ref<jni::JBoolean> networkAvailable = this->getFieldValue(fieldNetworkAvailable);
42
+ static const auto fieldPassiveAvailable = clazz->getField<jni::JBoolean>("passiveAvailable");
43
+ jni::local_ref<jni::JBoolean> passiveAvailable = this->getFieldValue(fieldPassiveAvailable);
44
+ static const auto fieldGoogleLocationAccuracyEnabled = clazz->getField<jni::JBoolean>("googleLocationAccuracyEnabled");
45
+ jni::local_ref<jni::JBoolean> googleLocationAccuracyEnabled = this->getFieldValue(fieldGoogleLocationAccuracyEnabled);
46
+ return LocationProviderStatus(
47
+ static_cast<bool>(locationServicesEnabled),
48
+ static_cast<bool>(backgroundModeEnabled),
49
+ gpsAvailable != nullptr ? std::make_optional(static_cast<bool>(gpsAvailable->value())) : std::nullopt,
50
+ networkAvailable != nullptr ? std::make_optional(static_cast<bool>(networkAvailable->value())) : std::nullopt,
51
+ passiveAvailable != nullptr ? std::make_optional(static_cast<bool>(passiveAvailable->value())) : std::nullopt,
52
+ googleLocationAccuracyEnabled != nullptr ? std::make_optional(static_cast<bool>(googleLocationAccuracyEnabled->value())) : std::nullopt
53
+ );
54
+ }
55
+
56
+ public:
57
+ /**
58
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
59
+ */
60
+ [[maybe_unused]]
61
+ static jni::local_ref<JLocationProviderStatus::javaobject> fromCpp(const LocationProviderStatus& value) {
62
+ using JSignature = JLocationProviderStatus(jboolean, jboolean, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JBoolean>, jni::alias_ref<jni::JBoolean>);
63
+ static const auto clazz = javaClassStatic();
64
+ static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
65
+ return create(
66
+ clazz,
67
+ value.locationServicesEnabled,
68
+ value.backgroundModeEnabled,
69
+ value.gpsAvailable.has_value() ? jni::JBoolean::valueOf(value.gpsAvailable.value()) : nullptr,
70
+ value.networkAvailable.has_value() ? jni::JBoolean::valueOf(value.networkAvailable.value()) : nullptr,
71
+ value.passiveAvailable.has_value() ? jni::JBoolean::valueOf(value.passiveAvailable.value()) : nullptr,
72
+ value.googleLocationAccuracyEnabled.has_value() ? jni::JBoolean::valueOf(value.googleLocationAccuracyEnabled.value()) : nullptr
73
+ );
74
+ }
75
+ };
76
+
77
+ } // namespace margelo::nitro::nitrogeolocation