@transistorsoft/capacitor-background-geolocation 7.2.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.
- package/Package.swift +45 -0
- package/android/Package.swift +2 -0
- package/ios/Frameworks/TSLocationManager.xcframework/Info.plist +61 -0
- package/ios/Frameworks/TSLocationManager.xcframework/_CodeSignature/CodeDirectory +0 -0
- package/ios/Frameworks/TSLocationManager.xcframework/_CodeSignature/CodeRequirements +0 -0
- package/ios/Frameworks/TSLocationManager.xcframework/_CodeSignature/CodeRequirements-1 +0 -0
- package/ios/Frameworks/TSLocationManager.xcframework/_CodeSignature/CodeResources +2033 -0
- package/ios/Frameworks/TSLocationManager.xcframework/_CodeSignature/CodeSignature +0 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/AtomicBoolean.h +18 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/ConfigModule.h +21 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/HttpRequest.h +21 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/HttpResponse.h +29 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/LocationManager.h +55 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/LogQuery.h +13 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/SOMotionDetector.h +141 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/SQLQuery.h +34 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSActivityChangeEvent.h +16 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSAuthorization.h +38 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSAuthorizationEvent.h +18 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSCallback.h +18 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSConfig.h +310 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSConnectivityChangeEvent.h +17 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSCurrentPositionRequest.h +43 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSDeviceInfo.h +24 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSEnabledChangeEvent.h +15 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSGeofence.h +54 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSGeofenceEvent.h +64 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSGeofenceManager.h +54 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSGeofencesChangeEvent.h +17 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSHeartbeatEvent.h +18 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSHttpEvent.h +19 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSHttpService.h +58 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSLocation.h +105 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSLocationManager.h +315 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSPowerSaveChangeEvent.h +14 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSProviderChangeEvent.h +20 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSReachability.h +106 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSSchedule.h +40 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSScheduleEvent.h +18 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSWatchPositionRequest.h +41 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TransistorAuthorizationToken.h +31 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Info.plist +0 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Miniball/Miniball.hpp +525 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Modules/module.modulemap +6 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/PrivacyInfo.xcprivacy +36 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/TSLocationManager +0 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/_CodeSignature/CodeDirectory +0 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/_CodeSignature/CodeRequirements +0 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/_CodeSignature/CodeRequirements-1 +0 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/_CodeSignature/CodeResources +642 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/_CodeSignature/CodeSignature +0 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/AtomicBoolean.h +18 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/ConfigModule.h +21 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/HttpRequest.h +21 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/HttpResponse.h +29 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/LocationManager.h +55 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/LogQuery.h +13 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/SOMotionDetector.h +141 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/SQLQuery.h +34 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSActivityChangeEvent.h +16 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSAuthorization.h +38 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSAuthorizationEvent.h +18 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSCallback.h +18 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSConfig.h +310 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSConnectivityChangeEvent.h +17 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSCurrentPositionRequest.h +43 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSDeviceInfo.h +24 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSEnabledChangeEvent.h +15 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSGeofence.h +54 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSGeofenceEvent.h +64 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSGeofenceManager.h +54 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSGeofencesChangeEvent.h +17 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSHeartbeatEvent.h +18 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSHttpEvent.h +19 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSHttpService.h +58 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSLocation.h +105 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSLocationManager.h +315 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSPowerSaveChangeEvent.h +14 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSProviderChangeEvent.h +20 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSReachability.h +106 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSSchedule.h +40 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSScheduleEvent.h +18 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSWatchPositionRequest.h +41 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TransistorAuthorizationToken.h +31 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Modules/module.modulemap +6 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Resources/Info.plist +50 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Resources/Miniball/Miniball.hpp +525 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Resources/PrivacyInfo.xcprivacy +36 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/TSLocationManager +0 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/_CodeSignature/CodeDirectory +0 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/_CodeSignature/CodeRequirements +0 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/_CodeSignature/CodeRequirements-1 +0 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/_CodeSignature/CodeResources +536 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/_CodeSignature/CodeSignature +0 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/AtomicBoolean.h +18 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/ConfigModule.h +21 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/HttpRequest.h +21 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/HttpResponse.h +29 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/LocationManager.h +55 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/LogQuery.h +13 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/SOMotionDetector.h +141 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/SQLQuery.h +34 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSActivityChangeEvent.h +16 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSAuthorization.h +38 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSAuthorizationEvent.h +18 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSCallback.h +18 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSConfig.h +310 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSConnectivityChangeEvent.h +17 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSCurrentPositionRequest.h +43 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSDeviceInfo.h +24 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSEnabledChangeEvent.h +15 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSGeofence.h +54 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSGeofenceEvent.h +64 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSGeofenceManager.h +54 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSGeofencesChangeEvent.h +17 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSHeartbeatEvent.h +18 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSHttpEvent.h +19 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSHttpService.h +58 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSLocation.h +105 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSLocationManager.h +315 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSPowerSaveChangeEvent.h +14 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSProviderChangeEvent.h +20 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSReachability.h +106 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSSchedule.h +40 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSScheduleEvent.h +18 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSWatchPositionRequest.h +41 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TransistorAuthorizationToken.h +31 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Info.plist +0 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Miniball/Miniball.hpp +525 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Modules/module.modulemap +6 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/PrivacyInfo.xcprivacy +36 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/TSLocationManager +0 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/_CodeSignature/CodeDirectory +0 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/_CodeSignature/CodeRequirements +0 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/_CodeSignature/CodeRequirements-1 +0 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/_CodeSignature/CodeResources +642 -0
- package/ios/Frameworks/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/_CodeSignature/CodeSignature +0 -0
- package/ios/Sources/BackgroundGeolocationPlugin/BackgroundGeolocationPlugin.swift +880 -0
- package/ios/Sources/BackgroundGeolocationPlugin/PrivacyInfo.xcprivacy +35 -0
- package/package.json +5 -5
- package/ios/Plugin/BackgroundGeolocationModule.h +0 -14
- package/ios/Plugin/BackgroundGeolocationModule.m +0 -694
- package/ios/Plugin/BackgroundGeolocationPlugin.h +0 -10
- package/ios/Plugin/BackgroundGeolocationPlugin.m +0 -66
- 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
|
+
}
|