react-native-nitro-geolocation 1.2.6 → 1.3.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 (223) hide show
  1. package/README.md +52 -295
  2. package/android/build.gradle +1 -0
  3. package/android/src/main/AndroidManifest.xml +39 -0
  4. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/AndroidFusedLocationProvider.kt +310 -0
  5. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/AndroidFusedRequestFactory.kt +31 -0
  6. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/AndroidGeolocationConversions.kt +71 -0
  7. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/AndroidGeolocationErrors.kt +85 -0
  8. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/AndroidGeolocationOptions.kt +92 -0
  9. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/AndroidLocationSettings.kt +3 -0
  10. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/AndroidProviderRoute.kt +74 -0
  11. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/NitroBackgroundLocation.kt +132 -0
  12. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/NitroGeolocation.kt +219 -476
  13. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/background/AndroidBackgroundHttpSync.kt +134 -0
  14. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/background/AndroidBackgroundPermissions.kt +196 -0
  15. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/background/AndroidBackgroundSerialization.kt +266 -0
  16. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/background/NitroActivityRecognitionReceiver.kt +13 -0
  17. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/background/NitroBackgroundEventHub.kt +65 -0
  18. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/background/NitroBackgroundHeadlessTaskService.kt +58 -0
  19. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/background/NitroBackgroundLocationController.kt +710 -0
  20. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/background/NitroBackgroundLocationService.kt +48 -0
  21. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/background/NitroBackgroundNotificationFactory.kt +37 -0
  22. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/background/NitroBackgroundStore.kt +655 -0
  23. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/background/NitroBootReceiver.kt +26 -0
  24. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/background/NitroGeofenceReceiver.kt +14 -0
  25. package/android/src/main/java/com/margelo/nitro/nitrogeolocation/background/NitroLocationUpdateReceiver.kt +37 -0
  26. package/android/src/test/java/com/margelo/nitro/nitrogeolocation/AndroidFusedLocationProviderTest.kt +64 -0
  27. package/android/src/test/java/com/margelo/nitro/nitrogeolocation/AndroidProviderRouteTest.kt +116 -0
  28. package/ios/IOSBackgroundHttpSync.swift +126 -0
  29. package/ios/IOSBackgroundLocationDelegate.swift +36 -0
  30. package/ios/IOSBackgroundMotion.swift +55 -0
  31. package/ios/IOSBackgroundSerialization.swift +539 -0
  32. package/ios/IOSGeolocationConversions.swift +131 -0
  33. package/ios/IOSGeolocationDelegate.swift +31 -0
  34. package/ios/IOSGeolocationErrors.swift +39 -0
  35. package/ios/IOSGeolocationOptions.swift +135 -0
  36. package/ios/NitroBackgroundLocation.swift +849 -0
  37. package/ios/NitroGeolocation.swift +14 -347
  38. package/nitrogen/generated/android/c++/JActivityRecognitionOptions.hpp +69 -0
  39. package/nitrogen/generated/android/c++/JAndroidBackgroundLocationOptions.hpp +74 -0
  40. package/nitrogen/generated/android/c++/JAndroidBackgroundLocationStatus.hpp +67 -0
  41. package/nitrogen/generated/android/c++/JAndroidBackgroundProvider.hpp +61 -0
  42. package/nitrogen/generated/android/c++/JAndroidForegroundServiceOptions.hpp +90 -0
  43. package/nitrogen/generated/android/c++/JBackgroundEventEnvelope.hpp +129 -0
  44. package/nitrogen/generated/android/c++/JBackgroundEventType.hpp +70 -0
  45. package/nitrogen/generated/android/c++/JBackgroundHttpMethod.hpp +61 -0
  46. package/nitrogen/generated/android/c++/JBackgroundHttpSyncOptions.hpp +131 -0
  47. package/nitrogen/generated/android/c++/JBackgroundHttpSyncResult.hpp +111 -0
  48. package/nitrogen/generated/android/c++/JBackgroundLocation.hpp +110 -0
  49. package/nitrogen/generated/android/c++/JBackgroundLocationOptions.hpp +162 -0
  50. package/nitrogen/generated/android/c++/JBackgroundLocationSource.hpp +73 -0
  51. package/nitrogen/generated/android/c++/JBackgroundLocationState.hpp +70 -0
  52. package/nitrogen/generated/android/c++/JBackgroundLocationStatus.hpp +126 -0
  53. package/nitrogen/generated/android/c++/JBackgroundPermissionResult.hpp +79 -0
  54. package/nitrogen/generated/android/c++/JBackgroundPermissionStatus.hpp +64 -0
  55. package/nitrogen/generated/android/c++/JBackgroundTrackingMode.hpp +61 -0
  56. package/nitrogen/generated/android/c++/JBatterySnapshot.hpp +61 -0
  57. package/nitrogen/generated/android/c++/JDetectedActivity.hpp +66 -0
  58. package/nitrogen/generated/android/c++/JDetectedActivityType.hpp +76 -0
  59. package/nitrogen/generated/android/c++/JFunc_void_BackgroundEventEnvelope.hpp +114 -0
  60. package/nitrogen/generated/android/c++/JFunc_void_BackgroundLocation.hpp +95 -0
  61. package/nitrogen/generated/android/c++/JGeofenceEvent.hpp +94 -0
  62. package/nitrogen/generated/android/c++/JGeofenceRegion.hpp +112 -0
  63. package/nitrogen/generated/android/c++/JGeofenceTransition.hpp +61 -0
  64. package/nitrogen/generated/android/c++/JGeofencingOptions.hpp +82 -0
  65. package/nitrogen/generated/android/c++/JGetStoredBackgroundEventsOptions.hpp +90 -0
  66. package/nitrogen/generated/android/c++/JGetStoredBackgroundLocationsOptions.hpp +69 -0
  67. package/nitrogen/generated/android/c++/JHybridNitroBackgroundLocationSpec.cpp +662 -0
  68. package/nitrogen/generated/android/c++/JHybridNitroBackgroundLocationSpec.hpp +89 -0
  69. package/nitrogen/generated/android/c++/JIOSBackgroundActivityType.hpp +67 -0
  70. package/nitrogen/generated/android/c++/JIOSBackgroundLocationOptions.hpp +79 -0
  71. package/nitrogen/generated/android/c++/JIOSBackgroundLocationStatus.hpp +61 -0
  72. package/nitrogen/generated/android/c++/JLocationProviderStatus.hpp +5 -1
  73. package/nitrogen/generated/android/c++/JStoredBackgroundEventEnvelope.hpp +115 -0
  74. package/nitrogen/generated/android/c++/JStoredBackgroundLocation.hpp +122 -0
  75. package/nitrogen/generated/android/c++/JVariant_NullType_Boolean_String_Double.cpp +34 -0
  76. package/nitrogen/generated/android/c++/JVariant_NullType_Boolean_String_Double.hpp +100 -0
  77. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/ActivityRecognitionOptions.kt +66 -0
  78. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/AndroidBackgroundLocationOptions.kt +66 -0
  79. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/AndroidBackgroundLocationStatus.kt +61 -0
  80. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/AndroidBackgroundProvider.kt +24 -0
  81. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/AndroidForegroundServiceOptions.kt +91 -0
  82. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/BackgroundEventEnvelope.kt +96 -0
  83. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/BackgroundEventType.kt +27 -0
  84. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/BackgroundHttpMethod.kt +24 -0
  85. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/BackgroundHttpSyncOptions.kt +101 -0
  86. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/BackgroundHttpSyncResult.kt +71 -0
  87. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/BackgroundLocation.kt +96 -0
  88. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/BackgroundLocationOptions.kt +136 -0
  89. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/BackgroundLocationSource.kt +28 -0
  90. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/BackgroundLocationState.kt +27 -0
  91. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/BackgroundLocationStatus.kt +116 -0
  92. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/BackgroundPermissionResult.kt +71 -0
  93. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/BackgroundPermissionStatus.kt +25 -0
  94. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/BackgroundTrackingMode.kt +24 -0
  95. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/BatterySnapshot.kt +56 -0
  96. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/DetectedActivity.kt +61 -0
  97. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/DetectedActivityType.kt +29 -0
  98. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/Func_void_BackgroundEventEnvelope.kt +80 -0
  99. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/Func_void_BackgroundLocation.kt +80 -0
  100. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/GeofenceEvent.kt +66 -0
  101. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/GeofenceRegion.kt +96 -0
  102. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/GeofenceTransition.kt +24 -0
  103. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/GeofencingOptions.kt +56 -0
  104. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/GetStoredBackgroundEventsOptions.kt +66 -0
  105. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/GetStoredBackgroundLocationsOptions.kt +66 -0
  106. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/HybridNitroBackgroundLocationSpec.kt +174 -0
  107. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/IOSBackgroundActivityType.kt +26 -0
  108. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/IOSBackgroundLocationOptions.kt +76 -0
  109. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/IOSBackgroundLocationStatus.kt +56 -0
  110. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/LocationProviderStatus.kt +7 -2
  111. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/StoredBackgroundEventEnvelope.kt +76 -0
  112. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/StoredBackgroundLocation.kt +111 -0
  113. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrogeolocation/Variant_NullType_Boolean_String_Double.kt +88 -0
  114. package/nitrogen/generated/android/nitrogeolocation+autolinking.cmake +3 -0
  115. package/nitrogen/generated/android/nitrogeolocationOnLoad.cpp +20 -0
  116. package/nitrogen/generated/ios/NitroGeolocation-Swift-Cxx-Bridge.cpp +104 -15
  117. package/nitrogen/generated/ios/NitroGeolocation-Swift-Cxx-Bridge.hpp +1107 -50
  118. package/nitrogen/generated/ios/NitroGeolocation-Swift-Cxx-Umbrella.hpp +102 -0
  119. package/nitrogen/generated/ios/NitroGeolocationAutolinking.mm +8 -0
  120. package/nitrogen/generated/ios/NitroGeolocationAutolinking.swift +15 -3
  121. package/nitrogen/generated/ios/c++/HybridNitroBackgroundLocationSpecSwift.cpp +11 -0
  122. package/nitrogen/generated/ios/c++/HybridNitroBackgroundLocationSpecSwift.hpp +416 -0
  123. package/nitrogen/generated/ios/swift/ActivityRecognitionOptions.swift +96 -0
  124. package/nitrogen/generated/ios/swift/AndroidBackgroundLocationOptions.swift +76 -0
  125. package/nitrogen/generated/ios/swift/AndroidBackgroundLocationStatus.swift +58 -0
  126. package/nitrogen/generated/ios/swift/AndroidBackgroundProvider.swift +44 -0
  127. package/nitrogen/generated/ios/swift/AndroidForegroundServiceOptions.swift +160 -0
  128. package/nitrogen/generated/ios/swift/BackgroundEventEnvelope.swift +110 -0
  129. package/nitrogen/generated/ios/swift/BackgroundEventType.swift +56 -0
  130. package/nitrogen/generated/ios/swift/BackgroundHttpMethod.swift +44 -0
  131. package/nitrogen/generated/ios/swift/BackgroundHttpSyncOptions.swift +259 -0
  132. package/nitrogen/generated/ios/swift/BackgroundHttpSyncResult.swift +87 -0
  133. package/nitrogen/generated/ios/swift/BackgroundLocation.swift +118 -0
  134. package/nitrogen/generated/ios/swift/BackgroundLocationOptions.swift +292 -0
  135. package/nitrogen/generated/ios/swift/BackgroundLocationSource.swift +60 -0
  136. package/nitrogen/generated/ios/swift/BackgroundLocationState.swift +56 -0
  137. package/nitrogen/generated/ios/swift/BackgroundLocationStatus.swift +124 -0
  138. package/nitrogen/generated/ios/swift/BackgroundPermissionResult.swift +81 -0
  139. package/nitrogen/generated/ios/swift/BackgroundPermissionStatus.swift +48 -0
  140. package/nitrogen/generated/ios/swift/BackgroundTrackingMode.swift +44 -0
  141. package/nitrogen/generated/ios/swift/BatterySnapshot.swift +60 -0
  142. package/nitrogen/generated/ios/swift/DetectedActivity.swift +39 -0
  143. package/nitrogen/generated/ios/swift/DetectedActivityType.swift +64 -0
  144. package/nitrogen/generated/ios/swift/Func_void_BackgroundEventEnvelope.swift +46 -0
  145. package/nitrogen/generated/ios/swift/Func_void_BackgroundHttpSyncResult.swift +46 -0
  146. package/nitrogen/generated/ios/swift/Func_void_BackgroundLocation.swift +46 -0
  147. package/nitrogen/generated/ios/swift/Func_void_BackgroundLocationStatus.swift +46 -0
  148. package/nitrogen/generated/ios/swift/Func_void_BackgroundPermissionResult.swift +46 -0
  149. package/nitrogen/generated/ios/swift/Func_void_std__optional_BackgroundLocationOptions_.swift +46 -0
  150. package/nitrogen/generated/ios/swift/Func_void_std__vector_GeofenceRegion_.swift +46 -0
  151. package/nitrogen/generated/ios/swift/Func_void_std__vector_StoredBackgroundEventEnvelope_.swift +46 -0
  152. package/nitrogen/generated/ios/swift/Func_void_std__vector_StoredBackgroundLocation_.swift +46 -0
  153. package/nitrogen/generated/ios/swift/GeofenceEvent.swift +50 -0
  154. package/nitrogen/generated/ios/swift/GeofenceRegion.swift +195 -0
  155. package/nitrogen/generated/ios/swift/GeofenceTransition.swift +44 -0
  156. package/nitrogen/generated/ios/swift/GeofencingOptions.swift +66 -0
  157. package/nitrogen/generated/ios/swift/GetStoredBackgroundEventsOptions.swift +102 -0
  158. package/nitrogen/generated/ios/swift/GetStoredBackgroundLocationsOptions.swift +96 -0
  159. package/nitrogen/generated/ios/swift/HybridNitroBackgroundLocationSpec.swift +81 -0
  160. package/nitrogen/generated/ios/swift/HybridNitroBackgroundLocationSpec_cxx.swift +654 -0
  161. package/nitrogen/generated/ios/swift/IOSBackgroundActivityType.swift +52 -0
  162. package/nitrogen/generated/ios/swift/IOSBackgroundLocationOptions.swift +125 -0
  163. package/nitrogen/generated/ios/swift/IOSBackgroundLocationStatus.swift +34 -0
  164. package/nitrogen/generated/ios/swift/LocationProviderStatus.swift +19 -1
  165. package/nitrogen/generated/ios/swift/StoredBackgroundEventEnvelope.swift +54 -0
  166. package/nitrogen/generated/ios/swift/StoredBackgroundLocation.swift +120 -0
  167. package/nitrogen/generated/ios/swift/Variant_NullType_Bool_String_Double.swift +34 -0
  168. package/nitrogen/generated/shared/c++/ActivityRecognitionOptions.hpp +95 -0
  169. package/nitrogen/generated/shared/c++/AndroidBackgroundLocationOptions.hpp +100 -0
  170. package/nitrogen/generated/shared/c++/AndroidBackgroundLocationStatus.hpp +93 -0
  171. package/nitrogen/generated/shared/c++/AndroidBackgroundProvider.hpp +80 -0
  172. package/nitrogen/generated/shared/c++/AndroidForegroundServiceOptions.hpp +116 -0
  173. package/nitrogen/generated/shared/c++/BackgroundEventEnvelope.hpp +140 -0
  174. package/nitrogen/generated/shared/c++/BackgroundEventType.hpp +92 -0
  175. package/nitrogen/generated/shared/c++/BackgroundHttpMethod.hpp +80 -0
  176. package/nitrogen/generated/shared/c++/BackgroundHttpSyncOptions.hpp +129 -0
  177. package/nitrogen/generated/shared/c++/BackgroundHttpSyncResult.hpp +101 -0
  178. package/nitrogen/generated/shared/c++/BackgroundLocation.hpp +134 -0
  179. package/nitrogen/generated/shared/c++/BackgroundLocationOptions.hpp +174 -0
  180. package/nitrogen/generated/shared/c++/BackgroundLocationSource.hpp +96 -0
  181. package/nitrogen/generated/shared/c++/BackgroundLocationState.hpp +92 -0
  182. package/nitrogen/generated/shared/c++/BackgroundLocationStatus.hpp +158 -0
  183. package/nitrogen/generated/shared/c++/BackgroundPermissionResult.hpp +107 -0
  184. package/nitrogen/generated/shared/c++/BackgroundPermissionStatus.hpp +84 -0
  185. package/nitrogen/generated/shared/c++/BackgroundTrackingMode.hpp +80 -0
  186. package/nitrogen/generated/shared/c++/BatterySnapshot.hpp +87 -0
  187. package/nitrogen/generated/shared/c++/DetectedActivity.hpp +92 -0
  188. package/nitrogen/generated/shared/c++/DetectedActivityType.hpp +100 -0
  189. package/nitrogen/generated/shared/c++/GeofenceEvent.hpp +103 -0
  190. package/nitrogen/generated/shared/c++/GeofenceRegion.hpp +123 -0
  191. package/nitrogen/generated/shared/c++/GeofenceTransition.hpp +80 -0
  192. package/nitrogen/generated/shared/c++/GeofencingOptions.hpp +90 -0
  193. package/nitrogen/generated/shared/c++/GetStoredBackgroundEventsOptions.hpp +98 -0
  194. package/nitrogen/generated/shared/c++/GetStoredBackgroundLocationsOptions.hpp +95 -0
  195. package/nitrogen/generated/shared/c++/HybridNitroBackgroundLocationSpec.cpp +47 -0
  196. package/nitrogen/generated/shared/c++/HybridNitroBackgroundLocationSpec.hpp +133 -0
  197. package/nitrogen/generated/shared/c++/IOSBackgroundActivityType.hpp +88 -0
  198. package/nitrogen/generated/shared/c++/IOSBackgroundLocationOptions.hpp +105 -0
  199. package/nitrogen/generated/shared/c++/IOSBackgroundLocationStatus.hpp +87 -0
  200. package/nitrogen/generated/shared/c++/LocationProviderStatus.hpp +5 -1
  201. package/nitrogen/generated/shared/c++/StoredBackgroundEventEnvelope.hpp +108 -0
  202. package/nitrogen/generated/shared/c++/StoredBackgroundLocation.hpp +146 -0
  203. package/package.json +17 -6
  204. package/src/NitroGeolocation.nitro.ts +4 -4
  205. package/src/api/getCurrentPosition.ts +1 -1
  206. package/src/api/requestLocationSettings.ts +3 -2
  207. package/src/background/NitroBackgroundLocation.nitro.ts +83 -0
  208. package/src/background/index.ts +200 -0
  209. package/src/background/index.web.ts +120 -0
  210. package/src/background/task.ts +13 -0
  211. package/src/background/types.ts +328 -0
  212. package/src/compat/index.web.ts +141 -0
  213. package/src/index.tsx +3 -0
  214. package/src/index.web.tsx +41 -0
  215. package/src/publicTypes.ts +6 -5
  216. package/src/types.ts +3 -0
  217. package/src/web/browser.ts +171 -0
  218. package/src/web/index.ts +167 -0
  219. package/src/web/useWatchPosition.ts +76 -0
  220. package/src/web/watch.ts +81 -0
  221. package/src/devtools/index.test.ts +0 -54
  222. package/src/utils/errors.test.ts +0 -65
  223. package/src/utils/provider.test.ts +0 -303
@@ -0,0 +1,96 @@
1
+ ///
2
+ /// BackgroundLocationSource.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
+ #if __has_include(<NitroModules/NitroHash.hpp>)
11
+ #include <NitroModules/NitroHash.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
16
+ #include <NitroModules/JSIConverter.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
21
+ #include <NitroModules/NitroDefines.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+
26
+ namespace margelo::nitro::nitrogeolocation {
27
+
28
+ /**
29
+ * An enum which can be represented as a JavaScript union (BackgroundLocationSource).
30
+ */
31
+ enum class BackgroundLocationSource {
32
+ UNKNOWN SWIFT_NAME(unknown) = 0,
33
+ FOREGROUNDSERVICE SWIFT_NAME(foregroundservice) = 1,
34
+ BACKGROUND SWIFT_NAME(background) = 2,
35
+ SIGNIFICANTCHANGE SWIFT_NAME(significantchange) = 3,
36
+ GEOFENCE SWIFT_NAME(geofence) = 4,
37
+ DEFERRED SWIFT_NAME(deferred) = 5,
38
+ MANUAL SWIFT_NAME(manual) = 6,
39
+ } CLOSED_ENUM;
40
+
41
+ } // namespace margelo::nitro::nitrogeolocation
42
+
43
+ namespace margelo::nitro {
44
+
45
+ // C++ BackgroundLocationSource <> JS BackgroundLocationSource (union)
46
+ template <>
47
+ struct JSIConverter<margelo::nitro::nitrogeolocation::BackgroundLocationSource> final {
48
+ static inline margelo::nitro::nitrogeolocation::BackgroundLocationSource fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
49
+ std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, arg);
50
+ switch (hashString(unionValue.c_str(), unionValue.size())) {
51
+ case hashString("unknown"): return margelo::nitro::nitrogeolocation::BackgroundLocationSource::UNKNOWN;
52
+ case hashString("foregroundService"): return margelo::nitro::nitrogeolocation::BackgroundLocationSource::FOREGROUNDSERVICE;
53
+ case hashString("background"): return margelo::nitro::nitrogeolocation::BackgroundLocationSource::BACKGROUND;
54
+ case hashString("significantChange"): return margelo::nitro::nitrogeolocation::BackgroundLocationSource::SIGNIFICANTCHANGE;
55
+ case hashString("geofence"): return margelo::nitro::nitrogeolocation::BackgroundLocationSource::GEOFENCE;
56
+ case hashString("deferred"): return margelo::nitro::nitrogeolocation::BackgroundLocationSource::DEFERRED;
57
+ case hashString("manual"): return margelo::nitro::nitrogeolocation::BackgroundLocationSource::MANUAL;
58
+ default: [[unlikely]]
59
+ throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum BackgroundLocationSource - invalid value!");
60
+ }
61
+ }
62
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::nitrogeolocation::BackgroundLocationSource arg) {
63
+ switch (arg) {
64
+ case margelo::nitro::nitrogeolocation::BackgroundLocationSource::UNKNOWN: return JSIConverter<std::string>::toJSI(runtime, "unknown");
65
+ case margelo::nitro::nitrogeolocation::BackgroundLocationSource::FOREGROUNDSERVICE: return JSIConverter<std::string>::toJSI(runtime, "foregroundService");
66
+ case margelo::nitro::nitrogeolocation::BackgroundLocationSource::BACKGROUND: return JSIConverter<std::string>::toJSI(runtime, "background");
67
+ case margelo::nitro::nitrogeolocation::BackgroundLocationSource::SIGNIFICANTCHANGE: return JSIConverter<std::string>::toJSI(runtime, "significantChange");
68
+ case margelo::nitro::nitrogeolocation::BackgroundLocationSource::GEOFENCE: return JSIConverter<std::string>::toJSI(runtime, "geofence");
69
+ case margelo::nitro::nitrogeolocation::BackgroundLocationSource::DEFERRED: return JSIConverter<std::string>::toJSI(runtime, "deferred");
70
+ case margelo::nitro::nitrogeolocation::BackgroundLocationSource::MANUAL: return JSIConverter<std::string>::toJSI(runtime, "manual");
71
+ default: [[unlikely]]
72
+ throw std::invalid_argument("Cannot convert BackgroundLocationSource to JS - invalid value: "
73
+ + std::to_string(static_cast<int>(arg)) + "!");
74
+ }
75
+ }
76
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
77
+ if (!value.isString()) {
78
+ return false;
79
+ }
80
+ std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, value);
81
+ switch (hashString(unionValue.c_str(), unionValue.size())) {
82
+ case hashString("unknown"):
83
+ case hashString("foregroundService"):
84
+ case hashString("background"):
85
+ case hashString("significantChange"):
86
+ case hashString("geofence"):
87
+ case hashString("deferred"):
88
+ case hashString("manual"):
89
+ return true;
90
+ default:
91
+ return false;
92
+ }
93
+ }
94
+ };
95
+
96
+ } // namespace margelo::nitro
@@ -0,0 +1,92 @@
1
+ ///
2
+ /// BackgroundLocationState.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
+ #if __has_include(<NitroModules/NitroHash.hpp>)
11
+ #include <NitroModules/NitroHash.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
16
+ #include <NitroModules/JSIConverter.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
21
+ #include <NitroModules/NitroDefines.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+
26
+ namespace margelo::nitro::nitrogeolocation {
27
+
28
+ /**
29
+ * An enum which can be represented as a JavaScript union (BackgroundLocationState).
30
+ */
31
+ enum class BackgroundLocationState {
32
+ IDLE SWIFT_NAME(idle) = 0,
33
+ STARTING SWIFT_NAME(starting) = 1,
34
+ RUNNING SWIFT_NAME(running) = 2,
35
+ STOPPING SWIFT_NAME(stopping) = 3,
36
+ STOPPED SWIFT_NAME(stopped) = 4,
37
+ ERROR SWIFT_NAME(error) = 5,
38
+ } CLOSED_ENUM;
39
+
40
+ } // namespace margelo::nitro::nitrogeolocation
41
+
42
+ namespace margelo::nitro {
43
+
44
+ // C++ BackgroundLocationState <> JS BackgroundLocationState (union)
45
+ template <>
46
+ struct JSIConverter<margelo::nitro::nitrogeolocation::BackgroundLocationState> final {
47
+ static inline margelo::nitro::nitrogeolocation::BackgroundLocationState fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
48
+ std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, arg);
49
+ switch (hashString(unionValue.c_str(), unionValue.size())) {
50
+ case hashString("idle"): return margelo::nitro::nitrogeolocation::BackgroundLocationState::IDLE;
51
+ case hashString("starting"): return margelo::nitro::nitrogeolocation::BackgroundLocationState::STARTING;
52
+ case hashString("running"): return margelo::nitro::nitrogeolocation::BackgroundLocationState::RUNNING;
53
+ case hashString("stopping"): return margelo::nitro::nitrogeolocation::BackgroundLocationState::STOPPING;
54
+ case hashString("stopped"): return margelo::nitro::nitrogeolocation::BackgroundLocationState::STOPPED;
55
+ case hashString("error"): return margelo::nitro::nitrogeolocation::BackgroundLocationState::ERROR;
56
+ default: [[unlikely]]
57
+ throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum BackgroundLocationState - invalid value!");
58
+ }
59
+ }
60
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::nitrogeolocation::BackgroundLocationState arg) {
61
+ switch (arg) {
62
+ case margelo::nitro::nitrogeolocation::BackgroundLocationState::IDLE: return JSIConverter<std::string>::toJSI(runtime, "idle");
63
+ case margelo::nitro::nitrogeolocation::BackgroundLocationState::STARTING: return JSIConverter<std::string>::toJSI(runtime, "starting");
64
+ case margelo::nitro::nitrogeolocation::BackgroundLocationState::RUNNING: return JSIConverter<std::string>::toJSI(runtime, "running");
65
+ case margelo::nitro::nitrogeolocation::BackgroundLocationState::STOPPING: return JSIConverter<std::string>::toJSI(runtime, "stopping");
66
+ case margelo::nitro::nitrogeolocation::BackgroundLocationState::STOPPED: return JSIConverter<std::string>::toJSI(runtime, "stopped");
67
+ case margelo::nitro::nitrogeolocation::BackgroundLocationState::ERROR: return JSIConverter<std::string>::toJSI(runtime, "error");
68
+ default: [[unlikely]]
69
+ throw std::invalid_argument("Cannot convert BackgroundLocationState to JS - invalid value: "
70
+ + std::to_string(static_cast<int>(arg)) + "!");
71
+ }
72
+ }
73
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
74
+ if (!value.isString()) {
75
+ return false;
76
+ }
77
+ std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, value);
78
+ switch (hashString(unionValue.c_str(), unionValue.size())) {
79
+ case hashString("idle"):
80
+ case hashString("starting"):
81
+ case hashString("running"):
82
+ case hashString("stopping"):
83
+ case hashString("stopped"):
84
+ case hashString("error"):
85
+ return true;
86
+ default:
87
+ return false;
88
+ }
89
+ }
90
+ };
91
+
92
+ } // namespace margelo::nitro
@@ -0,0 +1,158 @@
1
+ ///
2
+ /// BackgroundLocationStatus.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
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/JSIHelpers.hpp>)
21
+ #include <NitroModules/JSIHelpers.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+ #if __has_include(<NitroModules/PropNameIDCache.hpp>)
26
+ #include <NitroModules/PropNameIDCache.hpp>
27
+ #else
28
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
29
+ #endif
30
+
31
+ // Forward declaration of `BackgroundLocationState` to properly resolve imports.
32
+ namespace margelo::nitro::nitrogeolocation { enum class BackgroundLocationState; }
33
+ // Forward declaration of `PermissionStatus` to properly resolve imports.
34
+ namespace margelo::nitro::nitrogeolocation { enum class PermissionStatus; }
35
+ // Forward declaration of `BackgroundPermissionStatus` to properly resolve imports.
36
+ namespace margelo::nitro::nitrogeolocation { enum class BackgroundPermissionStatus; }
37
+ // Forward declaration of `AccuracyAuthorization` to properly resolve imports.
38
+ namespace margelo::nitro::nitrogeolocation { enum class AccuracyAuthorization; }
39
+ // Forward declaration of `LocationProviderStatus` to properly resolve imports.
40
+ namespace margelo::nitro::nitrogeolocation { struct LocationProviderStatus; }
41
+ // Forward declaration of `AndroidBackgroundLocationStatus` to properly resolve imports.
42
+ namespace margelo::nitro::nitrogeolocation { struct AndroidBackgroundLocationStatus; }
43
+ // Forward declaration of `IOSBackgroundLocationStatus` to properly resolve imports.
44
+ namespace margelo::nitro::nitrogeolocation { struct IOSBackgroundLocationStatus; }
45
+ // Forward declaration of `LocationError` to properly resolve imports.
46
+ namespace margelo::nitro::nitrogeolocation { struct LocationError; }
47
+
48
+ #include "BackgroundLocationState.hpp"
49
+ #include "PermissionStatus.hpp"
50
+ #include "BackgroundPermissionStatus.hpp"
51
+ #include "AccuracyAuthorization.hpp"
52
+ #include <optional>
53
+ #include "LocationProviderStatus.hpp"
54
+ #include "AndroidBackgroundLocationStatus.hpp"
55
+ #include "IOSBackgroundLocationStatus.hpp"
56
+ #include "LocationError.hpp"
57
+
58
+ namespace margelo::nitro::nitrogeolocation {
59
+
60
+ /**
61
+ * A struct which can be represented as a JavaScript object (BackgroundLocationStatus).
62
+ */
63
+ struct BackgroundLocationStatus final {
64
+ public:
65
+ BackgroundLocationState state SWIFT_PRIVATE;
66
+ bool isRunning SWIFT_PRIVATE;
67
+ bool isConfigured SWIFT_PRIVATE;
68
+ PermissionStatus foregroundPermission SWIFT_PRIVATE;
69
+ BackgroundPermissionStatus backgroundPermission SWIFT_PRIVATE;
70
+ std::optional<AccuracyAuthorization> accuracyAuthorization SWIFT_PRIVATE;
71
+ bool locationServicesEnabled SWIFT_PRIVATE;
72
+ std::optional<LocationProviderStatus> providerStatus SWIFT_PRIVATE;
73
+ double storedLocationCount SWIFT_PRIVATE;
74
+ double storedEventCount SWIFT_PRIVATE;
75
+ double geofenceCount SWIFT_PRIVATE;
76
+ std::optional<AndroidBackgroundLocationStatus> android SWIFT_PRIVATE;
77
+ std::optional<IOSBackgroundLocationStatus> ios SWIFT_PRIVATE;
78
+ std::optional<LocationError> lastError SWIFT_PRIVATE;
79
+
80
+ public:
81
+ BackgroundLocationStatus() = default;
82
+ explicit BackgroundLocationStatus(BackgroundLocationState state, bool isRunning, bool isConfigured, PermissionStatus foregroundPermission, BackgroundPermissionStatus backgroundPermission, std::optional<AccuracyAuthorization> accuracyAuthorization, bool locationServicesEnabled, std::optional<LocationProviderStatus> providerStatus, double storedLocationCount, double storedEventCount, double geofenceCount, std::optional<AndroidBackgroundLocationStatus> android, std::optional<IOSBackgroundLocationStatus> ios, std::optional<LocationError> lastError): state(state), isRunning(isRunning), isConfigured(isConfigured), foregroundPermission(foregroundPermission), backgroundPermission(backgroundPermission), accuracyAuthorization(accuracyAuthorization), locationServicesEnabled(locationServicesEnabled), providerStatus(providerStatus), storedLocationCount(storedLocationCount), storedEventCount(storedEventCount), geofenceCount(geofenceCount), android(android), ios(ios), lastError(lastError) {}
83
+
84
+ public:
85
+ friend bool operator==(const BackgroundLocationStatus& lhs, const BackgroundLocationStatus& rhs) = default;
86
+ };
87
+
88
+ } // namespace margelo::nitro::nitrogeolocation
89
+
90
+ namespace margelo::nitro {
91
+
92
+ // C++ BackgroundLocationStatus <> JS BackgroundLocationStatus (object)
93
+ template <>
94
+ struct JSIConverter<margelo::nitro::nitrogeolocation::BackgroundLocationStatus> final {
95
+ static inline margelo::nitro::nitrogeolocation::BackgroundLocationStatus fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
96
+ jsi::Object obj = arg.asObject(runtime);
97
+ return margelo::nitro::nitrogeolocation::BackgroundLocationStatus(
98
+ JSIConverter<margelo::nitro::nitrogeolocation::BackgroundLocationState>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "state"))),
99
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "isRunning"))),
100
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "isConfigured"))),
101
+ JSIConverter<margelo::nitro::nitrogeolocation::PermissionStatus>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "foregroundPermission"))),
102
+ JSIConverter<margelo::nitro::nitrogeolocation::BackgroundPermissionStatus>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "backgroundPermission"))),
103
+ JSIConverter<std::optional<margelo::nitro::nitrogeolocation::AccuracyAuthorization>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "accuracyAuthorization"))),
104
+ JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "locationServicesEnabled"))),
105
+ JSIConverter<std::optional<margelo::nitro::nitrogeolocation::LocationProviderStatus>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "providerStatus"))),
106
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "storedLocationCount"))),
107
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "storedEventCount"))),
108
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "geofenceCount"))),
109
+ JSIConverter<std::optional<margelo::nitro::nitrogeolocation::AndroidBackgroundLocationStatus>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "android"))),
110
+ JSIConverter<std::optional<margelo::nitro::nitrogeolocation::IOSBackgroundLocationStatus>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "ios"))),
111
+ JSIConverter<std::optional<margelo::nitro::nitrogeolocation::LocationError>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "lastError")))
112
+ );
113
+ }
114
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::nitrogeolocation::BackgroundLocationStatus& arg) {
115
+ jsi::Object obj(runtime);
116
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "state"), JSIConverter<margelo::nitro::nitrogeolocation::BackgroundLocationState>::toJSI(runtime, arg.state));
117
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "isRunning"), JSIConverter<bool>::toJSI(runtime, arg.isRunning));
118
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "isConfigured"), JSIConverter<bool>::toJSI(runtime, arg.isConfigured));
119
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "foregroundPermission"), JSIConverter<margelo::nitro::nitrogeolocation::PermissionStatus>::toJSI(runtime, arg.foregroundPermission));
120
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "backgroundPermission"), JSIConverter<margelo::nitro::nitrogeolocation::BackgroundPermissionStatus>::toJSI(runtime, arg.backgroundPermission));
121
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "accuracyAuthorization"), JSIConverter<std::optional<margelo::nitro::nitrogeolocation::AccuracyAuthorization>>::toJSI(runtime, arg.accuracyAuthorization));
122
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "locationServicesEnabled"), JSIConverter<bool>::toJSI(runtime, arg.locationServicesEnabled));
123
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "providerStatus"), JSIConverter<std::optional<margelo::nitro::nitrogeolocation::LocationProviderStatus>>::toJSI(runtime, arg.providerStatus));
124
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "storedLocationCount"), JSIConverter<double>::toJSI(runtime, arg.storedLocationCount));
125
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "storedEventCount"), JSIConverter<double>::toJSI(runtime, arg.storedEventCount));
126
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "geofenceCount"), JSIConverter<double>::toJSI(runtime, arg.geofenceCount));
127
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "android"), JSIConverter<std::optional<margelo::nitro::nitrogeolocation::AndroidBackgroundLocationStatus>>::toJSI(runtime, arg.android));
128
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "ios"), JSIConverter<std::optional<margelo::nitro::nitrogeolocation::IOSBackgroundLocationStatus>>::toJSI(runtime, arg.ios));
129
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "lastError"), JSIConverter<std::optional<margelo::nitro::nitrogeolocation::LocationError>>::toJSI(runtime, arg.lastError));
130
+ return obj;
131
+ }
132
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
133
+ if (!value.isObject()) {
134
+ return false;
135
+ }
136
+ jsi::Object obj = value.getObject(runtime);
137
+ if (!nitro::isPlainObject(runtime, obj)) {
138
+ return false;
139
+ }
140
+ if (!JSIConverter<margelo::nitro::nitrogeolocation::BackgroundLocationState>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "state")))) return false;
141
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "isRunning")))) return false;
142
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "isConfigured")))) return false;
143
+ if (!JSIConverter<margelo::nitro::nitrogeolocation::PermissionStatus>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "foregroundPermission")))) return false;
144
+ if (!JSIConverter<margelo::nitro::nitrogeolocation::BackgroundPermissionStatus>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "backgroundPermission")))) return false;
145
+ if (!JSIConverter<std::optional<margelo::nitro::nitrogeolocation::AccuracyAuthorization>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "accuracyAuthorization")))) return false;
146
+ if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "locationServicesEnabled")))) return false;
147
+ if (!JSIConverter<std::optional<margelo::nitro::nitrogeolocation::LocationProviderStatus>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "providerStatus")))) return false;
148
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "storedLocationCount")))) return false;
149
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "storedEventCount")))) return false;
150
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "geofenceCount")))) return false;
151
+ if (!JSIConverter<std::optional<margelo::nitro::nitrogeolocation::AndroidBackgroundLocationStatus>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "android")))) return false;
152
+ if (!JSIConverter<std::optional<margelo::nitro::nitrogeolocation::IOSBackgroundLocationStatus>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "ios")))) return false;
153
+ if (!JSIConverter<std::optional<margelo::nitro::nitrogeolocation::LocationError>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "lastError")))) return false;
154
+ return true;
155
+ }
156
+ };
157
+
158
+ } // namespace margelo::nitro
@@ -0,0 +1,107 @@
1
+ ///
2
+ /// BackgroundPermissionResult.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
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/JSIHelpers.hpp>)
21
+ #include <NitroModules/JSIHelpers.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+ #if __has_include(<NitroModules/PropNameIDCache.hpp>)
26
+ #include <NitroModules/PropNameIDCache.hpp>
27
+ #else
28
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
29
+ #endif
30
+
31
+ // Forward declaration of `PermissionStatus` to properly resolve imports.
32
+ namespace margelo::nitro::nitrogeolocation { enum class PermissionStatus; }
33
+ // Forward declaration of `BackgroundPermissionStatus` to properly resolve imports.
34
+ namespace margelo::nitro::nitrogeolocation { enum class BackgroundPermissionStatus; }
35
+ // Forward declaration of `AccuracyAuthorization` to properly resolve imports.
36
+ namespace margelo::nitro::nitrogeolocation { enum class AccuracyAuthorization; }
37
+
38
+ #include "PermissionStatus.hpp"
39
+ #include "BackgroundPermissionStatus.hpp"
40
+ #include "AccuracyAuthorization.hpp"
41
+ #include <optional>
42
+
43
+ namespace margelo::nitro::nitrogeolocation {
44
+
45
+ /**
46
+ * A struct which can be represented as a JavaScript object (BackgroundPermissionResult).
47
+ */
48
+ struct BackgroundPermissionResult final {
49
+ public:
50
+ PermissionStatus foreground SWIFT_PRIVATE;
51
+ BackgroundPermissionStatus background SWIFT_PRIVATE;
52
+ std::optional<AccuracyAuthorization> accuracyAuthorization SWIFT_PRIVATE;
53
+ std::optional<bool> canRequestBackgroundInline SWIFT_PRIVATE;
54
+ std::optional<bool> needsSettingsRedirect SWIFT_PRIVATE;
55
+
56
+ public:
57
+ BackgroundPermissionResult() = default;
58
+ explicit BackgroundPermissionResult(PermissionStatus foreground, BackgroundPermissionStatus background, std::optional<AccuracyAuthorization> accuracyAuthorization, std::optional<bool> canRequestBackgroundInline, std::optional<bool> needsSettingsRedirect): foreground(foreground), background(background), accuracyAuthorization(accuracyAuthorization), canRequestBackgroundInline(canRequestBackgroundInline), needsSettingsRedirect(needsSettingsRedirect) {}
59
+
60
+ public:
61
+ friend bool operator==(const BackgroundPermissionResult& lhs, const BackgroundPermissionResult& rhs) = default;
62
+ };
63
+
64
+ } // namespace margelo::nitro::nitrogeolocation
65
+
66
+ namespace margelo::nitro {
67
+
68
+ // C++ BackgroundPermissionResult <> JS BackgroundPermissionResult (object)
69
+ template <>
70
+ struct JSIConverter<margelo::nitro::nitrogeolocation::BackgroundPermissionResult> final {
71
+ static inline margelo::nitro::nitrogeolocation::BackgroundPermissionResult fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
72
+ jsi::Object obj = arg.asObject(runtime);
73
+ return margelo::nitro::nitrogeolocation::BackgroundPermissionResult(
74
+ JSIConverter<margelo::nitro::nitrogeolocation::PermissionStatus>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "foreground"))),
75
+ JSIConverter<margelo::nitro::nitrogeolocation::BackgroundPermissionStatus>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "background"))),
76
+ JSIConverter<std::optional<margelo::nitro::nitrogeolocation::AccuracyAuthorization>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "accuracyAuthorization"))),
77
+ JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "canRequestBackgroundInline"))),
78
+ JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "needsSettingsRedirect")))
79
+ );
80
+ }
81
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::nitrogeolocation::BackgroundPermissionResult& arg) {
82
+ jsi::Object obj(runtime);
83
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "foreground"), JSIConverter<margelo::nitro::nitrogeolocation::PermissionStatus>::toJSI(runtime, arg.foreground));
84
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "background"), JSIConverter<margelo::nitro::nitrogeolocation::BackgroundPermissionStatus>::toJSI(runtime, arg.background));
85
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "accuracyAuthorization"), JSIConverter<std::optional<margelo::nitro::nitrogeolocation::AccuracyAuthorization>>::toJSI(runtime, arg.accuracyAuthorization));
86
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "canRequestBackgroundInline"), JSIConverter<std::optional<bool>>::toJSI(runtime, arg.canRequestBackgroundInline));
87
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "needsSettingsRedirect"), JSIConverter<std::optional<bool>>::toJSI(runtime, arg.needsSettingsRedirect));
88
+ return obj;
89
+ }
90
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
91
+ if (!value.isObject()) {
92
+ return false;
93
+ }
94
+ jsi::Object obj = value.getObject(runtime);
95
+ if (!nitro::isPlainObject(runtime, obj)) {
96
+ return false;
97
+ }
98
+ if (!JSIConverter<margelo::nitro::nitrogeolocation::PermissionStatus>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "foreground")))) return false;
99
+ if (!JSIConverter<margelo::nitro::nitrogeolocation::BackgroundPermissionStatus>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "background")))) return false;
100
+ if (!JSIConverter<std::optional<margelo::nitro::nitrogeolocation::AccuracyAuthorization>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "accuracyAuthorization")))) return false;
101
+ if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "canRequestBackgroundInline")))) return false;
102
+ if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "needsSettingsRedirect")))) return false;
103
+ return true;
104
+ }
105
+ };
106
+
107
+ } // namespace margelo::nitro
@@ -0,0 +1,84 @@
1
+ ///
2
+ /// BackgroundPermissionStatus.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
+ #if __has_include(<NitroModules/NitroHash.hpp>)
11
+ #include <NitroModules/NitroHash.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
16
+ #include <NitroModules/JSIConverter.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
21
+ #include <NitroModules/NitroDefines.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+
26
+ namespace margelo::nitro::nitrogeolocation {
27
+
28
+ /**
29
+ * An enum which can be represented as a JavaScript union (BackgroundPermissionStatus).
30
+ */
31
+ enum class BackgroundPermissionStatus {
32
+ GRANTED SWIFT_NAME(granted) = 0,
33
+ DENIED SWIFT_NAME(denied) = 1,
34
+ RESTRICTED SWIFT_NAME(restricted) = 2,
35
+ UNDETERMINED SWIFT_NAME(undetermined) = 3,
36
+ } CLOSED_ENUM;
37
+
38
+ } // namespace margelo::nitro::nitrogeolocation
39
+
40
+ namespace margelo::nitro {
41
+
42
+ // C++ BackgroundPermissionStatus <> JS BackgroundPermissionStatus (union)
43
+ template <>
44
+ struct JSIConverter<margelo::nitro::nitrogeolocation::BackgroundPermissionStatus> final {
45
+ static inline margelo::nitro::nitrogeolocation::BackgroundPermissionStatus fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
46
+ std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, arg);
47
+ switch (hashString(unionValue.c_str(), unionValue.size())) {
48
+ case hashString("granted"): return margelo::nitro::nitrogeolocation::BackgroundPermissionStatus::GRANTED;
49
+ case hashString("denied"): return margelo::nitro::nitrogeolocation::BackgroundPermissionStatus::DENIED;
50
+ case hashString("restricted"): return margelo::nitro::nitrogeolocation::BackgroundPermissionStatus::RESTRICTED;
51
+ case hashString("undetermined"): return margelo::nitro::nitrogeolocation::BackgroundPermissionStatus::UNDETERMINED;
52
+ default: [[unlikely]]
53
+ throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum BackgroundPermissionStatus - invalid value!");
54
+ }
55
+ }
56
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::nitrogeolocation::BackgroundPermissionStatus arg) {
57
+ switch (arg) {
58
+ case margelo::nitro::nitrogeolocation::BackgroundPermissionStatus::GRANTED: return JSIConverter<std::string>::toJSI(runtime, "granted");
59
+ case margelo::nitro::nitrogeolocation::BackgroundPermissionStatus::DENIED: return JSIConverter<std::string>::toJSI(runtime, "denied");
60
+ case margelo::nitro::nitrogeolocation::BackgroundPermissionStatus::RESTRICTED: return JSIConverter<std::string>::toJSI(runtime, "restricted");
61
+ case margelo::nitro::nitrogeolocation::BackgroundPermissionStatus::UNDETERMINED: return JSIConverter<std::string>::toJSI(runtime, "undetermined");
62
+ default: [[unlikely]]
63
+ throw std::invalid_argument("Cannot convert BackgroundPermissionStatus to JS - invalid value: "
64
+ + std::to_string(static_cast<int>(arg)) + "!");
65
+ }
66
+ }
67
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
68
+ if (!value.isString()) {
69
+ return false;
70
+ }
71
+ std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, value);
72
+ switch (hashString(unionValue.c_str(), unionValue.size())) {
73
+ case hashString("granted"):
74
+ case hashString("denied"):
75
+ case hashString("restricted"):
76
+ case hashString("undetermined"):
77
+ return true;
78
+ default:
79
+ return false;
80
+ }
81
+ }
82
+ };
83
+
84
+ } // namespace margelo::nitro
@@ -0,0 +1,80 @@
1
+ ///
2
+ /// BackgroundTrackingMode.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
+ #if __has_include(<NitroModules/NitroHash.hpp>)
11
+ #include <NitroModules/NitroHash.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
16
+ #include <NitroModules/JSIConverter.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
21
+ #include <NitroModules/NitroDefines.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+
26
+ namespace margelo::nitro::nitrogeolocation {
27
+
28
+ /**
29
+ * An enum which can be represented as a JavaScript union (BackgroundTrackingMode).
30
+ */
31
+ enum class BackgroundTrackingMode {
32
+ CONTINUOUS SWIFT_NAME(continuous) = 0,
33
+ SIGNIFICANTCHANGES SWIFT_NAME(significantchanges) = 1,
34
+ ACTIVITYAWARE SWIFT_NAME(activityaware) = 2,
35
+ } CLOSED_ENUM;
36
+
37
+ } // namespace margelo::nitro::nitrogeolocation
38
+
39
+ namespace margelo::nitro {
40
+
41
+ // C++ BackgroundTrackingMode <> JS BackgroundTrackingMode (union)
42
+ template <>
43
+ struct JSIConverter<margelo::nitro::nitrogeolocation::BackgroundTrackingMode> final {
44
+ static inline margelo::nitro::nitrogeolocation::BackgroundTrackingMode fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
45
+ std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, arg);
46
+ switch (hashString(unionValue.c_str(), unionValue.size())) {
47
+ case hashString("continuous"): return margelo::nitro::nitrogeolocation::BackgroundTrackingMode::CONTINUOUS;
48
+ case hashString("significantChanges"): return margelo::nitro::nitrogeolocation::BackgroundTrackingMode::SIGNIFICANTCHANGES;
49
+ case hashString("activityAware"): return margelo::nitro::nitrogeolocation::BackgroundTrackingMode::ACTIVITYAWARE;
50
+ default: [[unlikely]]
51
+ throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum BackgroundTrackingMode - invalid value!");
52
+ }
53
+ }
54
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::nitrogeolocation::BackgroundTrackingMode arg) {
55
+ switch (arg) {
56
+ case margelo::nitro::nitrogeolocation::BackgroundTrackingMode::CONTINUOUS: return JSIConverter<std::string>::toJSI(runtime, "continuous");
57
+ case margelo::nitro::nitrogeolocation::BackgroundTrackingMode::SIGNIFICANTCHANGES: return JSIConverter<std::string>::toJSI(runtime, "significantChanges");
58
+ case margelo::nitro::nitrogeolocation::BackgroundTrackingMode::ACTIVITYAWARE: return JSIConverter<std::string>::toJSI(runtime, "activityAware");
59
+ default: [[unlikely]]
60
+ throw std::invalid_argument("Cannot convert BackgroundTrackingMode to JS - invalid value: "
61
+ + std::to_string(static_cast<int>(arg)) + "!");
62
+ }
63
+ }
64
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
65
+ if (!value.isString()) {
66
+ return false;
67
+ }
68
+ std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, value);
69
+ switch (hashString(unionValue.c_str(), unionValue.size())) {
70
+ case hashString("continuous"):
71
+ case hashString("significantChanges"):
72
+ case hashString("activityAware"):
73
+ return true;
74
+ default:
75
+ return false;
76
+ }
77
+ }
78
+ };
79
+
80
+ } // namespace margelo::nitro