@transistorsoft/capacitor-background-geolocation 7.1.0 → 7.2.1

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 (158) hide show
  1. package/Package.swift +45 -0
  2. package/android/Package.swift +2 -0
  3. package/android/libs/com/transistorsoft/tslocationmanager/3.6.8/tslocationmanager-3.6.8.aar +0 -0
  4. package/android/libs/com/transistorsoft/tslocationmanager/3.6.8/tslocationmanager-3.6.8.aar.md5 +1 -1
  5. package/android/libs/com/transistorsoft/tslocationmanager/3.6.8/tslocationmanager-3.6.8.aar.sha1 +1 -1
  6. package/android/libs/com/transistorsoft/tslocationmanager/3.6.8/tslocationmanager-3.6.8.aar.sha256 +1 -1
  7. package/android/libs/com/transistorsoft/tslocationmanager/3.6.8/tslocationmanager-3.6.8.aar.sha512 +1 -1
  8. package/android/libs/com/transistorsoft/tslocationmanager/maven-metadata.xml +1 -3
  9. package/android/libs/com/transistorsoft/tslocationmanager-v21/3.6.8/tslocationmanager-v21-3.6.8.aar +0 -0
  10. package/android/libs/com/transistorsoft/tslocationmanager-v21/3.6.8/tslocationmanager-v21-3.6.8.aar.md5 +1 -1
  11. package/android/libs/com/transistorsoft/tslocationmanager-v21/3.6.8/tslocationmanager-v21-3.6.8.aar.sha1 +1 -1
  12. package/android/libs/com/transistorsoft/tslocationmanager-v21/3.6.8/tslocationmanager-v21-3.6.8.aar.sha256 +1 -1
  13. package/android/libs/com/transistorsoft/tslocationmanager-v21/3.6.8/tslocationmanager-v21-3.6.8.aar.sha512 +1 -1
  14. package/android/libs/com/transistorsoft/tslocationmanager-v21/maven-metadata.xml +1 -3
  15. package/android/src/main/java/com/transistorsoft/bggeo/capacitor/BackgroundGeolocationPlugin.java +2 -5
  16. package/ios/Frameworks/TSLocationManager.xcframework/Info.plist +61 -0
  17. package/ios/Frameworks/TSLocationManager.xcframework/_CodeSignature/CodeDirectory +0 -0
  18. package/ios/Frameworks/TSLocationManager.xcframework/_CodeSignature/CodeRequirements +0 -0
  19. package/ios/Frameworks/TSLocationManager.xcframework/_CodeSignature/CodeRequirements-1 +0 -0
  20. package/ios/Frameworks/TSLocationManager.xcframework/_CodeSignature/CodeResources +2033 -0
  21. package/ios/Frameworks/TSLocationManager.xcframework/_CodeSignature/CodeSignature +0 -0
  22. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/AtomicBoolean.h +18 -0
  23. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/ConfigModule.h +21 -0
  24. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/HttpRequest.h +21 -0
  25. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/HttpResponse.h +29 -0
  26. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/LocationManager.h +55 -0
  27. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/LogQuery.h +13 -0
  28. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/SOMotionDetector.h +141 -0
  29. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/SQLQuery.h +34 -0
  30. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSActivityChangeEvent.h +16 -0
  31. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSAuthorization.h +38 -0
  32. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSAuthorizationEvent.h +18 -0
  33. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSCallback.h +18 -0
  34. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSConfig.h +310 -0
  35. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSConnectivityChangeEvent.h +17 -0
  36. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSCurrentPositionRequest.h +43 -0
  37. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSDeviceInfo.h +24 -0
  38. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSEnabledChangeEvent.h +15 -0
  39. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSGeofence.h +54 -0
  40. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSGeofenceEvent.h +64 -0
  41. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSGeofenceManager.h +54 -0
  42. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSGeofencesChangeEvent.h +17 -0
  43. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSHeartbeatEvent.h +18 -0
  44. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSHttpEvent.h +19 -0
  45. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSHttpService.h +58 -0
  46. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSLocation.h +105 -0
  47. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSLocationManager.h +315 -0
  48. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSPowerSaveChangeEvent.h +14 -0
  49. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSProviderChangeEvent.h +20 -0
  50. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSReachability.h +106 -0
  51. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSSchedule.h +40 -0
  52. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSScheduleEvent.h +18 -0
  53. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSWatchPositionRequest.h +41 -0
  54. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TransistorAuthorizationToken.h +31 -0
  55. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Info.plist +0 -0
  56. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Miniball/Miniball.hpp +525 -0
  57. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Modules/module.modulemap +6 -0
  58. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/PrivacyInfo.xcprivacy +36 -0
  59. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/TSLocationManager +0 -0
  60. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/_CodeSignature/CodeDirectory +0 -0
  61. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/_CodeSignature/CodeRequirements +0 -0
  62. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/_CodeSignature/CodeRequirements-1 +0 -0
  63. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/_CodeSignature/CodeResources +642 -0
  64. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/_CodeSignature/CodeSignature +0 -0
  65. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/AtomicBoolean.h +18 -0
  66. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/ConfigModule.h +21 -0
  67. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/HttpRequest.h +21 -0
  68. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/HttpResponse.h +29 -0
  69. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/LocationManager.h +55 -0
  70. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/LogQuery.h +13 -0
  71. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/SOMotionDetector.h +141 -0
  72. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/SQLQuery.h +34 -0
  73. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSActivityChangeEvent.h +16 -0
  74. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSAuthorization.h +38 -0
  75. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSAuthorizationEvent.h +18 -0
  76. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSCallback.h +18 -0
  77. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSConfig.h +310 -0
  78. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSConnectivityChangeEvent.h +17 -0
  79. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSCurrentPositionRequest.h +43 -0
  80. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSDeviceInfo.h +24 -0
  81. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSEnabledChangeEvent.h +15 -0
  82. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSGeofence.h +54 -0
  83. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSGeofenceEvent.h +64 -0
  84. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSGeofenceManager.h +54 -0
  85. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSGeofencesChangeEvent.h +17 -0
  86. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSHeartbeatEvent.h +18 -0
  87. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSHttpEvent.h +19 -0
  88. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSHttpService.h +58 -0
  89. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSLocation.h +105 -0
  90. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSLocationManager.h +315 -0
  91. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSPowerSaveChangeEvent.h +14 -0
  92. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSProviderChangeEvent.h +20 -0
  93. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSReachability.h +106 -0
  94. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSSchedule.h +40 -0
  95. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSScheduleEvent.h +18 -0
  96. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSWatchPositionRequest.h +41 -0
  97. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TransistorAuthorizationToken.h +31 -0
  98. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Modules/module.modulemap +6 -0
  99. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Resources/Info.plist +50 -0
  100. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Resources/Miniball/Miniball.hpp +525 -0
  101. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Resources/PrivacyInfo.xcprivacy +36 -0
  102. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/TSLocationManager +0 -0
  103. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/_CodeSignature/CodeDirectory +0 -0
  104. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/_CodeSignature/CodeRequirements +0 -0
  105. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/_CodeSignature/CodeRequirements-1 +0 -0
  106. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/_CodeSignature/CodeResources +536 -0
  107. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/_CodeSignature/CodeSignature +0 -0
  108. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/AtomicBoolean.h +18 -0
  109. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/ConfigModule.h +21 -0
  110. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/HttpRequest.h +21 -0
  111. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/HttpResponse.h +29 -0
  112. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/LocationManager.h +55 -0
  113. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/LogQuery.h +13 -0
  114. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/SOMotionDetector.h +141 -0
  115. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/SQLQuery.h +34 -0
  116. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSActivityChangeEvent.h +16 -0
  117. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSAuthorization.h +38 -0
  118. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSAuthorizationEvent.h +18 -0
  119. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSCallback.h +18 -0
  120. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSConfig.h +310 -0
  121. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSConnectivityChangeEvent.h +17 -0
  122. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSCurrentPositionRequest.h +43 -0
  123. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSDeviceInfo.h +24 -0
  124. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSEnabledChangeEvent.h +15 -0
  125. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSGeofence.h +54 -0
  126. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSGeofenceEvent.h +64 -0
  127. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSGeofenceManager.h +54 -0
  128. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSGeofencesChangeEvent.h +17 -0
  129. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSHeartbeatEvent.h +18 -0
  130. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSHttpEvent.h +19 -0
  131. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSHttpService.h +58 -0
  132. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSLocation.h +105 -0
  133. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSLocationManager.h +315 -0
  134. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSPowerSaveChangeEvent.h +14 -0
  135. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSProviderChangeEvent.h +20 -0
  136. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSReachability.h +106 -0
  137. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSSchedule.h +40 -0
  138. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSScheduleEvent.h +18 -0
  139. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSWatchPositionRequest.h +41 -0
  140. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TransistorAuthorizationToken.h +31 -0
  141. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Info.plist +0 -0
  142. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Miniball/Miniball.hpp +525 -0
  143. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Modules/module.modulemap +6 -0
  144. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/PrivacyInfo.xcprivacy +36 -0
  145. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/TSLocationManager +0 -0
  146. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/_CodeSignature/CodeDirectory +0 -0
  147. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/_CodeSignature/CodeRequirements +0 -0
  148. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/_CodeSignature/CodeRequirements-1 +0 -0
  149. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/_CodeSignature/CodeResources +642 -0
  150. package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/_CodeSignature/CodeSignature +0 -0
  151. package/ios/Sources/BackgroundGeolocationPlugin/BackgroundGeolocationPlugin.swift +880 -0
  152. package/ios/Sources/BackgroundGeolocationPlugin/PrivacyInfo.xcprivacy +35 -0
  153. package/package.json +5 -5
  154. package/ios/Plugin/BackgroundGeolocationModule.h +0 -14
  155. package/ios/Plugin/BackgroundGeolocationModule.m +0 -694
  156. package/ios/Plugin/BackgroundGeolocationPlugin.h +0 -10
  157. package/ios/Plugin/BackgroundGeolocationPlugin.m +0 -66
  158. package/ios/Plugin/Info.plist +0 -24
@@ -0,0 +1,880 @@
1
+ import Foundation
2
+ import CoreLocation
3
+ import UIKit
4
+ import Capacitor
5
+ import TSLocationManager
6
+
7
+ let EVENT_LOCATION = "location"
8
+ let EVENT_WATCHPOSITION = "watchposition"
9
+ let EVENT_PROVIDERCHANGE = "providerchange"
10
+ let EVENT_MOTIONCHANGE = "motionchange"
11
+ let EVENT_ACTIVITYCHANGE = "activitychange"
12
+ let EVENT_GEOFENCESCHANGE = "geofenceschange"
13
+ let EVENT_HTTP = "http"
14
+ let EVENT_SCHEDULE = "schedule"
15
+ let EVENT_GEOFENCE = "geofence"
16
+ let EVENT_HEARTBEAT = "heartbeat"
17
+ let EVENT_POWERSAVECHANGE = "powersavechange"
18
+ let EVENT_CONNECTIVITYCHANGE = "connectivitychange"
19
+ let EVENT_ENABLEDCHANGE = "enabledchange"
20
+ let EVENT_NOTIFICATIONACTION = "notificationaction"
21
+ let EVENT_AUTHORIZATION = "authorization"
22
+
23
+ @objc(BackgroundGeolocationModule)
24
+ public class BackgroundGeolocationModule: CAPPlugin, CAPBridgedPlugin {
25
+ public let identifier = "BackgroundGeolocationPlugin"
26
+ public let jsName = "BackgroundGeolocation"
27
+
28
+ public let pluginMethods: [CAPPluginMethod] = [
29
+ CAPPluginMethod(name: "registerPlugin", returnType: CAPPluginReturnNone),
30
+ CAPPluginMethod(name: "ready", returnType: CAPPluginReturnPromise),
31
+ CAPPluginMethod(name: "reset", returnType: CAPPluginReturnPromise),
32
+ CAPPluginMethod(name: "setConfig", returnType: CAPPluginReturnPromise),
33
+ CAPPluginMethod(name: "getState", returnType: CAPPluginReturnPromise),
34
+ CAPPluginMethod(name: "start", returnType: CAPPluginReturnPromise),
35
+ CAPPluginMethod(name: "startGeofences", returnType: CAPPluginReturnPromise),
36
+ CAPPluginMethod(name: "startSchedule", returnType: CAPPluginReturnPromise),
37
+ CAPPluginMethod(name: "stopSchedule", returnType: CAPPluginReturnPromise),
38
+ CAPPluginMethod(name: "stop", returnType: CAPPluginReturnPromise),
39
+ CAPPluginMethod(name: "changePace", returnType: CAPPluginReturnPromise),
40
+ CAPPluginMethod(name: "getProviderState", returnType: CAPPluginReturnPromise),
41
+ CAPPluginMethod(name: "requestPermission", returnType: CAPPluginReturnPromise),
42
+ CAPPluginMethod(name: "requestTemporaryFullAccuracy", returnType: CAPPluginReturnPromise),
43
+ CAPPluginMethod(name: "sync", returnType: CAPPluginReturnPromise),
44
+ CAPPluginMethod(name: "getCurrentPosition", returnType: CAPPluginReturnPromise),
45
+ CAPPluginMethod(name: "watchPosition", returnType: CAPPluginReturnPromise),
46
+ CAPPluginMethod(name: "stopWatchPosition", returnType: CAPPluginReturnPromise),
47
+
48
+ CAPPluginMethod(name: "addGeofence", returnType: CAPPluginReturnPromise),
49
+ CAPPluginMethod(name: "addGeofences", returnType: CAPPluginReturnPromise),
50
+ CAPPluginMethod(name: "getGeofences", returnType: CAPPluginReturnPromise),
51
+ CAPPluginMethod(name: "getGeofence", returnType: CAPPluginReturnPromise),
52
+ CAPPluginMethod(name: "geofenceExists", returnType: CAPPluginReturnPromise),
53
+ CAPPluginMethod(name: "removeGeofence", returnType: CAPPluginReturnPromise),
54
+ CAPPluginMethod(name: "removeGeofences", returnType: CAPPluginReturnPromise),
55
+
56
+ CAPPluginMethod(name: "getOdometer", returnType: CAPPluginReturnPromise),
57
+ CAPPluginMethod(name: "setOdometer", returnType: CAPPluginReturnPromise),
58
+ CAPPluginMethod(name: "getLocations", returnType: CAPPluginReturnPromise),
59
+ CAPPluginMethod(name: "getCount", returnType: CAPPluginReturnPromise),
60
+ CAPPluginMethod(name: "insertLocation", returnType: CAPPluginReturnPromise),
61
+ CAPPluginMethod(name: "destroyLocations", returnType: CAPPluginReturnPromise),
62
+ CAPPluginMethod(name: "destroyLocation", returnType: CAPPluginReturnPromise),
63
+ CAPPluginMethod(name: "getProviderState", returnType: CAPPluginReturnPromise),
64
+
65
+ CAPPluginMethod(name: "startBackgroundTask", returnType: CAPPluginReturnPromise),
66
+ CAPPluginMethod(name: "stopBackgroundTask", returnType: CAPPluginReturnPromise),
67
+
68
+ CAPPluginMethod(name: "getLog", returnType: CAPPluginReturnPromise),
69
+ CAPPluginMethod(name: "destroyLog", returnType: CAPPluginReturnPromise),
70
+ CAPPluginMethod(name: "emailLog", returnType: CAPPluginReturnPromise),
71
+ CAPPluginMethod(name: "uploadLog", returnType: CAPPluginReturnPromise),
72
+ CAPPluginMethod(name: "log", returnType: CAPPluginReturnPromise),
73
+
74
+ CAPPluginMethod(name: "getSensors", returnType: CAPPluginReturnPromise),
75
+ CAPPluginMethod(name: "getDeviceInfo", returnType: CAPPluginReturnPromise),
76
+ CAPPluginMethod(name: "isPowerSaveMode", returnType: CAPPluginReturnPromise),
77
+ CAPPluginMethod(name: "isIgnoringBatteryOptimizations", returnType: CAPPluginReturnPromise),
78
+ CAPPluginMethod(name: "requestSettings", returnType: CAPPluginReturnPromise),
79
+ CAPPluginMethod(name: "showSettings", returnType: CAPPluginReturnPromise),
80
+
81
+ CAPPluginMethod(name: "playSound", returnType: CAPPluginReturnPromise),
82
+
83
+ CAPPluginMethod(name: "getTransistorToken", returnType: CAPPluginReturnPromise),
84
+ CAPPluginMethod(name: "destroyTransistorToken", returnType: CAPPluginReturnPromise),
85
+ CAPPluginMethod(name: "removeAllEventListeners", returnType: CAPPluginReturnPromise)
86
+ ]
87
+
88
+ var ready = false
89
+
90
+ public override func load() {
91
+ let locationManager = TSLocationManager.sharedInstance()
92
+
93
+ if let root = UIApplication.shared.delegate?.window??.rootViewController {
94
+ locationManager?.viewController = root
95
+ }
96
+ ready = false
97
+ registerEventListeners()
98
+ }
99
+
100
+ func registerEventListeners() {
101
+
102
+ guard let locationManager = TSLocationManager.sharedInstance() else { return }
103
+ weak var me = self
104
+
105
+ locationManager.onLocation({ (location: TSLocation?) in
106
+ guard let me = me, me.hasListeners(EVENT_LOCATION) else { return }
107
+ if let locationDict = location?.toDictionary() as? [String: Any] {
108
+ me.notifyListeners(EVENT_LOCATION, data: locationDict)
109
+ }
110
+ }, failure: { error in
111
+ guard let me = me, me.hasListeners(EVENT_LOCATION) else { return }
112
+ if let nsError = error as? NSError {
113
+ me.notifyListeners(EVENT_LOCATION, data: ["error": nsError.code] as [String: Any])
114
+ }
115
+ })
116
+
117
+ locationManager.onMotionChange({ (tsLocation: TSLocation?) in
118
+ guard let me = me, me.hasListeners(EVENT_MOTIONCHANGE) else { return }
119
+ let params: [String: Any] = [
120
+ "isMoving": tsLocation?.isMoving as Any,
121
+ "location": tsLocation?.toDictionary() as Any
122
+ ]
123
+ me.notifyListeners(EVENT_MOTIONCHANGE, data: params)
124
+ })
125
+
126
+ locationManager.onActivityChange({ (event: TSActivityChangeEvent?) in
127
+ guard let me = me, me.hasListeners(EVENT_ACTIVITYCHANGE) else { return }
128
+ let params: [String: Any] = [
129
+ "activity": event?.activity as Any,
130
+ "confidence": event?.confidence as Any
131
+ ]
132
+ me.notifyListeners(EVENT_ACTIVITYCHANGE, data: params)
133
+ })
134
+
135
+ locationManager.onHeartbeat({ (event:TSHeartbeatEvent?) in
136
+ guard let me = me, me.hasListeners(EVENT_HEARTBEAT) else { return }
137
+ let params: [String: Any] = [
138
+ "location": event?.location.toDictionary() as Any
139
+ ]
140
+ me.notifyListeners(EVENT_HEARTBEAT, data: params)
141
+ })
142
+
143
+ locationManager.onGeofence({ (event: TSGeofenceEvent?) in
144
+ guard let me = me, me.hasListeners(EVENT_GEOFENCE) else { return }
145
+ if var params = event?.toDictionary() as? [String: Any] {
146
+ params["location"] = event?.location.toDictionary() as? [String: Any]
147
+ me.notifyListeners(EVENT_GEOFENCE, data: params)
148
+ }
149
+ })
150
+
151
+ locationManager.onGeofencesChange({ (event: TSGeofencesChangeEvent?) in
152
+ guard let me = me, me.hasListeners(EVENT_GEOFENCESCHANGE) else { return }
153
+ if let eventData = event?.toDictionary() as? [String: Any] {
154
+ me.notifyListeners(EVENT_GEOFENCESCHANGE, data: eventData)
155
+ }
156
+ })
157
+
158
+ locationManager.onHttp({ (event: TSHttpEvent?) in
159
+ guard let me = me, me.hasListeners(EVENT_HTTP) else { return }
160
+ if let eventData = event?.toDictionary() as? [String: Any] {
161
+ me.notifyListeners(EVENT_HTTP, data: eventData)
162
+ }
163
+ })
164
+
165
+ locationManager.onProviderChange({ (event: TSProviderChangeEvent?) in
166
+ guard let me = me, me.hasListeners(EVENT_PROVIDERCHANGE) else { return }
167
+ if let eventData = event?.toDictionary() as? [String: Any] {
168
+ me.notifyListeners(EVENT_PROVIDERCHANGE, data: eventData)
169
+ }
170
+ })
171
+
172
+ locationManager.onSchedule({ (event: TSScheduleEvent?) in
173
+ guard let me = me, me.hasListeners(EVENT_SCHEDULE) else { return }
174
+ if let state = event?.state as? [String: Any] {
175
+ me.notifyListeners(EVENT_SCHEDULE, data: state)
176
+ }
177
+ })
178
+
179
+ locationManager.onPowerSaveChange({ (event: TSPowerSaveChangeEvent?) in
180
+ guard let me = me, me.hasListeners(EVENT_POWERSAVECHANGE) else { return }
181
+ let params: [String: Any] = ["value": event?.isPowerSaveMode as Any]
182
+ me.notifyListeners(EVENT_POWERSAVECHANGE, data: params)
183
+ })
184
+
185
+ locationManager.onConnectivityChange({ (event: TSConnectivityChangeEvent?) in
186
+ guard let me = me, me.hasListeners(EVENT_CONNECTIVITYCHANGE) else { return }
187
+ let params: [String: Any] = ["connected": event?.hasConnection as Any]
188
+ me.notifyListeners(EVENT_CONNECTIVITYCHANGE, data: params)
189
+ })
190
+
191
+ locationManager.onEnabledChange({ (event: TSEnabledChangeEvent?) in
192
+ guard let me = me, me.hasListeners(EVENT_ENABLEDCHANGE) else { return }
193
+ me.notifyListeners(EVENT_ENABLEDCHANGE, data: ["value": event?.enabled as Any])
194
+ })
195
+
196
+
197
+ }
198
+
199
+ @objc func registerPlugin(_ call: CAPPluginCall) {
200
+ let pluginId = call.getString("id")
201
+ let config = TSConfig.sharedInstance()
202
+ config?.registerPlugin(pluginId)
203
+ }
204
+
205
+ @objc func ready(_ call: CAPPluginCall) {
206
+ guard let locationManager = TSLocationManager.sharedInstance(),
207
+ let config = TSConfig.sharedInstance() else { return }
208
+ let params = call.getObject("options") ?? [:]
209
+ let reset = (params["reset"] as? Bool) ?? true
210
+ if ready {
211
+ if reset {
212
+ locationManager.log("warn", message: "#ready already called. Redirecting to #setConfig")
213
+ config.update(with: params)
214
+ } else {
215
+ locationManager.log("warn", message: "#ready already called. Ignored Config since reset: false")
216
+ }
217
+ if let configDict = config.toDictionary() as? [String: Any] {
218
+ call.resolve(configDict)
219
+ } else {
220
+ call.reject("Failed to convert config to dictionary", nil, nil, [:])
221
+ }
222
+ return
223
+ }
224
+ ready = true
225
+ DispatchQueue.main.async {
226
+ if config.isFirstBoot() {
227
+ config.update(with: params)
228
+ } else {
229
+ if reset {
230
+ config.reset(true)
231
+ config.update(with: params)
232
+ } else if let auth = params["authorization"] as? [String: Any] {
233
+ config.update { builder in
234
+ builder?.authorization = TSAuthorization.create(with: auth)
235
+ }
236
+ }
237
+ }
238
+ locationManager.ready()
239
+ if let configDict = config.toDictionary() as? [String: Any] {
240
+ call.resolve(configDict)
241
+ } else {
242
+ call.reject("Failed to convert config to dictionary", nil, nil, [:])
243
+ }
244
+ }
245
+ }
246
+
247
+ @objc func reset(_ call: CAPPluginCall) {
248
+ let params = call.getObject("options") ?? [:]
249
+ guard let config = TSConfig.sharedInstance() else { return }
250
+ if !params.isEmpty {
251
+ config.reset(true)
252
+ config.update(with: params)
253
+ } else {
254
+ config.reset()
255
+ }
256
+ if let configDict = config.toDictionary() as? [String: Any] {
257
+ call.resolve(configDict)
258
+ } else {
259
+ call.reject("Failed to convert config to dictionary", nil, nil, [:])
260
+ }
261
+ }
262
+
263
+ @objc func setConfig(_ call: CAPPluginCall) {
264
+ let params = call.getObject("options") ?? [:]
265
+ guard let config = TSConfig.sharedInstance() else { return }
266
+ config.update(with: params)
267
+ if let configDict = config.toDictionary() as? [String: Any] {
268
+ call.resolve(configDict)
269
+ } else {
270
+ call.reject("Failed to convert config to dictionary", nil, nil, [:])
271
+ }
272
+ }
273
+
274
+ @objc func getState(_ call: CAPPluginCall) {
275
+ guard let config = TSConfig.sharedInstance() else { return }
276
+ if let configDict = config.toDictionary() as? [String: Any] {
277
+ call.resolve(configDict)
278
+ } else {
279
+ call.reject("Failed to convert config to dictionary", nil, nil, [:])
280
+ }
281
+ }
282
+
283
+ @objc func start(_ call: CAPPluginCall) {
284
+ DispatchQueue.main.async {
285
+ guard let locationManager = TSLocationManager.sharedInstance() else { return }
286
+ locationManager.start()
287
+ if let state = locationManager.getState() as? [String: Any] {
288
+ call.resolve(state)
289
+ } else {
290
+ call.reject("Failed to get location manager state", nil, nil, [:])
291
+ }
292
+ }
293
+ }
294
+
295
+ @objc func stop(_ call: CAPPluginCall) {
296
+ guard let locationManager = TSLocationManager.sharedInstance() else { return }
297
+ locationManager.stop()
298
+ if let state = locationManager.getState() as? [String: Any] {
299
+ call.resolve(state)
300
+ } else {
301
+ call.reject("Failed to get location manager state", nil, nil, [:])
302
+ }
303
+ }
304
+
305
+ @objc func startSchedule(_ call: CAPPluginCall) {
306
+ guard let config = TSConfig.sharedInstance(),
307
+ let locationManager = TSLocationManager.sharedInstance() else { return }
308
+ locationManager.startSchedule()
309
+ if let configDict = config.toDictionary() as? [String: Any] {
310
+ call.resolve(configDict)
311
+ } else {
312
+ call.reject("Failed to convert config to dictionary", nil, nil, [:])
313
+ }
314
+ }
315
+
316
+ @objc func stopSchedule(_ call: CAPPluginCall) {
317
+ guard let config = TSConfig.sharedInstance(),
318
+ let locationManager = TSLocationManager.sharedInstance() else { return }
319
+ locationManager.stopSchedule()
320
+ if let configDict = config.toDictionary() as? [String: Any] {
321
+ call.resolve(configDict)
322
+ } else {
323
+ call.reject("Failed to convert config to dictionary", nil, nil, [:])
324
+ }
325
+ }
326
+
327
+ @objc func startGeofences(_ call: CAPPluginCall) {
328
+ guard let config = TSConfig.sharedInstance(),
329
+ let locationManager = TSLocationManager.sharedInstance() else { return }
330
+ locationManager.startGeofences()
331
+ if let configDict = config.toDictionary() as? [String: Any] {
332
+ call.resolve(configDict)
333
+ } else {
334
+ call.reject("Failed to convert config to dictionary", nil, nil, [:])
335
+ }
336
+ }
337
+
338
+ @objc func changePace(_ call: CAPPluginCall) {
339
+ let isMoving = call.getBool("isMoving") ?? false
340
+ guard let locationManager = TSLocationManager.sharedInstance() else { return }
341
+ locationManager.changePace(isMoving)
342
+ call.resolve()
343
+ }
344
+
345
+ @objc func startBackgroundTask(_ call: CAPPluginCall) {
346
+ guard let locationManager = TSLocationManager.sharedInstance() else { return }
347
+ let taskId = locationManager.createBackgroundTask()
348
+ call.resolve(["taskId": taskId])
349
+ }
350
+
351
+ @objc func stopBackgroundTask(_ call: CAPPluginCall) {
352
+ let taskId = call.getInt("taskId") ?? -1
353
+ guard let locationManager = TSLocationManager.sharedInstance() else { return }
354
+ locationManager.stopBackgroundTask(UIBackgroundTaskIdentifier(rawValue: taskId))
355
+ call.resolve()
356
+ }
357
+
358
+ @objc func getCurrentPosition(_ call: CAPPluginCall) {
359
+ let options = call.getObject("options") ?? [:]
360
+ guard let locationManager = TSLocationManager.sharedInstance() else { return }
361
+
362
+ let request = TSCurrentPositionRequest(success: { (location: TSLocation?) in
363
+ if let locationData = location?.toDictionary() as? [String: Any] {
364
+ call.resolve(locationData)
365
+ } else {
366
+ call.reject("Failed to convert location to dictionary", nil, nil, [:])
367
+ }
368
+ }, failure: { error in
369
+ if let nsError = error as? NSError {
370
+ call.reject("\(nsError.code)", nil, error, nsError.userInfo)
371
+ } else {
372
+ call.reject("Unknown error occurred", nil, error, [:])
373
+ }
374
+ })
375
+
376
+ if let timeout = options["timeout"] as? Double {
377
+ request?.timeout = timeout
378
+ }
379
+ if let maximumAge = options["maximumAge"] as? Double {
380
+ request?.maximumAge = maximumAge
381
+ }
382
+ if let persist = options["persist"] as? Bool {
383
+ request?.persist = persist
384
+ }
385
+ if let samples = options["samples"] as? Int {
386
+ request?.samples = Int32(samples)
387
+ }
388
+ if let desiredAccuracy = options["desiredAccuracy"] as? Double {
389
+ request?.desiredAccuracy = desiredAccuracy
390
+ }
391
+ if let extras = options["extras"] as? [String: Any] {
392
+ request?.extras = extras
393
+ }
394
+ locationManager.getCurrentPosition(request)
395
+ }
396
+
397
+ @objc func watchPosition(_ call: CAPPluginCall) {
398
+ let options = call.getObject("options") ?? [:]
399
+ weak var me = self
400
+
401
+ let request = TSWatchPositionRequest(success: { (location: TSLocation?) in
402
+ guard let me = me else { return }
403
+ if !me.hasListeners(EVENT_WATCHPOSITION) {
404
+ TSLocationManager.sharedInstance()?.stopWatchPosition()
405
+ return
406
+ }
407
+ if let locationData = location?.toDictionary() as? [String: Any] {
408
+ me.notifyListeners(EVENT_WATCHPOSITION, data: locationData)
409
+ }
410
+ }, failure: { error in
411
+ guard let me = me else { return }
412
+ if !me.hasListeners(EVENT_WATCHPOSITION) {
413
+ TSLocationManager.sharedInstance()?.stopWatchPosition()
414
+ return
415
+ }
416
+ if let nsError = error as? NSError {
417
+ let result: [String: Any] = [
418
+ "error": [
419
+ "code": nsError.code,
420
+ "message": nsError.localizedDescription
421
+ ]
422
+ ]
423
+ me.notifyListeners(EVENT_WATCHPOSITION, data: result)
424
+ }
425
+ })
426
+
427
+ if let interval = options["interval"] as? Double {
428
+ request?.interval = interval
429
+ }
430
+ if let desiredAccuracy = options["desiredAccuracy"] as? Double {
431
+ request?.desiredAccuracy = desiredAccuracy
432
+ }
433
+ if let persist = options["persist"] as? Bool {
434
+ request?.persist = persist
435
+ }
436
+ if let extras = options["extras"] as? [String: Any] {
437
+ request?.extras = extras
438
+ }
439
+ if let timeout = options["timeout"] as? Double {
440
+ request?.timeout = timeout
441
+ }
442
+ TSLocationManager.sharedInstance()?.watchPosition(request)
443
+ call.resolve()
444
+ }
445
+
446
+ @objc func stopWatchPosition(_ call: CAPPluginCall) {
447
+ TSLocationManager.sharedInstance()?.stopWatchPosition()
448
+ call.resolve()
449
+ }
450
+
451
+ // Locations Database
452
+
453
+ @objc func getLocations(_ call: CAPPluginCall) {
454
+ TSLocationManager.sharedInstance()?.getLocations({ records in
455
+ call.resolve(["locations": records as Any])
456
+ }, failure: { error in
457
+ if let errorString = error {
458
+ call.reject(errorString, nil, nil, [:])
459
+ } else {
460
+ call.reject("Unknown error", nil, nil, [:])
461
+ }
462
+ })
463
+ }
464
+
465
+ @objc func sync(_ call: CAPPluginCall) {
466
+ TSLocationManager.sharedInstance()?.sync({ records in
467
+ call.resolve(["locations": records as Any])
468
+ }, failure: { error in
469
+ if let nsError = error as? NSError {
470
+ call.reject("\(nsError.code)", nil, error, nsError.userInfo)
471
+ } else {
472
+ call.reject("Unknown error occurred", nil, error, [:])
473
+ }
474
+ })
475
+ }
476
+
477
+ @objc func getGeofences(_ call: CAPPluginCall) {
478
+ TSLocationManager.sharedInstance()?.getGeofences({ geofences in
479
+ if let geofenceArray = geofences {
480
+ let result = geofenceArray.compactMap { ($0 as? TSGeofence)?.toDictionary() as? [String: Any] }
481
+ call.resolve(["geofences": result])
482
+ } else {
483
+ call.resolve(["geofences": []])
484
+ }
485
+ }, failure: { error in
486
+ if let errorString = error {
487
+ call.reject(errorString, nil, nil, [:])
488
+ } else {
489
+ call.reject("Unknown error", nil, nil, [:])
490
+ }
491
+ })
492
+ }
493
+
494
+
495
+ @objc func getGeofence(_ call: CAPPluginCall) {
496
+ let identifier = call.getString("identifier")
497
+ TSLocationManager.sharedInstance()?.getGeofence(identifier, success: { geofence in
498
+ if let geofence = geofence,
499
+ let geofenceData = geofence.toDictionary() as? [String: Any] {
500
+ call.resolve(geofenceData)
501
+ } else {
502
+ call.reject("Failed to convert geofence to dictionary", nil, nil, [:])
503
+ }
504
+ }, failure: { error in
505
+ if let errorString = error {
506
+ call.reject(errorString, nil, nil, [:])
507
+ } else {
508
+ call.reject("Unknown error", nil, nil, [:])
509
+ }
510
+ })
511
+ }
512
+
513
+ @objc func geofenceExists(_ call: CAPPluginCall) {
514
+ let identifier = call.getString("identifier")
515
+ TSLocationManager.sharedInstance()?.geofenceExists(identifier, callback: { exists in
516
+ call.resolve(["exists": exists])
517
+ })
518
+ }
519
+
520
+ @objc func addGeofence(_ call: CAPPluginCall) {
521
+ let params = call.getObject("options") ?? [:]
522
+ guard let geofence = buildGeofence(params) else {
523
+ let error = "Invalid geofence data: \(params)"
524
+ call.reject(error, nil, nil, [:])
525
+ return
526
+ }
527
+ TSLocationManager.sharedInstance()?.add(geofence, success: {
528
+ call.resolve()
529
+ }, failure: { error in
530
+ if let errorString = error {
531
+ call.reject(errorString, nil, nil, [:])
532
+ } else {
533
+ call.reject("Unknown error", nil, nil, [:])
534
+ }
535
+ })
536
+ }
537
+
538
+ @objc func addGeofences(_ call: CAPPluginCall) {
539
+ guard let data = call.options["options"] as? [[String: Any]] else {
540
+ call.reject("Invalid geofences data", nil, nil, [:])
541
+ return
542
+ }
543
+ var geofences: [TSGeofence] = []
544
+ for params in data {
545
+ if let geofence = buildGeofence(params) {
546
+ geofences.append(geofence)
547
+ } else {
548
+ let error = "Invalid geofence data: \(params)"
549
+ call.reject(error, nil, nil, [:])
550
+ return
551
+ }
552
+ }
553
+ TSLocationManager.sharedInstance()?.addGeofences(geofences, success: {
554
+ call.resolve()
555
+ }, failure: { error in
556
+ if let errorString = error {
557
+ call.reject(errorString, nil, nil, [:])
558
+ } else {
559
+ call.reject("Unknown error", nil, nil, [:])
560
+ }
561
+ })
562
+ }
563
+
564
+ @objc func removeGeofence(_ call: CAPPluginCall) {
565
+ let identifier = call.getString("identifier")
566
+ TSLocationManager.sharedInstance()?.removeGeofence(identifier, success: {
567
+ call.resolve()
568
+ }, failure: { error in
569
+ if let errorString = error {
570
+ call.reject(errorString, nil, nil, [:])
571
+ } else {
572
+ call.reject("Unknown error", nil, nil, [:])
573
+ }
574
+ })
575
+ }
576
+
577
+ @objc func removeGeofences(_ call: CAPPluginCall) {
578
+ guard let identifiers = call.options["identifiers"] as? [String] else {
579
+ call.reject("Invalid identifiers", nil, nil, [:])
580
+ return
581
+ }
582
+ TSLocationManager.sharedInstance()?.removeGeofences(identifiers, success: {
583
+ call.resolve()
584
+ }, failure: { error in
585
+ if let errorString = error {
586
+ call.reject(errorString, nil, nil, [:])
587
+ } else {
588
+ call.reject("Unknown error", nil, nil, [:])
589
+ }
590
+ })
591
+ }
592
+
593
+ @objc func getOdometer(_ call: CAPPluginCall) {
594
+ guard let locationManager = TSLocationManager.sharedInstance() else { return }
595
+ let distance = locationManager.getOdometer()
596
+ call.resolve(["odometer": distance])
597
+ }
598
+
599
+ @objc func setOdometer(_ call: CAPPluginCall) {
600
+ let value = call.getDouble("odometer") ?? 0
601
+ guard let locationManager = TSLocationManager.sharedInstance() else { return }
602
+ let request = TSCurrentPositionRequest(success: { location in
603
+ if let locationData = location?.toDictionary() as? [String: Any] {
604
+ call.resolve(locationData)
605
+ } else {
606
+ call.reject("Failed to convert location to dictionary", nil, nil, [:])
607
+ }
608
+ }, failure: { error in
609
+ if let nsError = error as? NSError {
610
+ call.reject("\(nsError.code)", nil, error, nsError.userInfo)
611
+ } else {
612
+ call.reject("Unknown error occurred", nil, error, [:])
613
+ }
614
+ })
615
+ locationManager.setOdometer(value, request: request)
616
+ }
617
+
618
+ @objc func destroyLocations(_ call: CAPPluginCall) {
619
+ guard let locationManager = TSLocationManager.sharedInstance() else { return }
620
+ let result = locationManager.destroyLocations()
621
+ if result {
622
+ call.resolve()
623
+ } else {
624
+ call.reject("destroyLocations: Unknown error", nil, nil, [:])
625
+ }
626
+ }
627
+
628
+ @objc func destroyLocation(_ call: CAPPluginCall) {
629
+ let uuid = call.getString("uuid")
630
+ TSLocationManager.sharedInstance()?.destroyLocation(uuid, success: {
631
+ call.resolve()
632
+ }, failure: { error in
633
+ if let errorString = error {
634
+ call.reject(errorString, nil, nil, [:])
635
+ } else {
636
+ call.reject("Unknown error", nil, nil, [:])
637
+ }
638
+ })
639
+ }
640
+
641
+ @objc func getCount(_ call: CAPPluginCall) {
642
+ guard let locationManager = TSLocationManager.sharedInstance() else { return }
643
+ let count = locationManager.getCount()
644
+ call.resolve(["count": count])
645
+ }
646
+
647
+ @objc func insertLocation(_ call: CAPPluginCall) {
648
+ let params = call.getObject("options") ?? [:]
649
+ TSLocationManager.sharedInstance()?.insertLocation(params, success: { uuid in
650
+ call.resolve(["uuid": uuid as Any])
651
+ }, failure: { error in
652
+ if let errorString = error {
653
+ call.reject(errorString, nil, nil, [:])
654
+ } else {
655
+ call.reject("Unknown error", nil, nil, [:])
656
+ }
657
+ })
658
+ }
659
+
660
+ @objc func getLog(_ call: CAPPluginCall) {
661
+ let params = call.getObject("options") ?? [:]
662
+ guard let locationManager = TSLocationManager.sharedInstance() else { return }
663
+ let query = LogQuery(dictionary: params)
664
+ locationManager.getLog(query, success: { log in
665
+ call.resolve(["log": log as Any])
666
+ }, failure: { error in
667
+ if let errorString = error {
668
+ call.reject(errorString, nil, nil, [:])
669
+ } else {
670
+ call.reject("Unknown error", nil, nil, [:])
671
+ }
672
+ })
673
+ }
674
+
675
+ @objc func destroyLog(_ call: CAPPluginCall) {
676
+ guard let locationManager = TSLocationManager.sharedInstance() else { return }
677
+ let result = locationManager.destroyLog()
678
+ if result {
679
+ call.resolve()
680
+ } else {
681
+ call.reject("destroyLog Unknown error", nil, nil, [:])
682
+ }
683
+ }
684
+
685
+ @objc func emailLog(_ call: CAPPluginCall) {
686
+ let params = call.getObject("query") ?? [:]
687
+ let email = call.getString("email")
688
+ let query = LogQuery(dictionary: params)
689
+ TSLocationManager.sharedInstance()?.emailLog(email, query: query, success: {
690
+ call.resolve()
691
+ }, failure: { error in
692
+ if let errorString = error {
693
+ call.reject(errorString, nil, nil, [:])
694
+ } else {
695
+ call.reject("Unknown error", nil, nil, [:])
696
+ }
697
+ })
698
+ }
699
+
700
+ @objc func uploadLog(_ call: CAPPluginCall) {
701
+ let params = call.getObject("query") ?? [:]
702
+ let url = call.getString("url")
703
+ let query = LogQuery(dictionary: params)
704
+ TSLocationManager.sharedInstance()?.uploadLog(url, query: query, success: {
705
+ call.resolve()
706
+ }, failure: { error in
707
+ if let errorString = error {
708
+ call.reject(errorString, nil, nil, [:])
709
+ } else {
710
+ call.reject("Unknown error", nil, nil, [:])
711
+ }
712
+ })
713
+ }
714
+
715
+ @objc func log(_ call: CAPPluginCall) {
716
+ let level = call.getString("level") ?? "debug"
717
+ let message = call.getString("message") ?? "no message"
718
+ TSLocationManager.sharedInstance()?.log(level, message: message)
719
+ call.resolve()
720
+ }
721
+
722
+ @objc func getSensors(_ call: CAPPluginCall) {
723
+ guard let locationManager = TSLocationManager.sharedInstance() else { return }
724
+ let sensors: [String: Any] = [
725
+ "platform": "ios",
726
+ "accelerometer": locationManager.isAccelerometerAvailable(),
727
+ "gyroscope": locationManager.isGyroAvailable(),
728
+ "magnetometer": locationManager.isMagnetometerAvailable(),
729
+ "motion_hardware": locationManager.isMotionHardwareAvailable()
730
+ ]
731
+ call.resolve(sensors)
732
+ }
733
+
734
+ @objc func getDeviceInfo(_ call: CAPPluginCall) {
735
+ let deviceInfo = TSDeviceInfo.sharedInstance()
736
+ if let infoDict = deviceInfo?.toDictionary("capacitor") as? [String: Any] {
737
+ call.resolve(infoDict)
738
+ } else {
739
+ call.reject("Failed to get device info", nil, nil, [:])
740
+ }
741
+ }
742
+
743
+ @objc func isPowerSaveMode(_ call: CAPPluginCall) {
744
+ guard let locationManager = TSLocationManager.sharedInstance() else { return }
745
+ call.resolve([
746
+ "isPowerSaveMode": locationManager.isPowerSaveMode()
747
+ ])
748
+ }
749
+
750
+ @objc func isIgnoringBatteryOptimizations(_ call: CAPPluginCall) {
751
+ call.resolve([
752
+ "isIgnoringBatteryOptimizations": false
753
+ ])
754
+ }
755
+
756
+ @objc func requestSettings(_ call: CAPPluginCall) {
757
+ call.reject("No iOS Implementation", nil, nil, [:])
758
+ }
759
+
760
+ @objc func showSettings(_ call: CAPPluginCall) {
761
+ call.reject("No iOS Implementation", nil, nil, [:])
762
+ }
763
+
764
+ @objc func requestPermission(_ call: CAPPluginCall) {
765
+ TSLocationManager.sharedInstance()?.requestPermission({ status in
766
+ call.resolve(["success": true, "status": status as Any])
767
+ }, failure: { status in
768
+ call.resolve(["success": false, "status": status as Any])
769
+ })
770
+ }
771
+
772
+ @objc func requestTemporaryFullAccuracy(_ call: CAPPluginCall) {
773
+ let purpose = call.getString("purpose") ?? ""
774
+ TSLocationManager.sharedInstance()?.requestTemporaryFullAccuracy(purpose, success: { accuracyAuthorization in
775
+ call.resolve(["accuracyAuthorization": accuracyAuthorization])
776
+ }, failure: { error in
777
+ if let nsError = error as? NSError,
778
+ let debugDescription = nsError.userInfo["NSDebugDescription"] as? String {
779
+ call.reject(debugDescription, nil, error, nsError.userInfo)
780
+ } else {
781
+ call.reject("Unknown error occurred", nil, error, [:])
782
+ }
783
+ })
784
+ }
785
+
786
+ @objc func getProviderState(_ call: CAPPluginCall) {
787
+ guard let locationManager = TSLocationManager.sharedInstance() else { return }
788
+ if let event = locationManager.getProviderState(),
789
+ let stateData = event.toDictionary() as? [String: Any] {
790
+ call.resolve(stateData)
791
+ } else {
792
+ call.reject("Failed to convert provider state to dictionary", nil, nil, [:])
793
+ }
794
+ }
795
+
796
+ @objc func getTransistorToken(_ call: CAPPluginCall) {
797
+ let orgname = call.getString("org")
798
+ let username = call.getString("username")
799
+ let url = call.getString("url")
800
+ TransistorAuthorizationToken.findOrCreate(withOrg: orgname, username: username, url: url, framework: "capacitor", success: { token in
801
+ if let token = token,
802
+ let tokenData = token.toDictionary() as? [String: Any] {
803
+ let result: [String: Any] = [
804
+ "success": true,
805
+ "token": tokenData
806
+ ]
807
+ call.resolve(result)
808
+ } else {
809
+ call.reject("Failed to convert token to dictionary", nil, nil, [:])
810
+ }
811
+ }, failure: { error in
812
+ let result: [String: Any]
813
+ if let nsError = error as? NSError {
814
+ result = [
815
+ "success": false,
816
+ "status": nsError.code,
817
+ "message": nsError.localizedDescription
818
+ ]
819
+ } else {
820
+ result = [
821
+ "success": false,
822
+ "status": -1,
823
+ "message": "Unknown error occurred"
824
+ ]
825
+ }
826
+ call.resolve(result)
827
+ })
828
+ }
829
+
830
+ @objc func destroyTransistorToken(_ call: CAPPluginCall) {
831
+ let url = call.getString("url")
832
+ TransistorAuthorizationToken.destroy(withUrl: url)
833
+ call.resolve()
834
+ }
835
+
836
+ @objc func playSound(_ call: CAPPluginCall) {
837
+ let soundId = call.getInt("soundId") ?? 0
838
+ TSLocationManager.sharedInstance()?.playSound(UInt32(soundId))
839
+ call.resolve()
840
+ }
841
+
842
+ @objc func removeAllEventListeners(_ call: CAPPluginCall) {
843
+ self.removeAllListeners(call)
844
+ NSLog("BackgroundGeolocation plugin removeAllListeners")
845
+ call.resolve()
846
+ }
847
+
848
+ func buildGeofence(_ params: [String: Any]) -> TSGeofence? {
849
+ guard let identifier = params["identifier"] as? String,
850
+ (params["vertices"] != nil || (params["radius"] != nil && params["latitude"] != nil && params["longitude"] != nil)) else {
851
+ return nil
852
+ }
853
+ let radius = (params["radius"] as? Double) ?? 0
854
+ let latitude = (params["latitude"] as? Double) ?? 0
855
+ let longitude = (params["longitude"] as? Double) ?? 0
856
+ let notifyOnEntry = (params["notifyOnEntry"] as? Bool) ?? false
857
+ let notifyOnExit = (params["notifyOnExit"] as? Bool) ?? false
858
+ let notifyOnDwell = (params["notifyOnDwell"] as? Bool) ?? false
859
+ let loiteringDelay = (params["loiteringDelay"] as? Double) ?? 0
860
+ let extras = params["extras"] as? [String: Any]
861
+ let vertices = params["vertices"] as? [[String: Any]]
862
+
863
+ return TSGeofence(
864
+ identifier: identifier,
865
+ radius: radius,
866
+ latitude: latitude,
867
+ longitude: longitude,
868
+ notifyOnEntry: notifyOnEntry,
869
+ notifyOnExit: notifyOnExit,
870
+ notifyOnDwell: notifyOnDwell,
871
+ loiteringDelay: loiteringDelay,
872
+ extras: extras,
873
+ vertices: vertices
874
+ )
875
+ }
876
+
877
+ deinit {
878
+ TSLocationManager.sharedInstance()?.removeListeners()
879
+ }
880
+ }