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,83 @@
1
+ import type { HybridObject } from "react-native-nitro-modules";
2
+ import type { LocationError } from "../NitroGeolocation.nitro";
3
+ import type {
4
+ ActivityRecognitionOptions,
5
+ BackgroundEventEnvelope,
6
+ BackgroundEventType,
7
+ BackgroundHttpSyncResult,
8
+ BackgroundLocation,
9
+ BackgroundLocationOptions,
10
+ BackgroundLocationStatus,
11
+ BackgroundPermissionResult,
12
+ DetectedActivity,
13
+ GeofenceEvent,
14
+ GeofenceRegion,
15
+ GeofencingOptions,
16
+ GetStoredBackgroundEventsOptions,
17
+ GetStoredBackgroundLocationsOptions,
18
+ StoredBackgroundEventEnvelope,
19
+ StoredBackgroundLocation
20
+ } from "./types";
21
+
22
+ export interface NitroBackgroundLocation
23
+ extends HybridObject<{ ios: "swift"; android: "kotlin" }> {
24
+ checkBackgroundPermission(): Promise<BackgroundPermissionResult>;
25
+ requestBackgroundPermission(): Promise<BackgroundPermissionResult>;
26
+ openAppLocationSettings(): Promise<void>;
27
+ configureBackgroundLocation(
28
+ options: BackgroundLocationOptions
29
+ ): Promise<void>;
30
+ getBackgroundConfiguration(): Promise<BackgroundLocationOptions | undefined>;
31
+ startBackgroundLocation(options?: BackgroundLocationOptions): Promise<void>;
32
+ stopBackgroundLocation(): Promise<void>;
33
+ resetBackgroundLocation(): Promise<void>;
34
+ getBackgroundLocationStatus(): Promise<BackgroundLocationStatus>;
35
+ addBackgroundEventListener(
36
+ listener: (event: BackgroundEventEnvelope) => void
37
+ ): string;
38
+ removeBackgroundEventListener(token: string): void;
39
+ addBackgroundLocationListener(
40
+ listener: (location: BackgroundLocation) => void
41
+ ): string;
42
+ removeBackgroundLocationListener(token: string): void;
43
+ addBackgroundErrorListener(listener: (error: LocationError) => void): string;
44
+ removeBackgroundErrorListener(token: string): void;
45
+ getStoredBackgroundLocations(
46
+ options?: GetStoredBackgroundLocationsOptions
47
+ ): Promise<StoredBackgroundLocation[]>;
48
+ clearStoredBackgroundLocations(ids?: string[]): Promise<void>;
49
+ markStoredBackgroundLocationsDelivered(ids: string[]): Promise<void>;
50
+ getStoredBackgroundEvents(
51
+ options?: GetStoredBackgroundEventsOptions
52
+ ): Promise<StoredBackgroundEventEnvelope[]>;
53
+ clearStoredBackgroundEvents(ids?: string[]): Promise<void>;
54
+ markStoredBackgroundEventsDelivered(ids: string[]): Promise<void>;
55
+ addGeofences(
56
+ regions: GeofenceRegion[],
57
+ options?: GeofencingOptions
58
+ ): Promise<void>;
59
+ removeGeofences(identifiers?: string[]): Promise<void>;
60
+ getRegisteredGeofences(): Promise<GeofenceRegion[]>;
61
+ startActivityRecognition(options?: ActivityRecognitionOptions): Promise<void>;
62
+ stopActivityRecognition(): Promise<void>;
63
+ syncStoredLocations(): Promise<BackgroundHttpSyncResult>;
64
+ }
65
+
66
+ export type {
67
+ ActivityRecognitionOptions,
68
+ BackgroundEventEnvelope,
69
+ BackgroundEventType,
70
+ BackgroundHttpSyncResult,
71
+ BackgroundLocation,
72
+ BackgroundLocationOptions,
73
+ BackgroundLocationStatus,
74
+ BackgroundPermissionResult,
75
+ DetectedActivity,
76
+ GeofenceEvent,
77
+ GeofenceRegion,
78
+ GeofencingOptions,
79
+ GetStoredBackgroundEventsOptions,
80
+ GetStoredBackgroundLocationsOptions,
81
+ StoredBackgroundEventEnvelope,
82
+ StoredBackgroundLocation
83
+ };
@@ -0,0 +1,200 @@
1
+ import { NitroModules } from "react-native-nitro-modules";
2
+ import type { LocationError } from "../NitroGeolocation.nitro";
3
+ import type { NitroBackgroundLocation } from "./NitroBackgroundLocation.nitro";
4
+ import type {
5
+ BackgroundActivityEventEnvelope,
6
+ BackgroundEvent,
7
+ BackgroundEventEnvelope,
8
+ BackgroundGeofenceEventEnvelope,
9
+ BackgroundHttpSyncEvent,
10
+ BackgroundLocation,
11
+ BackgroundSubscription,
12
+ StoredBackgroundEvent,
13
+ StoredBackgroundEventEnvelope
14
+ } from "./types";
15
+
16
+ const NativeBackgroundLocation =
17
+ NitroModules.createHybridObject<NitroBackgroundLocation>(
18
+ "NitroBackgroundLocation"
19
+ );
20
+
21
+ function narrowBackgroundEvent(
22
+ event: BackgroundEventEnvelope
23
+ ): BackgroundEvent {
24
+ switch (event.type) {
25
+ case "location":
26
+ return { ...event, type: "location", location: event.location! };
27
+ case "geofence":
28
+ return { ...event, type: "geofence", geofence: event.geofence! };
29
+ case "activity":
30
+ return { ...event, type: "activity", activity: event.activity! };
31
+ case "providerChange":
32
+ return {
33
+ ...event,
34
+ type: "providerChange",
35
+ providerStatus: event.providerStatus!
36
+ };
37
+ case "httpSync":
38
+ return { ...event, type: "httpSync", result: event.result! };
39
+ case "error":
40
+ return { ...event, type: "error", error: event.error! };
41
+ }
42
+ }
43
+
44
+ export * from "./types";
45
+ export { BACKGROUND_LOCATION_TASK_NAME, registerBackgroundTask } from "./task";
46
+
47
+ export const checkBackgroundPermission =
48
+ NativeBackgroundLocation.checkBackgroundPermission.bind(
49
+ NativeBackgroundLocation
50
+ );
51
+ export const requestBackgroundPermission =
52
+ NativeBackgroundLocation.requestBackgroundPermission.bind(
53
+ NativeBackgroundLocation
54
+ );
55
+ export const openAppLocationSettings =
56
+ NativeBackgroundLocation.openAppLocationSettings.bind(
57
+ NativeBackgroundLocation
58
+ );
59
+ export const configureBackgroundLocation =
60
+ NativeBackgroundLocation.configureBackgroundLocation.bind(
61
+ NativeBackgroundLocation
62
+ );
63
+ export const getBackgroundConfiguration =
64
+ NativeBackgroundLocation.getBackgroundConfiguration.bind(
65
+ NativeBackgroundLocation
66
+ );
67
+ export const startBackgroundLocation: NitroBackgroundLocation["startBackgroundLocation"] =
68
+ (options) =>
69
+ NativeBackgroundLocation.startBackgroundLocation(
70
+ options ?? (undefined as any)
71
+ );
72
+ export const stopBackgroundLocation =
73
+ NativeBackgroundLocation.stopBackgroundLocation.bind(
74
+ NativeBackgroundLocation
75
+ );
76
+ export const resetBackgroundLocation =
77
+ NativeBackgroundLocation.resetBackgroundLocation.bind(
78
+ NativeBackgroundLocation
79
+ );
80
+ export const getBackgroundLocationStatus =
81
+ NativeBackgroundLocation.getBackgroundLocationStatus.bind(
82
+ NativeBackgroundLocation
83
+ );
84
+ export const getStoredBackgroundLocations: NitroBackgroundLocation["getStoredBackgroundLocations"] =
85
+ (options) =>
86
+ NativeBackgroundLocation.getStoredBackgroundLocations(
87
+ options ?? (undefined as any)
88
+ );
89
+ export const clearStoredBackgroundLocations: NitroBackgroundLocation["clearStoredBackgroundLocations"] =
90
+ (ids) =>
91
+ NativeBackgroundLocation.clearStoredBackgroundLocations(
92
+ ids ?? (undefined as any)
93
+ );
94
+ export const markStoredBackgroundLocationsDelivered =
95
+ NativeBackgroundLocation.markStoredBackgroundLocationsDelivered.bind(
96
+ NativeBackgroundLocation
97
+ );
98
+ export async function getStoredBackgroundEvents(
99
+ options?: Parameters<NitroBackgroundLocation["getStoredBackgroundEvents"]>[0]
100
+ ): Promise<StoredBackgroundEvent[]> {
101
+ const events = await NativeBackgroundLocation.getStoredBackgroundEvents(
102
+ options ?? (undefined as any)
103
+ );
104
+ return events.map((event: StoredBackgroundEventEnvelope) => ({
105
+ ...event,
106
+ event: narrowBackgroundEvent(event.event)
107
+ }));
108
+ }
109
+ export const clearStoredBackgroundEvents: NitroBackgroundLocation["clearStoredBackgroundEvents"] =
110
+ (ids) =>
111
+ NativeBackgroundLocation.clearStoredBackgroundEvents(
112
+ ids ?? (undefined as any)
113
+ );
114
+ export const markStoredBackgroundEventsDelivered =
115
+ NativeBackgroundLocation.markStoredBackgroundEventsDelivered.bind(
116
+ NativeBackgroundLocation
117
+ );
118
+ export const addGeofences = NativeBackgroundLocation.addGeofences.bind(
119
+ NativeBackgroundLocation
120
+ );
121
+ export const removeGeofences: NitroBackgroundLocation["removeGeofences"] = (
122
+ identifiers
123
+ ) =>
124
+ NativeBackgroundLocation.removeGeofences(identifiers ?? (undefined as any));
125
+ export const getRegisteredGeofences =
126
+ NativeBackgroundLocation.getRegisteredGeofences.bind(
127
+ NativeBackgroundLocation
128
+ );
129
+ export const startActivityRecognition: NitroBackgroundLocation["startActivityRecognition"] =
130
+ (options) =>
131
+ NativeBackgroundLocation.startActivityRecognition(
132
+ options ?? (undefined as any)
133
+ );
134
+ export const stopActivityRecognition =
135
+ NativeBackgroundLocation.stopActivityRecognition.bind(
136
+ NativeBackgroundLocation
137
+ );
138
+ export const syncStoredLocations =
139
+ NativeBackgroundLocation.syncStoredLocations.bind(NativeBackgroundLocation);
140
+
141
+ export function onBackgroundEvent(
142
+ listener: (event: BackgroundEvent) => void
143
+ ): BackgroundSubscription {
144
+ const token = NativeBackgroundLocation.addBackgroundEventListener((event) => {
145
+ listener(narrowBackgroundEvent(event));
146
+ });
147
+ return {
148
+ remove: () => NativeBackgroundLocation.removeBackgroundEventListener(token)
149
+ };
150
+ }
151
+
152
+ export function onBackgroundLocation(
153
+ listener: (location: BackgroundLocation) => void
154
+ ): BackgroundSubscription {
155
+ const token =
156
+ NativeBackgroundLocation.addBackgroundLocationListener(listener);
157
+ return {
158
+ remove: () =>
159
+ NativeBackgroundLocation.removeBackgroundLocationListener(token)
160
+ };
161
+ }
162
+
163
+ export function onBackgroundError(
164
+ listener: (error: LocationError) => void
165
+ ): BackgroundSubscription {
166
+ const token = NativeBackgroundLocation.addBackgroundErrorListener(listener);
167
+ return {
168
+ remove: () => NativeBackgroundLocation.removeBackgroundErrorListener(token)
169
+ };
170
+ }
171
+
172
+ export function onGeofence(
173
+ listener: (event: BackgroundGeofenceEventEnvelope["geofence"]) => void
174
+ ): BackgroundSubscription {
175
+ return onBackgroundEvent((event) => {
176
+ if (event.type === "geofence") {
177
+ listener(event.geofence);
178
+ }
179
+ });
180
+ }
181
+
182
+ export function onActivityChange(
183
+ listener: (activity: BackgroundActivityEventEnvelope["activity"]) => void
184
+ ): BackgroundSubscription {
185
+ return onBackgroundEvent((event) => {
186
+ if (event.type === "activity") {
187
+ listener(event.activity);
188
+ }
189
+ });
190
+ }
191
+
192
+ export function onHttpSync(
193
+ listener: (result: BackgroundHttpSyncEvent["result"]) => void
194
+ ): BackgroundSubscription {
195
+ return onBackgroundEvent((event) => {
196
+ if (event.type === "httpSync") {
197
+ listener(event.result);
198
+ }
199
+ });
200
+ }
@@ -0,0 +1,120 @@
1
+ import type { LocationError } from "../NitroGeolocation.nitro";
2
+ import type {
3
+ ActivityRecognitionOptions,
4
+ BackgroundEvent,
5
+ BackgroundHttpSyncResult,
6
+ BackgroundLocation,
7
+ BackgroundLocationOptions,
8
+ BackgroundLocationStatus,
9
+ BackgroundPermissionResult,
10
+ BackgroundSubscription,
11
+ DetectedActivity,
12
+ GeofenceEvent,
13
+ GeofenceRegion,
14
+ GeofencingOptions,
15
+ GetStoredBackgroundEventsOptions,
16
+ GetStoredBackgroundLocationsOptions,
17
+ StoredBackgroundEvent,
18
+ StoredBackgroundLocation
19
+ } from "./types";
20
+
21
+ export * from "./types";
22
+
23
+ export const BACKGROUND_LOCATION_TASK_NAME = "NitroBackgroundLocationTask";
24
+
25
+ const unsupported = (): Error =>
26
+ new Error("Background location is not available in the browser.");
27
+
28
+ const rejectUnsupported = <T>(): Promise<T> => Promise.reject(unsupported());
29
+
30
+ export function registerBackgroundTask(): void {
31
+ throw unsupported();
32
+ }
33
+
34
+ export const checkBackgroundPermission =
35
+ (): Promise<BackgroundPermissionResult> => rejectUnsupported();
36
+ export const requestBackgroundPermission =
37
+ (): Promise<BackgroundPermissionResult> => rejectUnsupported();
38
+ export const openAppLocationSettings = (): Promise<void> => rejectUnsupported();
39
+ export const configureBackgroundLocation = (
40
+ _options: BackgroundLocationOptions
41
+ ): Promise<void> => rejectUnsupported();
42
+ export const getBackgroundConfiguration = (): Promise<
43
+ BackgroundLocationOptions | undefined
44
+ > => rejectUnsupported();
45
+ export const startBackgroundLocation = (
46
+ _options?: BackgroundLocationOptions
47
+ ): Promise<void> => rejectUnsupported();
48
+ export const stopBackgroundLocation = (): Promise<void> => rejectUnsupported();
49
+ export const resetBackgroundLocation = (): Promise<void> => rejectUnsupported();
50
+ export const getBackgroundLocationStatus =
51
+ (): Promise<BackgroundLocationStatus> => rejectUnsupported();
52
+ export const getStoredBackgroundLocations = (
53
+ _options?: GetStoredBackgroundLocationsOptions
54
+ ): Promise<StoredBackgroundLocation[]> => rejectUnsupported();
55
+ export const clearStoredBackgroundLocations = (
56
+ _ids?: string[]
57
+ ): Promise<void> => rejectUnsupported();
58
+ export const markStoredBackgroundLocationsDelivered = (
59
+ _ids: string[]
60
+ ): Promise<void> => rejectUnsupported();
61
+ export const getStoredBackgroundEvents = (
62
+ _options?: GetStoredBackgroundEventsOptions
63
+ ): Promise<StoredBackgroundEvent[]> => rejectUnsupported();
64
+ export const clearStoredBackgroundEvents = (_ids?: string[]): Promise<void> =>
65
+ rejectUnsupported();
66
+ export const markStoredBackgroundEventsDelivered = (
67
+ _ids: string[]
68
+ ): Promise<void> => rejectUnsupported();
69
+ export const addGeofences = (
70
+ _regions: GeofenceRegion[],
71
+ _options?: GeofencingOptions
72
+ ): Promise<void> => rejectUnsupported();
73
+ export const removeGeofences = (_identifiers?: string[]): Promise<void> =>
74
+ rejectUnsupported();
75
+ export const getRegisteredGeofences = (): Promise<GeofenceRegion[]> =>
76
+ rejectUnsupported();
77
+ export const startActivityRecognition = (
78
+ _options?: ActivityRecognitionOptions
79
+ ): Promise<void> => rejectUnsupported();
80
+ export const stopActivityRecognition = (): Promise<void> => rejectUnsupported();
81
+ export const syncStoredLocations = (): Promise<BackgroundHttpSyncResult> =>
82
+ rejectUnsupported();
83
+
84
+ const noopSubscription = (): BackgroundSubscription => ({ remove() {} });
85
+
86
+ export function onBackgroundEvent(
87
+ _listener: (event: BackgroundEvent) => void
88
+ ): BackgroundSubscription {
89
+ return noopSubscription();
90
+ }
91
+
92
+ export function onBackgroundLocation(
93
+ _listener: (location: BackgroundLocation) => void
94
+ ): BackgroundSubscription {
95
+ return noopSubscription();
96
+ }
97
+
98
+ export function onBackgroundError(
99
+ _listener: (error: LocationError) => void
100
+ ): BackgroundSubscription {
101
+ return noopSubscription();
102
+ }
103
+
104
+ export function onGeofence(
105
+ _listener: (event: GeofenceEvent) => void
106
+ ): BackgroundSubscription {
107
+ return noopSubscription();
108
+ }
109
+
110
+ export function onActivityChange(
111
+ _listener: (activity: DetectedActivity) => void
112
+ ): BackgroundSubscription {
113
+ return noopSubscription();
114
+ }
115
+
116
+ export function onHttpSync(
117
+ _listener: (result: BackgroundHttpSyncResult) => void
118
+ ): BackgroundSubscription {
119
+ return noopSubscription();
120
+ }
@@ -0,0 +1,13 @@
1
+ import { AppRegistry } from "react-native";
2
+ import type { BackgroundEvent, BackgroundTaskHandler } from "./types";
3
+
4
+ export const BACKGROUND_LOCATION_TASK_NAME = "NitroBackgroundLocationTask";
5
+
6
+ export function registerBackgroundTask(handler: BackgroundTaskHandler): void {
7
+ AppRegistry.registerHeadlessTask(
8
+ BACKGROUND_LOCATION_TASK_NAME,
9
+ () => async (event: BackgroundEvent) => {
10
+ await handler(event);
11
+ }
12
+ );
13
+ }