react-native-move-sdk 2.7.1-alpha.3 → 2.8.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.
@@ -144,7 +144,7 @@ dependencies {
144
144
  // noinspection GradleDynamicVersion
145
145
 
146
146
  implementation "com.facebook.react:react-native:+"
147
- api "io.dolphin.move:move-sdk:2.7.0.84"
147
+ api "io.dolphin.move:move-sdk:2.8.0.85"
148
148
 
149
149
  testImplementation 'junit:junit:4.13.2'
150
150
  testImplementation "androidx.test:core:1.4.0"
@@ -27,7 +27,6 @@ import io.dolphin.move.MoveServiceFailure
27
27
  import io.dolphin.move.MoveServiceWarning
28
28
  import java.util.Timer
29
29
  import java.util.TimerTask
30
- import java.util.UUID
31
30
 
32
31
  internal const val EVENT_INIT_ERROR = "MoveSdk-InitError"
33
32
  internal const val EVENT_MOVE_STATE = "MoveSdk-State"
@@ -411,6 +410,34 @@ class MoveSdkModule(context: ReactApplicationContext) : ReactContextBaseJavaModu
411
410
  }
412
411
  }
413
412
 
413
+ @ReactMethod
414
+ fun updateConfig(
415
+ timelineDetectionServices: ReadableArray,
416
+ drivingServices: ReadableArray,
417
+ walkingServices: ReadableArray,
418
+ ) {
419
+ nativeSdkWrapper.updateConfig(
420
+ timelineDetectionServices,
421
+ drivingServices,
422
+ walkingServices,
423
+ )
424
+ }
425
+
426
+ @ReactMethod
427
+ fun setTripMetadata(metadata: ReadableMap?) {
428
+ val metadataMap = metadata?.toHashMap()?.mapValues { it.value.toString() }
429
+ nativeSdkWrapper.setTripMetadata(metadataMap)
430
+ }
431
+
432
+ @ReactMethod
433
+ fun setLiveLocationTag(tag: String?, promise: Promise) {
434
+ if (nativeSdkWrapper.setLiveLocationTag(tag)) {
435
+ promise.resolve(true)
436
+ } else {
437
+ promise.reject(Exception("Can't set location tag, check Move SDK logs for more information"))
438
+ }
439
+ }
440
+
414
441
  // region PERMISSIONS MODULE
415
442
  @SuppressLint("NewApi")
416
443
  override fun onActivityResult(
@@ -7,6 +7,9 @@ import com.facebook.react.bridge.Promise
7
7
  import com.facebook.react.bridge.ReadableArray
8
8
  import com.facebook.react.bridge.ReadableMap
9
9
  import com.google.gson.Gson
10
+ import `in`.dolph.move.sdk.metadata.METADATA_PREF
11
+ import `in`.dolph.move.sdk.metadata.MetadataStorage
12
+ import `in`.dolph.move.sdk.metadata.MetadataStorageImpl
10
13
  import io.dolphin.move.DeviceDiscovery
11
14
  import io.dolphin.move.DrivingService
12
15
  import io.dolphin.move.MoveAssistanceCallStatus
@@ -36,7 +39,7 @@ import kotlin.collections.ArrayList
36
39
  class NativeMoveSdkWrapper(private val context: Context) : MoveSdk.StateListener,
37
40
  MoveSdk.InitializeListener, MoveSdk.TripStateListener, MoveSdk.AuthStateUpdateListener,
38
41
  MoveSdk.MoveLogCallback, MoveSdk.MoveErrorListener, MoveSdk.MoveWarningListener,
39
- MoveSdk.DeviceDiscoveryListener, MoveSdk.RemoteConfigChangeListener, MoveSdk.TripStartListener {
42
+ MoveSdk.DeviceDiscoveryListener, MoveSdk.RemoteConfigChangeListener, MoveSdk.TripStartListener, MoveSdk.TripMetadataProvider {
40
43
 
41
44
  companion object {
42
45
 
@@ -58,7 +61,12 @@ class NativeMoveSdkWrapper(private val context: Context) : MoveSdk.StateListener
58
61
  private val mainScope = CoroutineScope(Dispatchers.Main)
59
62
  private val ioContext = Dispatchers.IO
60
63
  private val gson = Gson()
61
-
64
+ private val metadataStorage: MetadataStorage = MetadataStorageImpl(
65
+ context.getSharedPreferences(
66
+ METADATA_PREF, Context.MODE_PRIVATE
67
+ ),
68
+ gson,
69
+ )
62
70
  fun init(context: Context) {
63
71
  val moveSdk = MoveSdk.init(context.applicationContext)
64
72
 
@@ -75,6 +83,8 @@ class NativeMoveSdkWrapper(private val context: Context) : MoveSdk.StateListener
75
83
  moveSdk.setRemoteConfigChangeListener(this)
76
84
  moveSdk.setTripStartListener(this)
77
85
 
86
+ moveSdk.metadataProvider(this)
87
+
78
88
  // Initialize notifications by default (might be overwritten by setup)
79
89
  // TODO remove notification setup in init when VIG1-1620 will be fixed
80
90
  /* val config: MoveSdkConfig = configRepository.loadConfig()
@@ -129,8 +139,9 @@ class NativeMoveSdkWrapper(private val context: Context) : MoveSdk.StateListener
129
139
  val walkingServicesToUse = mutableListOf<WalkingService>()
130
140
 
131
141
  walkingServices.toArrayList().forEach {
142
+ val serviceName = if (it == "WALKING_LOCATION") "LOCATION" else it
132
143
  try {
133
- walkingServicesToUse.add(WalkingService.valueOf(it.toString().snakeToUpperCamelCase()))
144
+ walkingServicesToUse.add(WalkingService.valueOf(serviceName.toString().snakeToUpperCamelCase()))
134
145
  } catch (t: Throwable) {
135
146
  t.printStackTrace()
136
147
  }
@@ -582,6 +593,56 @@ class NativeMoveSdkWrapper(private val context: Context) : MoveSdk.StateListener
582
593
  override fun onTripStarted(startDate: Date) {
583
594
  emitDeviceEvent(EVENT_MOVE_SDK_TRIP_START, startDate.time.toString())
584
595
  }
596
+
597
+ fun updateConfig(
598
+ timelineDetectionServices: ReadableArray,
599
+ drivingServices: ReadableArray,
600
+ walkingServices: ReadableArray,
601
+ ) {
602
+ val timelineDetectionServicesToUse = mutableListOf<MoveDetectionService>()
603
+ val drivingServicesToUse = mutableListOf<DrivingService>()
604
+ val walkingServicesToUse = mutableListOf<WalkingService>()
605
+
606
+ walkingServices.toArrayList().forEach {
607
+ val serviceName = if (it == "WALKING_LOCATION") "LOCATION" else it
608
+ try {
609
+ walkingServicesToUse.add(WalkingService.valueOf(serviceName.toString().snakeToUpperCamelCase()))
610
+ } catch (t: Throwable) {
611
+ t.printStackTrace()
612
+ }
613
+ }
614
+
615
+ drivingServices.toArrayList().forEach {
616
+ try {
617
+ drivingServicesToUse.add(DrivingService.valueOf(it.toString().snakeToUpperCamelCase()))
618
+ } catch (t: Throwable) {
619
+ t.printStackTrace()
620
+ }
621
+ }
622
+
623
+ timelineDetectionServices.toArrayList().forEach { service ->
624
+ timelineDetectionServicesToUse.add(
625
+ valueOfMoveDetectionService(
626
+ service.toString(),
627
+ drivingServicesToUse,
628
+ walkingServicesToUse
629
+ )
630
+ )
631
+ }
632
+ MoveSdk.get()?.updateConfig(MoveConfig(timelineDetectionServicesToUse))
633
+ }
634
+
635
+ override fun provideMetadata(start: Long, end: Long): Map<String, String> {
636
+ return metadataStorage.getTripMetadata().orEmpty()
637
+ }
638
+
639
+ fun setTripMetadata(metadataMap: Map<String, String>?) {
640
+ metadataStorage.setTripMetadata(metadataMap)
641
+ }
642
+
643
+ fun setLiveLocationTag(tag: String?): Boolean {
644
+ return MoveSdk.get()?.setLiveLocationTag(tag) == true
645
+ }
585
646
  }
586
647
 
587
648
  fun List<MoveServiceFailure>.failuresToArray(): Array<Any> {
@@ -0,0 +1,44 @@
1
+ package `in`.dolph.move.sdk.extentions
2
+
3
+ import android.content.SharedPreferences
4
+ import androidx.core.content.edit
5
+ import kotlin.properties.ReadWriteProperty
6
+ import kotlin.reflect.KProperty
7
+
8
+ fun SharedPreferences.string(key: String? = null, default: String): ReadWriteProperty<Any, String> {
9
+ return internalDelegate(
10
+ key = key,
11
+ defaultValue = default,
12
+ getValue = { keyValue, defaultValue -> getString(keyValue, defaultValue) ?: defaultValue },
13
+ setValue = SharedPreferences.Editor::putString,
14
+ )
15
+ }
16
+
17
+ fun SharedPreferences.stringNullable(
18
+ key: String? = null,
19
+ default: String? = null,
20
+ ): ReadWriteProperty<Any, String?> {
21
+ return internalDelegate(
22
+ key,
23
+ default,
24
+ SharedPreferences::getString,
25
+ SharedPreferences.Editor::putString
26
+ )
27
+ }
28
+
29
+ private inline fun <T> SharedPreferences.internalDelegate(
30
+ key: String?,
31
+ defaultValue: T,
32
+ crossinline getValue: SharedPreferences.(String, T) -> T,
33
+ crossinline setValue: SharedPreferences.Editor.(String, T) -> SharedPreferences.Editor,
34
+ ): ReadWriteProperty<Any, T> {
35
+ return object : ReadWriteProperty<Any, T> {
36
+ override fun getValue(thisRef: Any, property: KProperty<*>): T {
37
+ return getValue(key ?: property.name, defaultValue)
38
+ }
39
+
40
+ override fun setValue(thisRef: Any, property: KProperty<*>, value: T) {
41
+ edit { setValue(key ?: property.name, value) }
42
+ }
43
+ }
44
+ }
@@ -0,0 +1,7 @@
1
+ package `in`.dolph.move.sdk.metadata
2
+
3
+ const val METADATA_PREF = "move_sdk_metadata"
4
+ interface MetadataStorage {
5
+ fun getTripMetadata(): Map<String, String>?
6
+ fun setTripMetadata(metadata: Map<String, String>?)
7
+ }
@@ -0,0 +1,36 @@
1
+ package `in`.dolph.move.sdk.metadata
2
+
3
+ import android.content.SharedPreferences
4
+ import android.util.Log
5
+ import com.google.gson.Gson
6
+ import com.google.gson.reflect.TypeToken
7
+ import `in`.dolph.move.sdk.extentions.stringNullable
8
+
9
+ class MetadataStorageImpl(
10
+ sharedPreferences: SharedPreferences,
11
+ private val converter: Gson,
12
+ ) : MetadataStorage {
13
+
14
+ private val type = object : TypeToken<Map<String, String>>() {}.type
15
+ private var rawMetadata: String? by sharedPreferences.stringNullable()
16
+
17
+ override fun getTripMetadata(): Map<String, String>? {
18
+ return try {
19
+ val meta: Map<String, String>? = converter.fromJson(rawMetadata, type)
20
+ rawMetadata = null
21
+ meta
22
+ } catch (e: Exception) {
23
+ Log.e("MessageParser", "Error parsing message to object", e)
24
+ null
25
+ }
26
+ }
27
+
28
+ override fun setTripMetadata(metadata: Map<String, String>?) {
29
+ try {
30
+ val convertedObject: String? = metadata?.let { converter.toJson(metadata) }
31
+ rawMetadata = convertedObject
32
+ } catch (e: Exception) {
33
+ Log.e("MessageParser", "Error parsing object to message", e)
34
+ }
35
+ }
36
+ }
@@ -33,6 +33,10 @@ RCT_EXTERN_METHOD(setup: (NSString *)contractId
33
33
  resolve: (RCTPromiseResolveBlock)resolve
34
34
  reject: (RCTPromiseRejectBlock)reject)
35
35
 
36
+ RCT_EXTERN_METHOD(updateConfig: (NSArray<NSString> *)timelineDetectionServices
37
+ drivingServices: (NSArray<NSString> *)drivingServices
38
+ walkingServices: (NSArray<NSString> *)walkingServices)
39
+
36
40
  RCT_EXTERN_METHOD(getState: (RCTPromiseResolveBlock)resolve
37
41
  rejecter: (RCTPromiseRejectBlock)reject)
38
42
 
@@ -50,6 +54,12 @@ RCT_EXTERN_METHOD(initiateAssistanceCall: (RCTPromiseResolveBlock)resolve
50
54
 
51
55
  RCT_EXTERN_METHOD(setAssistanceMetaData: (NSString *) metadata)
52
56
 
57
+ RCT_EXTERN_METHOD(setTripMetadata: (id) metadata)
58
+
59
+ RCT_EXTERN_METHOD(setLiveLocationTag: (NSString*) tag
60
+ resolver: (RCTPromiseResolveBlock)resolve
61
+ rejecter: (RCTPromiseRejectBlock)reject)
62
+
53
63
  RCT_EXTERN_METHOD(startAutomaticDetection: (RCTPromiseResolveBlock)resolve
54
64
  rejecter: (RCTPromiseRejectBlock)reject)
55
65
 
@@ -127,52 +127,7 @@ class RCTMoveSdk: RCTEventEmitter {
127
127
  reject: @escaping RCTPromiseRejectBlock) {
128
128
 
129
129
  do {
130
-
131
- let transformedServices: [MoveConfig.DrivingService] = try drivingServices.map {
132
- switch $0 {
133
- case ServiceName.distractionFreeDriving.rawValue:
134
- return .distractionFreeDriving
135
- case ServiceName.drivingBehavior.rawValue:
136
- return .drivingBehavior
137
- case ServiceName.deviceDiscovery.rawValue:
138
- return .deviceDiscovery
139
- default:
140
- throw CError.transformedServices
141
- }
142
- }
143
-
144
- let transformedWalkingServices: [MoveConfig.WalkingService] = try walkingServices.map {
145
- if $0 == ServiceName.walkingLocation.rawValue {
146
- return .location
147
- }
148
- throw CError.transformedWalkingServices
149
- }
150
-
151
- let transformedDetectionServices: [MoveConfig.DetectionService] = try! timelineDetectionServices.map {
152
- switch $0 {
153
- case ServiceName.driving.rawValue:
154
- return .driving(transformedServices)
155
- case ServiceName.walking.rawValue:
156
- return .walking(transformedWalkingServices)
157
- case ServiceName.cycling.rawValue:
158
- return .cycling
159
- case ServiceName.publicTransport.rawValue:
160
- return .publicTransport
161
- case ServiceName.assistanceCall.rawValue:
162
- return .assistanceCall
163
- case ServiceName.pointsOfInterest.rawValue:
164
- return .pointsOfInterest
165
- case ServiceName.places.rawValue:
166
- return .places
167
- case ServiceName.automaticImpactDetection.rawValue:
168
- return .automaticImpactDetection
169
- default:
170
- throw CError.transformedTimelineDetectionServices
171
- }
172
- }
173
-
174
- // TODO: Fix wrapper and add config option from RN for walking services (actually only 1 now)
175
- let sdkConfig = MoveConfig(detectionService: transformedDetectionServices)
130
+ let sdkConfig = try convert(timelineDetectionServices: timelineDetectionServices, drivingServices: drivingServices, walkingServices: walkingServices)
176
131
  let auth = MoveAuth(userToken: accessToken, refreshToken: refreshToken, userID: contractId, projectID: productId)
177
132
  let moveOptions = convert(options: options)
178
133
 
@@ -183,6 +138,77 @@ class RCTMoveSdk: RCTEventEmitter {
183
138
  }
184
139
  }
185
140
 
141
+ /// Wrapper for `MoveSDK.update(config:)`.
142
+ /// - Parameters:
143
+ /// - timelineDetectionServices: Timeline detection services strings.
144
+ /// - drivingServices: Driving services strings.
145
+ /// - walkingServices: Walking services strings.
146
+ @objc
147
+ func updateConfig(_ timelineDetectionServices: Array<String>,
148
+ drivingServices: Array<String>,
149
+ walkingServices: Array<String>) {
150
+ if let sdkConfig = try? convert(timelineDetectionServices: timelineDetectionServices, drivingServices: drivingServices, walkingServices: walkingServices) {
151
+ MoveSDK.shared.update(config: sdkConfig)
152
+ }
153
+ }
154
+
155
+ /// Convert service strings to config subroutine.
156
+ /// - Parameters:
157
+ /// - timelineDetectionServices: Timeline services strings.
158
+ /// - drivingServices: Driving services strings.
159
+ /// - walkingServices: Walking services strings
160
+ /// - Returns: `MoveConfig` for setup.
161
+ private func convert(timelineDetectionServices: Array<String>,
162
+ drivingServices: Array<String>,
163
+ walkingServices: Array<String>) throws -> MoveConfig {
164
+
165
+ let transformedServices: [MoveConfig.DrivingService] = try drivingServices.map {
166
+ switch $0 {
167
+ case ServiceName.distractionFreeDriving.rawValue:
168
+ return .distractionFreeDriving
169
+ case ServiceName.drivingBehavior.rawValue:
170
+ return .drivingBehavior
171
+ case ServiceName.deviceDiscovery.rawValue:
172
+ return .deviceDiscovery
173
+ default:
174
+ throw CError.transformedServices
175
+ }
176
+ }
177
+
178
+ let transformedWalkingServices: [MoveConfig.WalkingService] = try walkingServices.map {
179
+ if $0 == ServiceName.walkingLocation.rawValue {
180
+ return .location
181
+ }
182
+ throw CError.transformedWalkingServices
183
+ }
184
+
185
+ let transformedDetectionServices: [MoveConfig.DetectionService] = try! timelineDetectionServices.map {
186
+ switch $0 {
187
+ case ServiceName.driving.rawValue:
188
+ return .driving(transformedServices)
189
+ case ServiceName.walking.rawValue:
190
+ return .walking(transformedWalkingServices)
191
+ case ServiceName.cycling.rawValue:
192
+ return .cycling
193
+ case ServiceName.publicTransport.rawValue:
194
+ return .publicTransport
195
+ case ServiceName.assistanceCall.rawValue:
196
+ return .assistanceCall
197
+ case ServiceName.pointsOfInterest.rawValue:
198
+ return .pointsOfInterest
199
+ case ServiceName.places.rawValue:
200
+ return .places
201
+ case ServiceName.automaticImpactDetection.rawValue:
202
+ return .automaticImpactDetection
203
+ default:
204
+ throw CError.transformedTimelineDetectionServices
205
+ }
206
+ }
207
+
208
+ return MoveConfig(detectionService: transformedDetectionServices)
209
+ }
210
+
211
+
186
212
  /// Convert options json dict to `MoveOptions` object.
187
213
  /// - Returns: Converted options object.
188
214
  private func convert(options: Any) -> MoveOptions {
@@ -410,6 +436,19 @@ class RCTMoveSdk: RCTEventEmitter {
410
436
  }
411
437
  }
412
438
 
439
+ /// Wrapper for `MoveSDK.setLiveLocationTag(:)`.
440
+ @objc
441
+ func setLiveLocationTag(_ tag: String?,
442
+ resolver resolve: RCTPromiseResolveBlock,
443
+ rejecter reject: RCTPromiseRejectBlock
444
+ ) {
445
+ if MoveSDK.shared.setLiveLocationTag(tag) {
446
+ resolve(true)
447
+ } else {
448
+ reject("false", nil, nil)
449
+ }
450
+ }
451
+
413
452
  /// Wrapper for `MoveSDK.startTrip(metadata:)`.
414
453
  @objc
415
454
  func startTrip(_ metadata: Any?,
@@ -423,6 +462,14 @@ class RCTMoveSdk: RCTEventEmitter {
423
462
  }
424
463
  }
425
464
 
465
+ /// Add metadata to trip
466
+ /// - Parameter metadata: Metdata as [String: String].
467
+ @objc
468
+ func setTripMetadata(_ metadata: Any?) {
469
+ let data = metadata as? [String: String] ?? [:]
470
+ MoveSDKLauncher.shared.setTrip(metadata: data)
471
+ }
472
+
426
473
  /// Wrapper for `MoveSDK.stopAutomaticDetection()`
427
474
  @objc
428
475
  func stopAutomaticDetection(
@@ -657,6 +704,8 @@ internal class MoveSDKLauncher {
657
704
  case auth = "MOVE.WRAPPER.AUTH"
658
705
  /// Persisted config object.
659
706
  case config = "MOVE.WRAPPER.CONFIG"
707
+ /// Persisted trip metadata.
708
+ case metaData = "MOVE.WRAPPER.TRIP.METADATA"
660
709
  }
661
710
 
662
711
  /// Launcher delegate.
@@ -670,6 +719,13 @@ internal class MoveSDKLauncher {
670
719
  }
671
720
  }
672
721
 
722
+ /// Persisted trip metadata.
723
+ private var tripMetaData: [String: String] {
724
+ didSet {
725
+ MoveSDKLauncher.encode(tripMetaData, forKey: .metaData)
726
+ }
727
+ }
728
+
673
729
  /// Pending events triggered before event observer registered.
674
730
  private var pendingEvents: [Event: Any] = [:]
675
731
 
@@ -681,6 +737,8 @@ internal class MoveSDKLauncher {
681
737
 
682
738
  /// Initialize the MoveSDK and register listeners to forward events to the delegate.
683
739
  init() {
740
+ tripMetaData = MoveSDKLauncher.decode(.metaData) ?? [:]
741
+
684
742
  sdk.setSDKStateListener { state in
685
743
  let value = "\(state)".uppercased()
686
744
  self.send(event: .sdkState, data: ["state": "\(value)"])
@@ -720,6 +778,12 @@ internal class MoveSDKLauncher {
720
778
  let data = ["services": services]
721
779
  self.send(event: .configUpdate, data: data)
722
780
  }
781
+
782
+ sdk.setTripMetaDataListener { tripStart, tripEnd in
783
+ let metadata = self.tripMetaData
784
+ self.tripMetaData = [:]
785
+ return metadata
786
+ }
723
787
  }
724
788
 
725
789
  /// Send event to observer.
@@ -1021,6 +1085,16 @@ internal class MoveSDKLauncher {
1021
1085
  UserDefaults.standard.removeObject(forKey: key.rawValue)
1022
1086
  }
1023
1087
  }
1088
+
1089
+ /// Add trip metadata.
1090
+ /// - Parameter metadata: Meta data strings dictionary.
1091
+ fileprivate func setTrip(metadata: [String: String]) {
1092
+ var data = self.tripMetaData
1093
+ for (key, value) in metadata {
1094
+ data[key] = value
1095
+ }
1096
+ self.tripMetaData = data
1097
+ }
1024
1098
  }
1025
1099
 
1026
1100
  /// Persisted old auth object to be migrated.
@@ -98,12 +98,12 @@ class MoveSdk {
98
98
  return await NativeMoveSdk.updateAuth(userId, accessToken, refreshToken, projectId);
99
99
  }
100
100
 
101
- static startAutomaticDetection() {
102
- NativeMoveSdk.startAutomaticDetection();
101
+ static async startAutomaticDetection() {
102
+ return await NativeMoveSdk.startAutomaticDetection();
103
103
  }
104
104
 
105
- static stopAutomaticDetection() {
106
- NativeMoveSdk.stopAutomaticDetection();
105
+ static async stopAutomaticDetection() {
106
+ return await NativeMoveSdk.stopAutomaticDetection();
107
107
  }
108
108
 
109
109
  static forceTripRecognition() {
@@ -337,6 +337,23 @@ class MoveSdk {
337
337
  return await NativeMoveSdk.startTrip(metadata);
338
338
  }
339
339
 
340
+ static updateConfig(config) {
341
+ const {
342
+ timelineDetectionServices,
343
+ drivingServices,
344
+ walkingServices
345
+ } = config;
346
+ NativeMoveSdk.updateConfig(timelineDetectionServices, drivingServices, walkingServices);
347
+ }
348
+
349
+ static setTripMetadata(metadata) {
350
+ NativeMoveSdk.setTripMetadata(metadata);
351
+ }
352
+
353
+ static async setLiveLocationTag(tag) {
354
+ return await NativeMoveSdk.setLiveLocationTag(tag);
355
+ }
356
+
340
357
  }
341
358
 
342
359
  exports.default = MoveSdk;
@@ -1 +1 @@
1
- {"version":3,"sources":["MoveSdk.ts"],"names":["MoveSdk","NativeMoveSdk","NativeModules","eventEmitter","NativeEventEmitter","sdkStateFromNative","sdkState","UNINITIALIZED","READY","RUNNING","includes","tripStateFromNative","nativeTripState","UNKNOWN","DRIVING","HALT","IDLE","IGNORED","authStateFromNative","nativeAuthState","AUTH_VALID","AUTH_EXPIRED","AUTH_INVALID","AUTH_UNKNOWN","setup","config","auth","android","options","timelineDetectionServices","drivingServices","walkingServices","userId","projectId","accessToken","refreshToken","platformParams","Platform","OS","notifications","tripNotification","recognitionNotification","Error","title","text","channel","id","name","description","allowMockLocations","init","resolveError","updateAuth","startAutomaticDetection","stopAutomaticDetection","forceTripRecognition","duration","keepInForeground","enabled","console","warn","keepActive","synchronizeUserData","getAuthState","authState","getState","state","getTripState","tripState","getErrors","getWarnings","initiateAssistanceCall","setAssistanceMetaData","data","addTripStateListener","tripStateChanged","addListener","event","addTripStartListener","tripStartTriggered","start","Date","Number","addSdkStateListener","sdkStateChanged","addAuthStateListener","authStateChanged","transformedEvent","addErrorsListener","errorsReceived","errors","addWarningsListener","warningsReceived","warnings","addAppEventListener","appEventReceived","addRemoteConfigChangeListener","configChangeReceived","version","getConstants","finishCurrentTrip","ignoreCurrentTrip","requestMotionPermission","shutdown","force","getDeviceQualifier","geocode","latitude","longitude","isAuthValid","canDrawOverlays","requestDrawOverlaysPermission","isAppIgnoringBatteryOptimization","requestAppIgnoringBatteryOptimization","startScanningDevices","sdkDevicesDetected","filter","uuid","manufacturerId","subscription","devices","subscriptionRemove","remove","stopScanningDevices","getRegisteredDevices","registerDevices","unregisterDevices","requestBluetoothAlwaysUsagePermission","addDeviceDiscoveryListener","onScanResult","results","setTimer","callback","delay","key","now","toString","cancelTimer","startTrip","metadata"],"mappings":"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","sourcesContent":["import { NativeModules, NativeEventEmitter, Platform, EmitterSubscription } from 'react-native';\n\nexport type SdkState = 'UNINITIALIZED' | 'READY' | 'RUNNING';\nexport type TripState = 'UNKNOWN' | 'DRIVING' | 'HALT' | 'IDLE' | 'IGNORED';\nexport type AuthState = 'UNKNOWN' | 'VALID' | 'EXPIRED' | 'INVALID';\nexport type DrivingService = 'DISTRACTION_FREE_DRIVING' | 'DRIVING_BEHAVIOUR' | 'DEVICE_DISCOVERY';\nexport type WalkingService = 'WALKING_LOCATION';\nexport type OtherService = 'POINTS_OF_INTEREST';\nexport type TimelineDetectionService = 'DRIVING' | 'CYCLING' | 'WALKING' | 'PLACES' | 'PUBLIC_TRANSPORT' | 'AUTOMATIC_IMPACT_DETECTION' | 'ASSISTANCE_CALL' | 'POINTS_OF_INTEREST';\n\nexport type ErrorReasons =\n | 'BACKGROUND_LOCATION_PERMISSION_MISSING'\n | 'LOCATION_PERMISSION_MISSING'\n | 'MOTION_PERMISSION_MISSING'\n | 'ACTIVITY_PERMISSION_MISSING'\n | 'BATTERY_PERMISSION_MISSING'\n | 'UNAUTHORIZED'\n | 'INTERNET_PERMISSION_MISSING'\n | 'PHONE_PERMISSION_MISSING'\n | 'OVERLAY_PERMISSION_MISSING'\n | 'NOTIFICATION_MISSING'\n | 'ACCELEROMETER_MISSING'\n | 'GOOGLE_PLAY_LOCATION_ACCURACY_MISSING'\n | 'PRECISE_LOCATION_PERMISSION_MISSING';\n\nexport type WarningReasons =\n | 'BACKGROUND_LOCATION_PERMISSION_MISSING'\n | 'MOTION_PERMISSION_MISSING'\n | 'ACTIVITY_PERMISSION_MISSING'\n | 'BATTERY_OPTIMIZATION'\n | 'BLUETOOTH_TURNED_OFF'\n | 'BLUETOOTH_SCAN_PERMISSION_MISSING'\n | 'BLUETOOTH_CONNECT_PERMISSION_MISSING'\n | 'GOOGLE_PLAY_LOCATION_ACCURACY_MISSING'\n | 'NOTIFICATION_PERMISSION_MISSING'\n | 'FINE_LOCATION_PERMISSION_MISSING'\n | 'BLUETOOTH_PERMISSION_MISSING'\n | 'GPS_OFF'\n | 'OFFLINE';\n\nexport type IssueListService = TimelineDetectionService | DrivingService | WalkingService;\n\nexport type IssueListItem<ReasonsType> = {\n reasons: Array<ReasonsType>;\n service?: IssueListService;\n};\n\nexport type ErrorListType = Array<IssueListItem<ErrorReasons>>;\n\nexport type WarningListType = Array<IssueListItem<WarningReasons>>;\n\nexport type ShutdownReturnType = 'NETWORK_ERROR' | 'SUCCESS' | 'UNINITIALIZED';\n\nexport type MoveSdkConfig = {\n timelineDetectionServices: Array<TimelineDetectionService>;\n drivingServices: Array<DrivingService>;\n walkingServices: Array<WalkingService>;\n};\n\nexport type MoveSdkDeviceDiscovery = {\n startDelay?: number;\n duration?: number;\n interval?: number;\n stopScanOnFirstDiscovered?: boolean;\n};\n\nexport type MoveSdkOptions = {\n motionPermissionMandatory?: boolean;\n backgroundLocationPermissionMandatory?: boolean;\n overlayPermissionMandatory?: boolean;\n useBackendConfig?: boolean;\n deviceDiscovery?: MoveSdkDeviceDiscovery;\n};\n\nexport type MoveSdkAuth = {\n userId: string;\n accessToken: string;\n refreshToken: string;\n projectId: number;\n};\n\nexport type NotificationConfig = {\n title: string;\n text: string;\n channel: { id: string; name: string; description: string };\n};\n\nexport type MoveSdkAndroidConfig = {\n notifications: {\n recognitionNotification: NotificationConfig;\n tripNotification: NotificationConfig;\n };\n};\n\nexport type ListenerSubscription = EmitterSubscription;\n\nexport type AuthStateEvent = {\n state: AuthState;\n accessToken?: string;\n refreshToken?: string;\n};\n\nexport type MoveSdkDeviceFilter = 'beacon' | 'paired';\n\nexport type MoveSdkDevice = {\n name: string;\n data: string;\n id: string;\n};\n\nexport type MoveScanResult = {\n isDiscovered: boolean;\n device: MoveSdkDevice;\n name: string;\n};\n\nconst { MoveSdk: NativeMoveSdk } = NativeModules;\nconst eventEmitter = new NativeEventEmitter(NativeMoveSdk);\n\nexport default class MoveSdk {\n static READY: SdkState = 'READY';\n static RUNNING: SdkState = 'RUNNING';\n static UNINITIALIZED: SdkState = 'UNINITIALIZED';\n\n static AUTH_EXPIRED: AuthState = 'EXPIRED';\n static AUTH_VALID: AuthState = 'VALID';\n static AUTH_UNKNOWN: AuthState = 'UNKNOWN';\n static AUTH_INVALID: AuthState = 'INVALID';\n\n static UNKNOWN: TripState = 'UNKNOWN';\n static DRIVING: TripState = 'DRIVING';\n static HALT: TripState = 'HALT';\n static IDLE: TripState = 'IDLE';\n static IGNORED: TripState = 'IGNORED';\n\n static sdkStateFromNative(sdkState: SdkState): SdkState {\n if ([MoveSdk.UNINITIALIZED, MoveSdk.READY, MoveSdk.RUNNING, MoveSdk.UNINITIALIZED].includes(sdkState)) {\n return sdkState;\n }\n\n return MoveSdk.UNINITIALIZED;\n }\n\n static tripStateFromNative(nativeTripState: TripState): TripState {\n if ([MoveSdk.UNKNOWN, MoveSdk.DRIVING, MoveSdk.HALT, MoveSdk.IDLE, MoveSdk.IGNORED].includes(nativeTripState)) {\n return nativeTripState;\n }\n\n return MoveSdk.UNKNOWN;\n }\n\n static authStateFromNative(nativeAuthState: AuthState): AuthState {\n if ([MoveSdk.AUTH_VALID, MoveSdk.AUTH_EXPIRED, MoveSdk.AUTH_INVALID].includes(nativeAuthState)) {\n return nativeAuthState;\n }\n\n return MoveSdk.AUTH_UNKNOWN;\n }\n\n static async setup(config: MoveSdkConfig, auth: MoveSdkAuth, android: MoveSdkAndroidConfig, options?: MoveSdkOptions): Promise<void> {\n const { timelineDetectionServices, drivingServices, walkingServices } = config;\n\n const { userId, projectId, accessToken, refreshToken } = auth;\n\n let platformParams: Array<string | boolean> = [];\n if (Platform.OS === 'android') {\n const { notifications } = android;\n\n const { tripNotification, recognitionNotification } = notifications;\n\n if (!tripNotification || !recognitionNotification) {\n throw new Error('MOVE SDK needs notification configuration for Android');\n }\n\n platformParams = [\n recognitionNotification.title,\n recognitionNotification.text,\n recognitionNotification.channel.id,\n recognitionNotification.channel.name,\n recognitionNotification.channel.description,\n tripNotification.title,\n tripNotification.text,\n tripNotification.channel.id,\n tripNotification.channel.name,\n tripNotification.channel.description,\n ];\n }\n\n return await NativeMoveSdk.setup(\n userId,\n accessToken,\n refreshToken,\n projectId,\n // Config\n timelineDetectionServices,\n drivingServices,\n walkingServices,\n options,\n // Platform config\n ...platformParams\n );\n }\n\n static allowMockLocations(allowMockLocations: boolean) {\n NativeMoveSdk.allowMockLocations(allowMockLocations);\n }\n\n /* Deprecated */\n static init() {\n NativeMoveSdk.init();\n }\n\n static resolveError() {\n NativeMoveSdk.resolveError();\n }\n\n static async updateAuth(auth: MoveSdkAuth): Promise<void> {\n const { userId, projectId, accessToken, refreshToken } = auth;\n return await NativeMoveSdk.updateAuth(userId, accessToken, refreshToken, projectId);\n }\n\n static startAutomaticDetection() {\n NativeMoveSdk.startAutomaticDetection();\n }\n\n static stopAutomaticDetection() {\n NativeMoveSdk.stopAutomaticDetection();\n }\n\n static forceTripRecognition(duration: number = 60000) {\n NativeMoveSdk.forceTripRecognition(duration);\n }\n\n static keepInForeground(enabled: boolean) {\n if (Platform.OS === 'android') {\n NativeMoveSdk.keepInForeground(enabled);\n } else {\n console.warn('MoveSdk.keepInForeground() is Android OS only.');\n }\n }\n\n static keepActive(enabled: boolean) {\n if (Platform.OS === 'android') {\n NativeMoveSdk.keepActive(enabled);\n } else {\n console.warn('MoveSdk.keepActive() is Android OS only.');\n }\n }\n\n static async synchronizeUserData(): Promise<boolean> {\n return await NativeMoveSdk.synchronizeUserData();\n }\n\n static async getAuthState(): Promise<AuthState> {\n const authState = await NativeMoveSdk.getAuthState();\n return MoveSdk.authStateFromNative(authState);\n }\n\n static async getState(): Promise<SdkState> {\n const state = await NativeMoveSdk.getState();\n return MoveSdk.sdkStateFromNative(state);\n }\n\n static async getTripState(): Promise<TripState> {\n const tripState = await NativeMoveSdk.getTripState();\n return MoveSdk.tripStateFromNative(tripState);\n }\n\n static async getErrors(): Promise<ErrorListType> {\n return await NativeMoveSdk.getErrors();\n }\n\n static async getWarnings(): Promise<WarningListType> {\n return await NativeMoveSdk.getWarnings();\n }\n\n static async initiateAssistanceCall(): Promise<boolean> {\n return await NativeMoveSdk.initiateAssistanceCall();\n }\n\n static setAssistanceMetaData(data: string) {\n NativeMoveSdk.setAssistanceMetaData(data);\n }\n\n static addTripStateListener(tripStateChanged: (state: TripState) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_TRIP_STATE', (event) => tripStateChanged(MoveSdk.tripStateFromNative(event.state)));\n }\n\n static addTripStartListener(tripStartTriggered: (start: Date) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_TRIP_START', (start) => tripStartTriggered(new Date(Number(start))));\n }\n\n static addSdkStateListener(sdkStateChanged: (state: SdkState) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_STATE', (event) => {\n sdkStateChanged(MoveSdk.sdkStateFromNative(event.state));\n });\n }\n\n static addAuthStateListener(authStateChanged: (event: AuthStateEvent) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_AUTH_STATE', (event) => {\n const transformedEvent = {\n ...event,\n state: MoveSdk.authStateFromNative(event.state),\n };\n authStateChanged(transformedEvent);\n });\n }\n\n static addErrorsListener(errorsReceived: (errors: ErrorListType) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_ERRORS', (event) => {\n errorsReceived(event.errors);\n });\n }\n\n static addWarningsListener(warningsReceived: (warnings: WarningListType) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_WARNINGS', (event) => {\n warningsReceived(event.warnings);\n });\n }\n\n static addAppEventListener(appEventReceived: (event: string) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_APP_EVENT', (event) => {\n appEventReceived(event);\n });\n }\n\n static addRemoteConfigChangeListener(configChangeReceived: (config: Array<IssueListService>) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_CONFIG_UPDATE', (config) => {\n configChangeReceived(config);\n });\n }\n\n static version(): string {\n return Platform.OS === 'android' ? NativeMoveSdk.getConstants().version : 'Unknown';\n }\n\n static finishCurrentTrip() {\n NativeMoveSdk.finishCurrentTrip();\n }\n\n static ignoreCurrentTrip() {\n NativeMoveSdk.ignoreCurrentTrip();\n }\n\n static requestMotionPermission() {\n if (Platform.OS === 'ios') {\n NativeMoveSdk.requestMotionPermission();\n } else {\n console.warn('MoveSdk.requestMotionPermission() is iOS only.');\n }\n }\n\n static async shutdown(force: boolean = true): Promise<ShutdownReturnType> {\n return await NativeMoveSdk.shutdown(force);\n }\n\n static async getDeviceQualifier(): Promise<string | null> {\n return NativeMoveSdk.getDeviceQualifier();\n }\n\n static async geocode(latitude: number, longitude: number): Promise<string> {\n return await NativeMoveSdk.geocode(latitude, longitude);\n }\n\n static async isAuthValid(): Promise<boolean> {\n return await NativeMoveSdk.isAuthValid();\n }\n\n // **** PERMISSIONS MODULE START *****\n\n static async canDrawOverlays(): Promise<boolean> {\n return await NativeMoveSdk.canDrawOverlays();\n }\n\n static requestDrawOverlaysPermission() {\n if (Platform.OS === 'android') {\n NativeMoveSdk.requestDrawOverlaysPermission();\n } else {\n console.warn('MoveSdk.requestDrawOverlaysPermission() is Android OS only.');\n }\n }\n\n static async isAppIgnoringBatteryOptimization(): Promise<boolean> {\n return await NativeMoveSdk.isAppIgnoringBatteryOptimization();\n }\n\n static requestAppIgnoringBatteryOptimization() {\n if (Platform.OS === 'android') {\n NativeMoveSdk.requestAppIgnoringBatteryOptimization();\n } else {\n console.warn('MoveSdk.requestAppIgnoringBatteryOptimization() is Android OS only.');\n }\n }\n\n // **** PERMISSIONS MODULE END *****\n\n static startScanningDevices(sdkDevicesDetected: (state: Array<MoveSdkDevice>) => void, filter: MoveSdkDeviceFilter[] = ['paired'], uuid?: string, manufacturerId?: number): ListenerSubscription {\n const subscription = eventEmitter.addListener('MOVE_SDK_DEVICES', (devices) => {\n sdkDevicesDetected(devices);\n });\n const subscriptionRemove = subscription.remove;\n subscription.remove = () => {\n NativeMoveSdk.stopScanningDevices();\n subscriptionRemove();\n };\n\n NativeMoveSdk.startScanningDevices(filter, uuid, manufacturerId ?? -1);\n return subscription;\n }\n\n static async getRegisteredDevices(): Promise<Array<MoveSdkDevice>> {\n return await NativeMoveSdk.getRegisteredDevices();\n }\n\n static async registerDevices(devices: Array<MoveSdkDevice>): Promise<boolean> {\n return await NativeMoveSdk.registerDevices(devices);\n }\n\n static async unregisterDevices(devices: Array<MoveSdkDevice>): Promise<boolean> {\n return await NativeMoveSdk.unregisterDevices(devices);\n }\n\n static requestBluetoothAlwaysUsagePermission(): void {\n NativeMoveSdk.requestBluetoothAlwaysUsagePermission();\n }\n\n static addDeviceDiscoveryListener(onScanResult: (state: Array<MoveScanResult>) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_SCAN_RESULT', (results) => {\n onScanResult(results);\n });\n }\n\n static setTimer(callback: () => void, delay: number = 60000): string {\n if (Platform.OS === 'android') {\n const key = Date.now().toString();\n NativeMoveSdk.setTimer(delay, key, callback);\n return key;\n } else {\n console.warn('MoveSdk.setTimer() is Android OS only.');\n return '';\n }\n }\n\n static cancelTimer(key: string) {\n if (Platform.OS === 'android') {\n NativeMoveSdk.cancelTimer(key);\n } else {\n console.warn('MoveSdk.cancelTimer() is Android OS only.');\n }\n }\n\n static async startTrip(metadata?: {[key: string]: string}): Promise<boolean> {\n return await NativeMoveSdk.startTrip(metadata);\n }\n}\n"]}
1
+ {"version":3,"sources":["MoveSdk.ts"],"names":["MoveSdk","NativeMoveSdk","NativeModules","eventEmitter","NativeEventEmitter","sdkStateFromNative","sdkState","UNINITIALIZED","READY","RUNNING","includes","tripStateFromNative","nativeTripState","UNKNOWN","DRIVING","HALT","IDLE","IGNORED","authStateFromNative","nativeAuthState","AUTH_VALID","AUTH_EXPIRED","AUTH_INVALID","AUTH_UNKNOWN","setup","config","auth","android","options","timelineDetectionServices","drivingServices","walkingServices","userId","projectId","accessToken","refreshToken","platformParams","Platform","OS","notifications","tripNotification","recognitionNotification","Error","title","text","channel","id","name","description","allowMockLocations","init","resolveError","updateAuth","startAutomaticDetection","stopAutomaticDetection","forceTripRecognition","duration","keepInForeground","enabled","console","warn","keepActive","synchronizeUserData","getAuthState","authState","getState","state","getTripState","tripState","getErrors","getWarnings","initiateAssistanceCall","setAssistanceMetaData","data","addTripStateListener","tripStateChanged","addListener","event","addTripStartListener","tripStartTriggered","start","Date","Number","addSdkStateListener","sdkStateChanged","addAuthStateListener","authStateChanged","transformedEvent","addErrorsListener","errorsReceived","errors","addWarningsListener","warningsReceived","warnings","addAppEventListener","appEventReceived","addRemoteConfigChangeListener","configChangeReceived","version","getConstants","finishCurrentTrip","ignoreCurrentTrip","requestMotionPermission","shutdown","force","getDeviceQualifier","geocode","latitude","longitude","isAuthValid","canDrawOverlays","requestDrawOverlaysPermission","isAppIgnoringBatteryOptimization","requestAppIgnoringBatteryOptimization","startScanningDevices","sdkDevicesDetected","filter","uuid","manufacturerId","subscription","devices","subscriptionRemove","remove","stopScanningDevices","getRegisteredDevices","registerDevices","unregisterDevices","requestBluetoothAlwaysUsagePermission","addDeviceDiscoveryListener","onScanResult","results","setTimer","callback","delay","key","now","toString","cancelTimer","startTrip","metadata","updateConfig","setTripMetadata","setLiveLocationTag","tag"],"mappings":"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","sourcesContent":["import { NativeModules, NativeEventEmitter, Platform, EmitterSubscription } from 'react-native';\n\nexport type SdkState = 'UNINITIALIZED' | 'READY' | 'RUNNING';\nexport type TripState = 'UNKNOWN' | 'DRIVING' | 'HALT' | 'IDLE' | 'IGNORED';\nexport type AuthState = 'UNKNOWN' | 'VALID' | 'EXPIRED' | 'INVALID';\nexport type DrivingService = 'DISTRACTION_FREE_DRIVING' | 'DRIVING_BEHAVIOUR' | 'DEVICE_DISCOVERY';\nexport type WalkingService = 'WALKING_LOCATION';\nexport type OtherService = 'POINTS_OF_INTEREST';\nexport type TimelineDetectionService = 'DRIVING' | 'CYCLING' | 'WALKING' | 'PLACES' | 'PUBLIC_TRANSPORT' | 'AUTOMATIC_IMPACT_DETECTION' | 'ASSISTANCE_CALL' | 'POINTS_OF_INTEREST';\n\nexport type ErrorReasons =\n | 'BACKGROUND_LOCATION_PERMISSION_MISSING'\n | 'LOCATION_PERMISSION_MISSING'\n | 'MOTION_PERMISSION_MISSING'\n | 'ACTIVITY_PERMISSION_MISSING'\n | 'BATTERY_PERMISSION_MISSING'\n | 'UNAUTHORIZED'\n | 'INTERNET_PERMISSION_MISSING'\n | 'PHONE_PERMISSION_MISSING'\n | 'OVERLAY_PERMISSION_MISSING'\n | 'NOTIFICATION_MISSING'\n | 'ACCELEROMETER_MISSING'\n | 'GOOGLE_PLAY_LOCATION_ACCURACY_MISSING'\n | 'PRECISE_LOCATION_PERMISSION_MISSING';\n\nexport type WarningReasons =\n | 'BACKGROUND_LOCATION_PERMISSION_MISSING'\n | 'MOTION_PERMISSION_MISSING'\n | 'ACTIVITY_PERMISSION_MISSING'\n | 'BATTERY_OPTIMIZATION'\n | 'BLUETOOTH_TURNED_OFF'\n | 'BLUETOOTH_SCAN_PERMISSION_MISSING'\n | 'BLUETOOTH_CONNECT_PERMISSION_MISSING'\n | 'GOOGLE_PLAY_LOCATION_ACCURACY_MISSING'\n | 'NOTIFICATION_PERMISSION_MISSING'\n | 'FINE_LOCATION_PERMISSION_MISSING'\n | 'BLUETOOTH_PERMISSION_MISSING'\n | 'GPS_OFF'\n | 'OFFLINE'\n | 'GO_EDITION'\n | 'ROOTED'\n | 'NO_SIM'\n | 'BACKGROUND_RESTRICTED'\n | 'MOCK_PROVIDER_LOCATION'\n | 'MOCK_PROVIDER'\n | 'LOCATION_MODE'\n | 'PLAY_SERVICES_MISSING'\n | 'LOCATION_POWER_MODE(0)'\n | 'LOCATION_POWER_MODE(1)'\n | 'LOCATION_POWER_MODE(2)'\n | 'LOCATION_POWER_MODE(3)'\n | 'LOCATION_POWER_MODE(4)';\n\nexport type IssueListService = TimelineDetectionService | DrivingService | WalkingService;\n\nexport type IssueListItem<ReasonsType> = {\n reasons: Array<ReasonsType>;\n service?: IssueListService;\n};\n\nexport type ErrorListType = Array<IssueListItem<ErrorReasons>>;\n\nexport type WarningListType = Array<IssueListItem<WarningReasons>>;\n\nexport type ShutdownReturnType = 'NETWORK_ERROR' | 'SUCCESS' | 'UNINITIALIZED';\n\nexport type MoveSdkConfig = {\n timelineDetectionServices: Array<TimelineDetectionService>;\n drivingServices: Array<DrivingService>;\n walkingServices: Array<WalkingService>;\n};\n\nexport type MoveSdkDeviceDiscovery = {\n startDelay?: number;\n duration?: number;\n interval?: number;\n stopScanOnFirstDiscovered?: boolean;\n};\n\nexport type MoveSdkOptions = {\n motionPermissionMandatory?: boolean;\n backgroundLocationPermissionMandatory?: boolean;\n overlayPermissionMandatory?: boolean;\n useBackendConfig?: boolean;\n deviceDiscovery?: MoveSdkDeviceDiscovery;\n};\n\nexport type MoveSdkAuth = {\n userId: string;\n accessToken: string;\n refreshToken: string;\n projectId: number;\n};\n\nexport type NotificationConfig = {\n title: string;\n text: string;\n channel: { id: string; name: string; description: string };\n};\n\nexport type MoveSdkAndroidConfig = {\n notifications: {\n recognitionNotification: NotificationConfig;\n tripNotification: NotificationConfig;\n };\n};\n\nexport type ListenerSubscription = EmitterSubscription;\n\nexport type AuthStateEvent = {\n state: AuthState;\n accessToken?: string;\n refreshToken?: string;\n};\n\nexport type MoveSdkDeviceFilter = 'beacon' | 'paired';\n\nexport type MoveSdkDevice = {\n name: string;\n data: string;\n id: string;\n};\n\nexport type MoveScanResult = {\n isDiscovered: boolean;\n device: MoveSdkDevice;\n name: string;\n};\n\nconst { MoveSdk: NativeMoveSdk } = NativeModules;\nconst eventEmitter = new NativeEventEmitter(NativeMoveSdk);\n\nexport default class MoveSdk {\n static READY: SdkState = 'READY';\n static RUNNING: SdkState = 'RUNNING';\n static UNINITIALIZED: SdkState = 'UNINITIALIZED';\n\n static AUTH_EXPIRED: AuthState = 'EXPIRED';\n static AUTH_VALID: AuthState = 'VALID';\n static AUTH_UNKNOWN: AuthState = 'UNKNOWN';\n static AUTH_INVALID: AuthState = 'INVALID';\n\n static UNKNOWN: TripState = 'UNKNOWN';\n static DRIVING: TripState = 'DRIVING';\n static HALT: TripState = 'HALT';\n static IDLE: TripState = 'IDLE';\n static IGNORED: TripState = 'IGNORED';\n\n static sdkStateFromNative(sdkState: SdkState): SdkState {\n if ([MoveSdk.UNINITIALIZED, MoveSdk.READY, MoveSdk.RUNNING, MoveSdk.UNINITIALIZED].includes(sdkState)) {\n return sdkState;\n }\n\n return MoveSdk.UNINITIALIZED;\n }\n\n static tripStateFromNative(nativeTripState: TripState): TripState {\n if ([MoveSdk.UNKNOWN, MoveSdk.DRIVING, MoveSdk.HALT, MoveSdk.IDLE, MoveSdk.IGNORED].includes(nativeTripState)) {\n return nativeTripState;\n }\n\n return MoveSdk.UNKNOWN;\n }\n\n static authStateFromNative(nativeAuthState: AuthState): AuthState {\n if ([MoveSdk.AUTH_VALID, MoveSdk.AUTH_EXPIRED, MoveSdk.AUTH_INVALID].includes(nativeAuthState)) {\n return nativeAuthState;\n }\n\n return MoveSdk.AUTH_UNKNOWN;\n }\n\n static async setup(config: MoveSdkConfig, auth: MoveSdkAuth, android: MoveSdkAndroidConfig, options?: MoveSdkOptions): Promise<void> {\n const { timelineDetectionServices, drivingServices, walkingServices } = config;\n\n const { userId, projectId, accessToken, refreshToken } = auth;\n\n let platformParams: Array<string | boolean> = [];\n if (Platform.OS === 'android') {\n const { notifications } = android;\n\n const { tripNotification, recognitionNotification } = notifications;\n\n if (!tripNotification || !recognitionNotification) {\n throw new Error('MOVE SDK needs notification configuration for Android');\n }\n\n platformParams = [\n recognitionNotification.title,\n recognitionNotification.text,\n recognitionNotification.channel.id,\n recognitionNotification.channel.name,\n recognitionNotification.channel.description,\n tripNotification.title,\n tripNotification.text,\n tripNotification.channel.id,\n tripNotification.channel.name,\n tripNotification.channel.description,\n ];\n }\n\n return await NativeMoveSdk.setup(\n userId,\n accessToken,\n refreshToken,\n projectId,\n // Config\n timelineDetectionServices,\n drivingServices,\n walkingServices,\n options,\n // Platform config\n ...platformParams\n );\n }\n\n static allowMockLocations(allowMockLocations: boolean) {\n NativeMoveSdk.allowMockLocations(allowMockLocations);\n }\n\n /* Deprecated */\n static init() {\n NativeMoveSdk.init();\n }\n\n static resolveError() {\n NativeMoveSdk.resolveError();\n }\n\n static async updateAuth(auth: MoveSdkAuth): Promise<void> {\n const { userId, projectId, accessToken, refreshToken } = auth;\n return await NativeMoveSdk.updateAuth(userId, accessToken, refreshToken, projectId);\n }\n\n static async startAutomaticDetection(): Promise<boolean> {\n return await NativeMoveSdk.startAutomaticDetection();\n }\n\n static async stopAutomaticDetection(): Promise<boolean> {\n return await NativeMoveSdk.stopAutomaticDetection();\n }\n\n static forceTripRecognition(duration: number = 60000) {\n NativeMoveSdk.forceTripRecognition(duration);\n }\n\n static keepInForeground(enabled: boolean) {\n if (Platform.OS === 'android') {\n NativeMoveSdk.keepInForeground(enabled);\n } else {\n console.warn('MoveSdk.keepInForeground() is Android OS only.');\n }\n }\n\n static keepActive(enabled: boolean) {\n if (Platform.OS === 'android') {\n NativeMoveSdk.keepActive(enabled);\n } else {\n console.warn('MoveSdk.keepActive() is Android OS only.');\n }\n }\n\n static async synchronizeUserData(): Promise<boolean> {\n return await NativeMoveSdk.synchronizeUserData();\n }\n\n static async getAuthState(): Promise<AuthState> {\n const authState = await NativeMoveSdk.getAuthState();\n return MoveSdk.authStateFromNative(authState);\n }\n\n static async getState(): Promise<SdkState> {\n const state = await NativeMoveSdk.getState();\n return MoveSdk.sdkStateFromNative(state);\n }\n\n static async getTripState(): Promise<TripState> {\n const tripState = await NativeMoveSdk.getTripState();\n return MoveSdk.tripStateFromNative(tripState);\n }\n\n static async getErrors(): Promise<ErrorListType> {\n return await NativeMoveSdk.getErrors();\n }\n\n static async getWarnings(): Promise<WarningListType> {\n return await NativeMoveSdk.getWarnings();\n }\n\n static async initiateAssistanceCall(): Promise<boolean> {\n return await NativeMoveSdk.initiateAssistanceCall();\n }\n\n static setAssistanceMetaData(data: string) {\n NativeMoveSdk.setAssistanceMetaData(data);\n }\n\n static addTripStateListener(tripStateChanged: (state: TripState) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_TRIP_STATE', (event) => tripStateChanged(MoveSdk.tripStateFromNative(event.state)));\n }\n\n static addTripStartListener(tripStartTriggered: (start: Date) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_TRIP_START', (start) => tripStartTriggered(new Date(Number(start))));\n }\n\n static addSdkStateListener(sdkStateChanged: (state: SdkState) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_STATE', (event) => {\n sdkStateChanged(MoveSdk.sdkStateFromNative(event.state));\n });\n }\n\n static addAuthStateListener(authStateChanged: (event: AuthStateEvent) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_AUTH_STATE', (event) => {\n const transformedEvent = {\n ...event,\n state: MoveSdk.authStateFromNative(event.state),\n };\n authStateChanged(transformedEvent);\n });\n }\n\n static addErrorsListener(errorsReceived: (errors: ErrorListType) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_ERRORS', (event) => {\n errorsReceived(event.errors);\n });\n }\n\n static addWarningsListener(warningsReceived: (warnings: WarningListType) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_WARNINGS', (event) => {\n warningsReceived(event.warnings);\n });\n }\n\n static addAppEventListener(appEventReceived: (event: string) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_APP_EVENT', (event) => {\n appEventReceived(event);\n });\n }\n\n static addRemoteConfigChangeListener(configChangeReceived: (config: Array<IssueListService>) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_CONFIG_UPDATE', (config) => {\n configChangeReceived(config);\n });\n }\n\n static version(): string {\n return Platform.OS === 'android' ? NativeMoveSdk.getConstants().version : 'Unknown';\n }\n\n static finishCurrentTrip() {\n NativeMoveSdk.finishCurrentTrip();\n }\n\n static ignoreCurrentTrip() {\n NativeMoveSdk.ignoreCurrentTrip();\n }\n\n static requestMotionPermission() {\n if (Platform.OS === 'ios') {\n NativeMoveSdk.requestMotionPermission();\n } else {\n console.warn('MoveSdk.requestMotionPermission() is iOS only.');\n }\n }\n\n static async shutdown(force: boolean = true): Promise<ShutdownReturnType> {\n return await NativeMoveSdk.shutdown(force);\n }\n\n static async getDeviceQualifier(): Promise<string | null> {\n return NativeMoveSdk.getDeviceQualifier();\n }\n\n static async geocode(latitude: number, longitude: number): Promise<string> {\n return await NativeMoveSdk.geocode(latitude, longitude);\n }\n\n static async isAuthValid(): Promise<boolean> {\n return await NativeMoveSdk.isAuthValid();\n }\n\n // **** PERMISSIONS MODULE START *****\n\n static async canDrawOverlays(): Promise<boolean> {\n return await NativeMoveSdk.canDrawOverlays();\n }\n\n static requestDrawOverlaysPermission() {\n if (Platform.OS === 'android') {\n NativeMoveSdk.requestDrawOverlaysPermission();\n } else {\n console.warn('MoveSdk.requestDrawOverlaysPermission() is Android OS only.');\n }\n }\n\n static async isAppIgnoringBatteryOptimization(): Promise<boolean> {\n return await NativeMoveSdk.isAppIgnoringBatteryOptimization();\n }\n\n static requestAppIgnoringBatteryOptimization() {\n if (Platform.OS === 'android') {\n NativeMoveSdk.requestAppIgnoringBatteryOptimization();\n } else {\n console.warn('MoveSdk.requestAppIgnoringBatteryOptimization() is Android OS only.');\n }\n }\n\n // **** PERMISSIONS MODULE END *****\n\n static startScanningDevices(sdkDevicesDetected: (state: Array<MoveSdkDevice>) => void, filter: MoveSdkDeviceFilter[] = ['paired'], uuid?: string, manufacturerId?: number): ListenerSubscription {\n const subscription = eventEmitter.addListener('MOVE_SDK_DEVICES', (devices) => {\n sdkDevicesDetected(devices);\n });\n const subscriptionRemove = subscription.remove;\n subscription.remove = () => {\n NativeMoveSdk.stopScanningDevices();\n subscriptionRemove();\n };\n\n NativeMoveSdk.startScanningDevices(filter, uuid, manufacturerId ?? -1);\n return subscription;\n }\n\n static async getRegisteredDevices(): Promise<Array<MoveSdkDevice>> {\n return await NativeMoveSdk.getRegisteredDevices();\n }\n\n static async registerDevices(devices: Array<MoveSdkDevice>): Promise<boolean> {\n return await NativeMoveSdk.registerDevices(devices);\n }\n\n static async unregisterDevices(devices: Array<MoveSdkDevice>): Promise<boolean> {\n return await NativeMoveSdk.unregisterDevices(devices);\n }\n\n static requestBluetoothAlwaysUsagePermission(): void {\n NativeMoveSdk.requestBluetoothAlwaysUsagePermission();\n }\n\n static addDeviceDiscoveryListener(onScanResult: (state: Array<MoveScanResult>) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_SCAN_RESULT', (results) => {\n onScanResult(results);\n });\n }\n\n static setTimer(callback: () => void, delay: number = 60000): string {\n if (Platform.OS === 'android') {\n const key = Date.now().toString();\n NativeMoveSdk.setTimer(delay, key, callback);\n return key;\n } else {\n console.warn('MoveSdk.setTimer() is Android OS only.');\n return '';\n }\n }\n\n static cancelTimer(key: string) {\n if (Platform.OS === 'android') {\n NativeMoveSdk.cancelTimer(key);\n } else {\n console.warn('MoveSdk.cancelTimer() is Android OS only.');\n }\n }\n\n static async startTrip(metadata?: { [key: string]: string }): Promise<boolean> {\n return await NativeMoveSdk.startTrip(metadata);\n }\n\n static updateConfig(config: MoveSdkConfig) {\n const { timelineDetectionServices, drivingServices, walkingServices } = config;\n NativeMoveSdk.updateConfig(timelineDetectionServices, drivingServices, walkingServices);\n }\n\n static setTripMetadata(metadata?: {[key: string]: string}) {\n NativeMoveSdk.setTripMetadata(metadata);\n }\n\n static async setLiveLocationTag(tag?: string): Promise<boolean> {\n return await NativeMoveSdk.setLiveLocationTag(tag);\n }\n}\n"]}
@@ -89,12 +89,12 @@ export default class MoveSdk {
89
89
  return await NativeMoveSdk.updateAuth(userId, accessToken, refreshToken, projectId);
90
90
  }
91
91
 
92
- static startAutomaticDetection() {
93
- NativeMoveSdk.startAutomaticDetection();
92
+ static async startAutomaticDetection() {
93
+ return await NativeMoveSdk.startAutomaticDetection();
94
94
  }
95
95
 
96
- static stopAutomaticDetection() {
97
- NativeMoveSdk.stopAutomaticDetection();
96
+ static async stopAutomaticDetection() {
97
+ return await NativeMoveSdk.stopAutomaticDetection();
98
98
  }
99
99
 
100
100
  static forceTripRecognition() {
@@ -328,6 +328,23 @@ export default class MoveSdk {
328
328
  return await NativeMoveSdk.startTrip(metadata);
329
329
  }
330
330
 
331
+ static updateConfig(config) {
332
+ const {
333
+ timelineDetectionServices,
334
+ drivingServices,
335
+ walkingServices
336
+ } = config;
337
+ NativeMoveSdk.updateConfig(timelineDetectionServices, drivingServices, walkingServices);
338
+ }
339
+
340
+ static setTripMetadata(metadata) {
341
+ NativeMoveSdk.setTripMetadata(metadata);
342
+ }
343
+
344
+ static async setLiveLocationTag(tag) {
345
+ return await NativeMoveSdk.setLiveLocationTag(tag);
346
+ }
347
+
331
348
  }
332
349
 
333
350
  _defineProperty(MoveSdk, "READY", 'READY');
@@ -1 +1 @@
1
- {"version":3,"sources":["MoveSdk.ts"],"names":["NativeModules","NativeEventEmitter","Platform","MoveSdk","NativeMoveSdk","eventEmitter","sdkStateFromNative","sdkState","UNINITIALIZED","READY","RUNNING","includes","tripStateFromNative","nativeTripState","UNKNOWN","DRIVING","HALT","IDLE","IGNORED","authStateFromNative","nativeAuthState","AUTH_VALID","AUTH_EXPIRED","AUTH_INVALID","AUTH_UNKNOWN","setup","config","auth","android","options","timelineDetectionServices","drivingServices","walkingServices","userId","projectId","accessToken","refreshToken","platformParams","OS","notifications","tripNotification","recognitionNotification","Error","title","text","channel","id","name","description","allowMockLocations","init","resolveError","updateAuth","startAutomaticDetection","stopAutomaticDetection","forceTripRecognition","duration","keepInForeground","enabled","console","warn","keepActive","synchronizeUserData","getAuthState","authState","getState","state","getTripState","tripState","getErrors","getWarnings","initiateAssistanceCall","setAssistanceMetaData","data","addTripStateListener","tripStateChanged","addListener","event","addTripStartListener","tripStartTriggered","start","Date","Number","addSdkStateListener","sdkStateChanged","addAuthStateListener","authStateChanged","transformedEvent","addErrorsListener","errorsReceived","errors","addWarningsListener","warningsReceived","warnings","addAppEventListener","appEventReceived","addRemoteConfigChangeListener","configChangeReceived","version","getConstants","finishCurrentTrip","ignoreCurrentTrip","requestMotionPermission","shutdown","force","getDeviceQualifier","geocode","latitude","longitude","isAuthValid","canDrawOverlays","requestDrawOverlaysPermission","isAppIgnoringBatteryOptimization","requestAppIgnoringBatteryOptimization","startScanningDevices","sdkDevicesDetected","filter","uuid","manufacturerId","subscription","devices","subscriptionRemove","remove","stopScanningDevices","getRegisteredDevices","registerDevices","unregisterDevices","requestBluetoothAlwaysUsagePermission","addDeviceDiscoveryListener","onScanResult","results","setTimer","callback","delay","key","now","toString","cancelTimer","startTrip","metadata"],"mappings":"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","sourcesContent":["import { NativeModules, NativeEventEmitter, Platform, EmitterSubscription } from 'react-native';\n\nexport type SdkState = 'UNINITIALIZED' | 'READY' | 'RUNNING';\nexport type TripState = 'UNKNOWN' | 'DRIVING' | 'HALT' | 'IDLE' | 'IGNORED';\nexport type AuthState = 'UNKNOWN' | 'VALID' | 'EXPIRED' | 'INVALID';\nexport type DrivingService = 'DISTRACTION_FREE_DRIVING' | 'DRIVING_BEHAVIOUR' | 'DEVICE_DISCOVERY';\nexport type WalkingService = 'WALKING_LOCATION';\nexport type OtherService = 'POINTS_OF_INTEREST';\nexport type TimelineDetectionService = 'DRIVING' | 'CYCLING' | 'WALKING' | 'PLACES' | 'PUBLIC_TRANSPORT' | 'AUTOMATIC_IMPACT_DETECTION' | 'ASSISTANCE_CALL' | 'POINTS_OF_INTEREST';\n\nexport type ErrorReasons =\n | 'BACKGROUND_LOCATION_PERMISSION_MISSING'\n | 'LOCATION_PERMISSION_MISSING'\n | 'MOTION_PERMISSION_MISSING'\n | 'ACTIVITY_PERMISSION_MISSING'\n | 'BATTERY_PERMISSION_MISSING'\n | 'UNAUTHORIZED'\n | 'INTERNET_PERMISSION_MISSING'\n | 'PHONE_PERMISSION_MISSING'\n | 'OVERLAY_PERMISSION_MISSING'\n | 'NOTIFICATION_MISSING'\n | 'ACCELEROMETER_MISSING'\n | 'GOOGLE_PLAY_LOCATION_ACCURACY_MISSING'\n | 'PRECISE_LOCATION_PERMISSION_MISSING';\n\nexport type WarningReasons =\n | 'BACKGROUND_LOCATION_PERMISSION_MISSING'\n | 'MOTION_PERMISSION_MISSING'\n | 'ACTIVITY_PERMISSION_MISSING'\n | 'BATTERY_OPTIMIZATION'\n | 'BLUETOOTH_TURNED_OFF'\n | 'BLUETOOTH_SCAN_PERMISSION_MISSING'\n | 'BLUETOOTH_CONNECT_PERMISSION_MISSING'\n | 'GOOGLE_PLAY_LOCATION_ACCURACY_MISSING'\n | 'NOTIFICATION_PERMISSION_MISSING'\n | 'FINE_LOCATION_PERMISSION_MISSING'\n | 'BLUETOOTH_PERMISSION_MISSING'\n | 'GPS_OFF'\n | 'OFFLINE';\n\nexport type IssueListService = TimelineDetectionService | DrivingService | WalkingService;\n\nexport type IssueListItem<ReasonsType> = {\n reasons: Array<ReasonsType>;\n service?: IssueListService;\n};\n\nexport type ErrorListType = Array<IssueListItem<ErrorReasons>>;\n\nexport type WarningListType = Array<IssueListItem<WarningReasons>>;\n\nexport type ShutdownReturnType = 'NETWORK_ERROR' | 'SUCCESS' | 'UNINITIALIZED';\n\nexport type MoveSdkConfig = {\n timelineDetectionServices: Array<TimelineDetectionService>;\n drivingServices: Array<DrivingService>;\n walkingServices: Array<WalkingService>;\n};\n\nexport type MoveSdkDeviceDiscovery = {\n startDelay?: number;\n duration?: number;\n interval?: number;\n stopScanOnFirstDiscovered?: boolean;\n};\n\nexport type MoveSdkOptions = {\n motionPermissionMandatory?: boolean;\n backgroundLocationPermissionMandatory?: boolean;\n overlayPermissionMandatory?: boolean;\n useBackendConfig?: boolean;\n deviceDiscovery?: MoveSdkDeviceDiscovery;\n};\n\nexport type MoveSdkAuth = {\n userId: string;\n accessToken: string;\n refreshToken: string;\n projectId: number;\n};\n\nexport type NotificationConfig = {\n title: string;\n text: string;\n channel: { id: string; name: string; description: string };\n};\n\nexport type MoveSdkAndroidConfig = {\n notifications: {\n recognitionNotification: NotificationConfig;\n tripNotification: NotificationConfig;\n };\n};\n\nexport type ListenerSubscription = EmitterSubscription;\n\nexport type AuthStateEvent = {\n state: AuthState;\n accessToken?: string;\n refreshToken?: string;\n};\n\nexport type MoveSdkDeviceFilter = 'beacon' | 'paired';\n\nexport type MoveSdkDevice = {\n name: string;\n data: string;\n id: string;\n};\n\nexport type MoveScanResult = {\n isDiscovered: boolean;\n device: MoveSdkDevice;\n name: string;\n};\n\nconst { MoveSdk: NativeMoveSdk } = NativeModules;\nconst eventEmitter = new NativeEventEmitter(NativeMoveSdk);\n\nexport default class MoveSdk {\n static READY: SdkState = 'READY';\n static RUNNING: SdkState = 'RUNNING';\n static UNINITIALIZED: SdkState = 'UNINITIALIZED';\n\n static AUTH_EXPIRED: AuthState = 'EXPIRED';\n static AUTH_VALID: AuthState = 'VALID';\n static AUTH_UNKNOWN: AuthState = 'UNKNOWN';\n static AUTH_INVALID: AuthState = 'INVALID';\n\n static UNKNOWN: TripState = 'UNKNOWN';\n static DRIVING: TripState = 'DRIVING';\n static HALT: TripState = 'HALT';\n static IDLE: TripState = 'IDLE';\n static IGNORED: TripState = 'IGNORED';\n\n static sdkStateFromNative(sdkState: SdkState): SdkState {\n if ([MoveSdk.UNINITIALIZED, MoveSdk.READY, MoveSdk.RUNNING, MoveSdk.UNINITIALIZED].includes(sdkState)) {\n return sdkState;\n }\n\n return MoveSdk.UNINITIALIZED;\n }\n\n static tripStateFromNative(nativeTripState: TripState): TripState {\n if ([MoveSdk.UNKNOWN, MoveSdk.DRIVING, MoveSdk.HALT, MoveSdk.IDLE, MoveSdk.IGNORED].includes(nativeTripState)) {\n return nativeTripState;\n }\n\n return MoveSdk.UNKNOWN;\n }\n\n static authStateFromNative(nativeAuthState: AuthState): AuthState {\n if ([MoveSdk.AUTH_VALID, MoveSdk.AUTH_EXPIRED, MoveSdk.AUTH_INVALID].includes(nativeAuthState)) {\n return nativeAuthState;\n }\n\n return MoveSdk.AUTH_UNKNOWN;\n }\n\n static async setup(config: MoveSdkConfig, auth: MoveSdkAuth, android: MoveSdkAndroidConfig, options?: MoveSdkOptions): Promise<void> {\n const { timelineDetectionServices, drivingServices, walkingServices } = config;\n\n const { userId, projectId, accessToken, refreshToken } = auth;\n\n let platformParams: Array<string | boolean> = [];\n if (Platform.OS === 'android') {\n const { notifications } = android;\n\n const { tripNotification, recognitionNotification } = notifications;\n\n if (!tripNotification || !recognitionNotification) {\n throw new Error('MOVE SDK needs notification configuration for Android');\n }\n\n platformParams = [\n recognitionNotification.title,\n recognitionNotification.text,\n recognitionNotification.channel.id,\n recognitionNotification.channel.name,\n recognitionNotification.channel.description,\n tripNotification.title,\n tripNotification.text,\n tripNotification.channel.id,\n tripNotification.channel.name,\n tripNotification.channel.description,\n ];\n }\n\n return await NativeMoveSdk.setup(\n userId,\n accessToken,\n refreshToken,\n projectId,\n // Config\n timelineDetectionServices,\n drivingServices,\n walkingServices,\n options,\n // Platform config\n ...platformParams\n );\n }\n\n static allowMockLocations(allowMockLocations: boolean) {\n NativeMoveSdk.allowMockLocations(allowMockLocations);\n }\n\n /* Deprecated */\n static init() {\n NativeMoveSdk.init();\n }\n\n static resolveError() {\n NativeMoveSdk.resolveError();\n }\n\n static async updateAuth(auth: MoveSdkAuth): Promise<void> {\n const { userId, projectId, accessToken, refreshToken } = auth;\n return await NativeMoveSdk.updateAuth(userId, accessToken, refreshToken, projectId);\n }\n\n static startAutomaticDetection() {\n NativeMoveSdk.startAutomaticDetection();\n }\n\n static stopAutomaticDetection() {\n NativeMoveSdk.stopAutomaticDetection();\n }\n\n static forceTripRecognition(duration: number = 60000) {\n NativeMoveSdk.forceTripRecognition(duration);\n }\n\n static keepInForeground(enabled: boolean) {\n if (Platform.OS === 'android') {\n NativeMoveSdk.keepInForeground(enabled);\n } else {\n console.warn('MoveSdk.keepInForeground() is Android OS only.');\n }\n }\n\n static keepActive(enabled: boolean) {\n if (Platform.OS === 'android') {\n NativeMoveSdk.keepActive(enabled);\n } else {\n console.warn('MoveSdk.keepActive() is Android OS only.');\n }\n }\n\n static async synchronizeUserData(): Promise<boolean> {\n return await NativeMoveSdk.synchronizeUserData();\n }\n\n static async getAuthState(): Promise<AuthState> {\n const authState = await NativeMoveSdk.getAuthState();\n return MoveSdk.authStateFromNative(authState);\n }\n\n static async getState(): Promise<SdkState> {\n const state = await NativeMoveSdk.getState();\n return MoveSdk.sdkStateFromNative(state);\n }\n\n static async getTripState(): Promise<TripState> {\n const tripState = await NativeMoveSdk.getTripState();\n return MoveSdk.tripStateFromNative(tripState);\n }\n\n static async getErrors(): Promise<ErrorListType> {\n return await NativeMoveSdk.getErrors();\n }\n\n static async getWarnings(): Promise<WarningListType> {\n return await NativeMoveSdk.getWarnings();\n }\n\n static async initiateAssistanceCall(): Promise<boolean> {\n return await NativeMoveSdk.initiateAssistanceCall();\n }\n\n static setAssistanceMetaData(data: string) {\n NativeMoveSdk.setAssistanceMetaData(data);\n }\n\n static addTripStateListener(tripStateChanged: (state: TripState) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_TRIP_STATE', (event) => tripStateChanged(MoveSdk.tripStateFromNative(event.state)));\n }\n\n static addTripStartListener(tripStartTriggered: (start: Date) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_TRIP_START', (start) => tripStartTriggered(new Date(Number(start))));\n }\n\n static addSdkStateListener(sdkStateChanged: (state: SdkState) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_STATE', (event) => {\n sdkStateChanged(MoveSdk.sdkStateFromNative(event.state));\n });\n }\n\n static addAuthStateListener(authStateChanged: (event: AuthStateEvent) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_AUTH_STATE', (event) => {\n const transformedEvent = {\n ...event,\n state: MoveSdk.authStateFromNative(event.state),\n };\n authStateChanged(transformedEvent);\n });\n }\n\n static addErrorsListener(errorsReceived: (errors: ErrorListType) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_ERRORS', (event) => {\n errorsReceived(event.errors);\n });\n }\n\n static addWarningsListener(warningsReceived: (warnings: WarningListType) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_WARNINGS', (event) => {\n warningsReceived(event.warnings);\n });\n }\n\n static addAppEventListener(appEventReceived: (event: string) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_APP_EVENT', (event) => {\n appEventReceived(event);\n });\n }\n\n static addRemoteConfigChangeListener(configChangeReceived: (config: Array<IssueListService>) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_CONFIG_UPDATE', (config) => {\n configChangeReceived(config);\n });\n }\n\n static version(): string {\n return Platform.OS === 'android' ? NativeMoveSdk.getConstants().version : 'Unknown';\n }\n\n static finishCurrentTrip() {\n NativeMoveSdk.finishCurrentTrip();\n }\n\n static ignoreCurrentTrip() {\n NativeMoveSdk.ignoreCurrentTrip();\n }\n\n static requestMotionPermission() {\n if (Platform.OS === 'ios') {\n NativeMoveSdk.requestMotionPermission();\n } else {\n console.warn('MoveSdk.requestMotionPermission() is iOS only.');\n }\n }\n\n static async shutdown(force: boolean = true): Promise<ShutdownReturnType> {\n return await NativeMoveSdk.shutdown(force);\n }\n\n static async getDeviceQualifier(): Promise<string | null> {\n return NativeMoveSdk.getDeviceQualifier();\n }\n\n static async geocode(latitude: number, longitude: number): Promise<string> {\n return await NativeMoveSdk.geocode(latitude, longitude);\n }\n\n static async isAuthValid(): Promise<boolean> {\n return await NativeMoveSdk.isAuthValid();\n }\n\n // **** PERMISSIONS MODULE START *****\n\n static async canDrawOverlays(): Promise<boolean> {\n return await NativeMoveSdk.canDrawOverlays();\n }\n\n static requestDrawOverlaysPermission() {\n if (Platform.OS === 'android') {\n NativeMoveSdk.requestDrawOverlaysPermission();\n } else {\n console.warn('MoveSdk.requestDrawOverlaysPermission() is Android OS only.');\n }\n }\n\n static async isAppIgnoringBatteryOptimization(): Promise<boolean> {\n return await NativeMoveSdk.isAppIgnoringBatteryOptimization();\n }\n\n static requestAppIgnoringBatteryOptimization() {\n if (Platform.OS === 'android') {\n NativeMoveSdk.requestAppIgnoringBatteryOptimization();\n } else {\n console.warn('MoveSdk.requestAppIgnoringBatteryOptimization() is Android OS only.');\n }\n }\n\n // **** PERMISSIONS MODULE END *****\n\n static startScanningDevices(sdkDevicesDetected: (state: Array<MoveSdkDevice>) => void, filter: MoveSdkDeviceFilter[] = ['paired'], uuid?: string, manufacturerId?: number): ListenerSubscription {\n const subscription = eventEmitter.addListener('MOVE_SDK_DEVICES', (devices) => {\n sdkDevicesDetected(devices);\n });\n const subscriptionRemove = subscription.remove;\n subscription.remove = () => {\n NativeMoveSdk.stopScanningDevices();\n subscriptionRemove();\n };\n\n NativeMoveSdk.startScanningDevices(filter, uuid, manufacturerId ?? -1);\n return subscription;\n }\n\n static async getRegisteredDevices(): Promise<Array<MoveSdkDevice>> {\n return await NativeMoveSdk.getRegisteredDevices();\n }\n\n static async registerDevices(devices: Array<MoveSdkDevice>): Promise<boolean> {\n return await NativeMoveSdk.registerDevices(devices);\n }\n\n static async unregisterDevices(devices: Array<MoveSdkDevice>): Promise<boolean> {\n return await NativeMoveSdk.unregisterDevices(devices);\n }\n\n static requestBluetoothAlwaysUsagePermission(): void {\n NativeMoveSdk.requestBluetoothAlwaysUsagePermission();\n }\n\n static addDeviceDiscoveryListener(onScanResult: (state: Array<MoveScanResult>) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_SCAN_RESULT', (results) => {\n onScanResult(results);\n });\n }\n\n static setTimer(callback: () => void, delay: number = 60000): string {\n if (Platform.OS === 'android') {\n const key = Date.now().toString();\n NativeMoveSdk.setTimer(delay, key, callback);\n return key;\n } else {\n console.warn('MoveSdk.setTimer() is Android OS only.');\n return '';\n }\n }\n\n static cancelTimer(key: string) {\n if (Platform.OS === 'android') {\n NativeMoveSdk.cancelTimer(key);\n } else {\n console.warn('MoveSdk.cancelTimer() is Android OS only.');\n }\n }\n\n static async startTrip(metadata?: {[key: string]: string}): Promise<boolean> {\n return await NativeMoveSdk.startTrip(metadata);\n }\n}\n"]}
1
+ {"version":3,"sources":["MoveSdk.ts"],"names":["NativeModules","NativeEventEmitter","Platform","MoveSdk","NativeMoveSdk","eventEmitter","sdkStateFromNative","sdkState","UNINITIALIZED","READY","RUNNING","includes","tripStateFromNative","nativeTripState","UNKNOWN","DRIVING","HALT","IDLE","IGNORED","authStateFromNative","nativeAuthState","AUTH_VALID","AUTH_EXPIRED","AUTH_INVALID","AUTH_UNKNOWN","setup","config","auth","android","options","timelineDetectionServices","drivingServices","walkingServices","userId","projectId","accessToken","refreshToken","platformParams","OS","notifications","tripNotification","recognitionNotification","Error","title","text","channel","id","name","description","allowMockLocations","init","resolveError","updateAuth","startAutomaticDetection","stopAutomaticDetection","forceTripRecognition","duration","keepInForeground","enabled","console","warn","keepActive","synchronizeUserData","getAuthState","authState","getState","state","getTripState","tripState","getErrors","getWarnings","initiateAssistanceCall","setAssistanceMetaData","data","addTripStateListener","tripStateChanged","addListener","event","addTripStartListener","tripStartTriggered","start","Date","Number","addSdkStateListener","sdkStateChanged","addAuthStateListener","authStateChanged","transformedEvent","addErrorsListener","errorsReceived","errors","addWarningsListener","warningsReceived","warnings","addAppEventListener","appEventReceived","addRemoteConfigChangeListener","configChangeReceived","version","getConstants","finishCurrentTrip","ignoreCurrentTrip","requestMotionPermission","shutdown","force","getDeviceQualifier","geocode","latitude","longitude","isAuthValid","canDrawOverlays","requestDrawOverlaysPermission","isAppIgnoringBatteryOptimization","requestAppIgnoringBatteryOptimization","startScanningDevices","sdkDevicesDetected","filter","uuid","manufacturerId","subscription","devices","subscriptionRemove","remove","stopScanningDevices","getRegisteredDevices","registerDevices","unregisterDevices","requestBluetoothAlwaysUsagePermission","addDeviceDiscoveryListener","onScanResult","results","setTimer","callback","delay","key","now","toString","cancelTimer","startTrip","metadata","updateConfig","setTripMetadata","setLiveLocationTag","tag"],"mappings":"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","sourcesContent":["import { NativeModules, NativeEventEmitter, Platform, EmitterSubscription } from 'react-native';\n\nexport type SdkState = 'UNINITIALIZED' | 'READY' | 'RUNNING';\nexport type TripState = 'UNKNOWN' | 'DRIVING' | 'HALT' | 'IDLE' | 'IGNORED';\nexport type AuthState = 'UNKNOWN' | 'VALID' | 'EXPIRED' | 'INVALID';\nexport type DrivingService = 'DISTRACTION_FREE_DRIVING' | 'DRIVING_BEHAVIOUR' | 'DEVICE_DISCOVERY';\nexport type WalkingService = 'WALKING_LOCATION';\nexport type OtherService = 'POINTS_OF_INTEREST';\nexport type TimelineDetectionService = 'DRIVING' | 'CYCLING' | 'WALKING' | 'PLACES' | 'PUBLIC_TRANSPORT' | 'AUTOMATIC_IMPACT_DETECTION' | 'ASSISTANCE_CALL' | 'POINTS_OF_INTEREST';\n\nexport type ErrorReasons =\n | 'BACKGROUND_LOCATION_PERMISSION_MISSING'\n | 'LOCATION_PERMISSION_MISSING'\n | 'MOTION_PERMISSION_MISSING'\n | 'ACTIVITY_PERMISSION_MISSING'\n | 'BATTERY_PERMISSION_MISSING'\n | 'UNAUTHORIZED'\n | 'INTERNET_PERMISSION_MISSING'\n | 'PHONE_PERMISSION_MISSING'\n | 'OVERLAY_PERMISSION_MISSING'\n | 'NOTIFICATION_MISSING'\n | 'ACCELEROMETER_MISSING'\n | 'GOOGLE_PLAY_LOCATION_ACCURACY_MISSING'\n | 'PRECISE_LOCATION_PERMISSION_MISSING';\n\nexport type WarningReasons =\n | 'BACKGROUND_LOCATION_PERMISSION_MISSING'\n | 'MOTION_PERMISSION_MISSING'\n | 'ACTIVITY_PERMISSION_MISSING'\n | 'BATTERY_OPTIMIZATION'\n | 'BLUETOOTH_TURNED_OFF'\n | 'BLUETOOTH_SCAN_PERMISSION_MISSING'\n | 'BLUETOOTH_CONNECT_PERMISSION_MISSING'\n | 'GOOGLE_PLAY_LOCATION_ACCURACY_MISSING'\n | 'NOTIFICATION_PERMISSION_MISSING'\n | 'FINE_LOCATION_PERMISSION_MISSING'\n | 'BLUETOOTH_PERMISSION_MISSING'\n | 'GPS_OFF'\n | 'OFFLINE'\n | 'GO_EDITION'\n | 'ROOTED'\n | 'NO_SIM'\n | 'BACKGROUND_RESTRICTED'\n | 'MOCK_PROVIDER_LOCATION'\n | 'MOCK_PROVIDER'\n | 'LOCATION_MODE'\n | 'PLAY_SERVICES_MISSING'\n | 'LOCATION_POWER_MODE(0)'\n | 'LOCATION_POWER_MODE(1)'\n | 'LOCATION_POWER_MODE(2)'\n | 'LOCATION_POWER_MODE(3)'\n | 'LOCATION_POWER_MODE(4)';\n\nexport type IssueListService = TimelineDetectionService | DrivingService | WalkingService;\n\nexport type IssueListItem<ReasonsType> = {\n reasons: Array<ReasonsType>;\n service?: IssueListService;\n};\n\nexport type ErrorListType = Array<IssueListItem<ErrorReasons>>;\n\nexport type WarningListType = Array<IssueListItem<WarningReasons>>;\n\nexport type ShutdownReturnType = 'NETWORK_ERROR' | 'SUCCESS' | 'UNINITIALIZED';\n\nexport type MoveSdkConfig = {\n timelineDetectionServices: Array<TimelineDetectionService>;\n drivingServices: Array<DrivingService>;\n walkingServices: Array<WalkingService>;\n};\n\nexport type MoveSdkDeviceDiscovery = {\n startDelay?: number;\n duration?: number;\n interval?: number;\n stopScanOnFirstDiscovered?: boolean;\n};\n\nexport type MoveSdkOptions = {\n motionPermissionMandatory?: boolean;\n backgroundLocationPermissionMandatory?: boolean;\n overlayPermissionMandatory?: boolean;\n useBackendConfig?: boolean;\n deviceDiscovery?: MoveSdkDeviceDiscovery;\n};\n\nexport type MoveSdkAuth = {\n userId: string;\n accessToken: string;\n refreshToken: string;\n projectId: number;\n};\n\nexport type NotificationConfig = {\n title: string;\n text: string;\n channel: { id: string; name: string; description: string };\n};\n\nexport type MoveSdkAndroidConfig = {\n notifications: {\n recognitionNotification: NotificationConfig;\n tripNotification: NotificationConfig;\n };\n};\n\nexport type ListenerSubscription = EmitterSubscription;\n\nexport type AuthStateEvent = {\n state: AuthState;\n accessToken?: string;\n refreshToken?: string;\n};\n\nexport type MoveSdkDeviceFilter = 'beacon' | 'paired';\n\nexport type MoveSdkDevice = {\n name: string;\n data: string;\n id: string;\n};\n\nexport type MoveScanResult = {\n isDiscovered: boolean;\n device: MoveSdkDevice;\n name: string;\n};\n\nconst { MoveSdk: NativeMoveSdk } = NativeModules;\nconst eventEmitter = new NativeEventEmitter(NativeMoveSdk);\n\nexport default class MoveSdk {\n static READY: SdkState = 'READY';\n static RUNNING: SdkState = 'RUNNING';\n static UNINITIALIZED: SdkState = 'UNINITIALIZED';\n\n static AUTH_EXPIRED: AuthState = 'EXPIRED';\n static AUTH_VALID: AuthState = 'VALID';\n static AUTH_UNKNOWN: AuthState = 'UNKNOWN';\n static AUTH_INVALID: AuthState = 'INVALID';\n\n static UNKNOWN: TripState = 'UNKNOWN';\n static DRIVING: TripState = 'DRIVING';\n static HALT: TripState = 'HALT';\n static IDLE: TripState = 'IDLE';\n static IGNORED: TripState = 'IGNORED';\n\n static sdkStateFromNative(sdkState: SdkState): SdkState {\n if ([MoveSdk.UNINITIALIZED, MoveSdk.READY, MoveSdk.RUNNING, MoveSdk.UNINITIALIZED].includes(sdkState)) {\n return sdkState;\n }\n\n return MoveSdk.UNINITIALIZED;\n }\n\n static tripStateFromNative(nativeTripState: TripState): TripState {\n if ([MoveSdk.UNKNOWN, MoveSdk.DRIVING, MoveSdk.HALT, MoveSdk.IDLE, MoveSdk.IGNORED].includes(nativeTripState)) {\n return nativeTripState;\n }\n\n return MoveSdk.UNKNOWN;\n }\n\n static authStateFromNative(nativeAuthState: AuthState): AuthState {\n if ([MoveSdk.AUTH_VALID, MoveSdk.AUTH_EXPIRED, MoveSdk.AUTH_INVALID].includes(nativeAuthState)) {\n return nativeAuthState;\n }\n\n return MoveSdk.AUTH_UNKNOWN;\n }\n\n static async setup(config: MoveSdkConfig, auth: MoveSdkAuth, android: MoveSdkAndroidConfig, options?: MoveSdkOptions): Promise<void> {\n const { timelineDetectionServices, drivingServices, walkingServices } = config;\n\n const { userId, projectId, accessToken, refreshToken } = auth;\n\n let platformParams: Array<string | boolean> = [];\n if (Platform.OS === 'android') {\n const { notifications } = android;\n\n const { tripNotification, recognitionNotification } = notifications;\n\n if (!tripNotification || !recognitionNotification) {\n throw new Error('MOVE SDK needs notification configuration for Android');\n }\n\n platformParams = [\n recognitionNotification.title,\n recognitionNotification.text,\n recognitionNotification.channel.id,\n recognitionNotification.channel.name,\n recognitionNotification.channel.description,\n tripNotification.title,\n tripNotification.text,\n tripNotification.channel.id,\n tripNotification.channel.name,\n tripNotification.channel.description,\n ];\n }\n\n return await NativeMoveSdk.setup(\n userId,\n accessToken,\n refreshToken,\n projectId,\n // Config\n timelineDetectionServices,\n drivingServices,\n walkingServices,\n options,\n // Platform config\n ...platformParams\n );\n }\n\n static allowMockLocations(allowMockLocations: boolean) {\n NativeMoveSdk.allowMockLocations(allowMockLocations);\n }\n\n /* Deprecated */\n static init() {\n NativeMoveSdk.init();\n }\n\n static resolveError() {\n NativeMoveSdk.resolveError();\n }\n\n static async updateAuth(auth: MoveSdkAuth): Promise<void> {\n const { userId, projectId, accessToken, refreshToken } = auth;\n return await NativeMoveSdk.updateAuth(userId, accessToken, refreshToken, projectId);\n }\n\n static async startAutomaticDetection(): Promise<boolean> {\n return await NativeMoveSdk.startAutomaticDetection();\n }\n\n static async stopAutomaticDetection(): Promise<boolean> {\n return await NativeMoveSdk.stopAutomaticDetection();\n }\n\n static forceTripRecognition(duration: number = 60000) {\n NativeMoveSdk.forceTripRecognition(duration);\n }\n\n static keepInForeground(enabled: boolean) {\n if (Platform.OS === 'android') {\n NativeMoveSdk.keepInForeground(enabled);\n } else {\n console.warn('MoveSdk.keepInForeground() is Android OS only.');\n }\n }\n\n static keepActive(enabled: boolean) {\n if (Platform.OS === 'android') {\n NativeMoveSdk.keepActive(enabled);\n } else {\n console.warn('MoveSdk.keepActive() is Android OS only.');\n }\n }\n\n static async synchronizeUserData(): Promise<boolean> {\n return await NativeMoveSdk.synchronizeUserData();\n }\n\n static async getAuthState(): Promise<AuthState> {\n const authState = await NativeMoveSdk.getAuthState();\n return MoveSdk.authStateFromNative(authState);\n }\n\n static async getState(): Promise<SdkState> {\n const state = await NativeMoveSdk.getState();\n return MoveSdk.sdkStateFromNative(state);\n }\n\n static async getTripState(): Promise<TripState> {\n const tripState = await NativeMoveSdk.getTripState();\n return MoveSdk.tripStateFromNative(tripState);\n }\n\n static async getErrors(): Promise<ErrorListType> {\n return await NativeMoveSdk.getErrors();\n }\n\n static async getWarnings(): Promise<WarningListType> {\n return await NativeMoveSdk.getWarnings();\n }\n\n static async initiateAssistanceCall(): Promise<boolean> {\n return await NativeMoveSdk.initiateAssistanceCall();\n }\n\n static setAssistanceMetaData(data: string) {\n NativeMoveSdk.setAssistanceMetaData(data);\n }\n\n static addTripStateListener(tripStateChanged: (state: TripState) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_TRIP_STATE', (event) => tripStateChanged(MoveSdk.tripStateFromNative(event.state)));\n }\n\n static addTripStartListener(tripStartTriggered: (start: Date) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_TRIP_START', (start) => tripStartTriggered(new Date(Number(start))));\n }\n\n static addSdkStateListener(sdkStateChanged: (state: SdkState) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_STATE', (event) => {\n sdkStateChanged(MoveSdk.sdkStateFromNative(event.state));\n });\n }\n\n static addAuthStateListener(authStateChanged: (event: AuthStateEvent) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_AUTH_STATE', (event) => {\n const transformedEvent = {\n ...event,\n state: MoveSdk.authStateFromNative(event.state),\n };\n authStateChanged(transformedEvent);\n });\n }\n\n static addErrorsListener(errorsReceived: (errors: ErrorListType) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_ERRORS', (event) => {\n errorsReceived(event.errors);\n });\n }\n\n static addWarningsListener(warningsReceived: (warnings: WarningListType) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_WARNINGS', (event) => {\n warningsReceived(event.warnings);\n });\n }\n\n static addAppEventListener(appEventReceived: (event: string) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_APP_EVENT', (event) => {\n appEventReceived(event);\n });\n }\n\n static addRemoteConfigChangeListener(configChangeReceived: (config: Array<IssueListService>) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_CONFIG_UPDATE', (config) => {\n configChangeReceived(config);\n });\n }\n\n static version(): string {\n return Platform.OS === 'android' ? NativeMoveSdk.getConstants().version : 'Unknown';\n }\n\n static finishCurrentTrip() {\n NativeMoveSdk.finishCurrentTrip();\n }\n\n static ignoreCurrentTrip() {\n NativeMoveSdk.ignoreCurrentTrip();\n }\n\n static requestMotionPermission() {\n if (Platform.OS === 'ios') {\n NativeMoveSdk.requestMotionPermission();\n } else {\n console.warn('MoveSdk.requestMotionPermission() is iOS only.');\n }\n }\n\n static async shutdown(force: boolean = true): Promise<ShutdownReturnType> {\n return await NativeMoveSdk.shutdown(force);\n }\n\n static async getDeviceQualifier(): Promise<string | null> {\n return NativeMoveSdk.getDeviceQualifier();\n }\n\n static async geocode(latitude: number, longitude: number): Promise<string> {\n return await NativeMoveSdk.geocode(latitude, longitude);\n }\n\n static async isAuthValid(): Promise<boolean> {\n return await NativeMoveSdk.isAuthValid();\n }\n\n // **** PERMISSIONS MODULE START *****\n\n static async canDrawOverlays(): Promise<boolean> {\n return await NativeMoveSdk.canDrawOverlays();\n }\n\n static requestDrawOverlaysPermission() {\n if (Platform.OS === 'android') {\n NativeMoveSdk.requestDrawOverlaysPermission();\n } else {\n console.warn('MoveSdk.requestDrawOverlaysPermission() is Android OS only.');\n }\n }\n\n static async isAppIgnoringBatteryOptimization(): Promise<boolean> {\n return await NativeMoveSdk.isAppIgnoringBatteryOptimization();\n }\n\n static requestAppIgnoringBatteryOptimization() {\n if (Platform.OS === 'android') {\n NativeMoveSdk.requestAppIgnoringBatteryOptimization();\n } else {\n console.warn('MoveSdk.requestAppIgnoringBatteryOptimization() is Android OS only.');\n }\n }\n\n // **** PERMISSIONS MODULE END *****\n\n static startScanningDevices(sdkDevicesDetected: (state: Array<MoveSdkDevice>) => void, filter: MoveSdkDeviceFilter[] = ['paired'], uuid?: string, manufacturerId?: number): ListenerSubscription {\n const subscription = eventEmitter.addListener('MOVE_SDK_DEVICES', (devices) => {\n sdkDevicesDetected(devices);\n });\n const subscriptionRemove = subscription.remove;\n subscription.remove = () => {\n NativeMoveSdk.stopScanningDevices();\n subscriptionRemove();\n };\n\n NativeMoveSdk.startScanningDevices(filter, uuid, manufacturerId ?? -1);\n return subscription;\n }\n\n static async getRegisteredDevices(): Promise<Array<MoveSdkDevice>> {\n return await NativeMoveSdk.getRegisteredDevices();\n }\n\n static async registerDevices(devices: Array<MoveSdkDevice>): Promise<boolean> {\n return await NativeMoveSdk.registerDevices(devices);\n }\n\n static async unregisterDevices(devices: Array<MoveSdkDevice>): Promise<boolean> {\n return await NativeMoveSdk.unregisterDevices(devices);\n }\n\n static requestBluetoothAlwaysUsagePermission(): void {\n NativeMoveSdk.requestBluetoothAlwaysUsagePermission();\n }\n\n static addDeviceDiscoveryListener(onScanResult: (state: Array<MoveScanResult>) => void): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_SCAN_RESULT', (results) => {\n onScanResult(results);\n });\n }\n\n static setTimer(callback: () => void, delay: number = 60000): string {\n if (Platform.OS === 'android') {\n const key = Date.now().toString();\n NativeMoveSdk.setTimer(delay, key, callback);\n return key;\n } else {\n console.warn('MoveSdk.setTimer() is Android OS only.');\n return '';\n }\n }\n\n static cancelTimer(key: string) {\n if (Platform.OS === 'android') {\n NativeMoveSdk.cancelTimer(key);\n } else {\n console.warn('MoveSdk.cancelTimer() is Android OS only.');\n }\n }\n\n static async startTrip(metadata?: { [key: string]: string }): Promise<boolean> {\n return await NativeMoveSdk.startTrip(metadata);\n }\n\n static updateConfig(config: MoveSdkConfig) {\n const { timelineDetectionServices, drivingServices, walkingServices } = config;\n NativeMoveSdk.updateConfig(timelineDetectionServices, drivingServices, walkingServices);\n }\n\n static setTripMetadata(metadata?: {[key: string]: string}) {\n NativeMoveSdk.setTripMetadata(metadata);\n }\n\n static async setLiveLocationTag(tag?: string): Promise<boolean> {\n return await NativeMoveSdk.setLiveLocationTag(tag);\n }\n}\n"]}
@@ -7,7 +7,7 @@ export type WalkingService = 'WALKING_LOCATION';
7
7
  export type OtherService = 'POINTS_OF_INTEREST';
8
8
  export type TimelineDetectionService = 'DRIVING' | 'CYCLING' | 'WALKING' | 'PLACES' | 'PUBLIC_TRANSPORT' | 'AUTOMATIC_IMPACT_DETECTION' | 'ASSISTANCE_CALL' | 'POINTS_OF_INTEREST';
9
9
  export type ErrorReasons = 'BACKGROUND_LOCATION_PERMISSION_MISSING' | 'LOCATION_PERMISSION_MISSING' | 'MOTION_PERMISSION_MISSING' | 'ACTIVITY_PERMISSION_MISSING' | 'BATTERY_PERMISSION_MISSING' | 'UNAUTHORIZED' | 'INTERNET_PERMISSION_MISSING' | 'PHONE_PERMISSION_MISSING' | 'OVERLAY_PERMISSION_MISSING' | 'NOTIFICATION_MISSING' | 'ACCELEROMETER_MISSING' | 'GOOGLE_PLAY_LOCATION_ACCURACY_MISSING' | 'PRECISE_LOCATION_PERMISSION_MISSING';
10
- export type WarningReasons = 'BACKGROUND_LOCATION_PERMISSION_MISSING' | 'MOTION_PERMISSION_MISSING' | 'ACTIVITY_PERMISSION_MISSING' | 'BATTERY_OPTIMIZATION' | 'BLUETOOTH_TURNED_OFF' | 'BLUETOOTH_SCAN_PERMISSION_MISSING' | 'BLUETOOTH_CONNECT_PERMISSION_MISSING' | 'GOOGLE_PLAY_LOCATION_ACCURACY_MISSING' | 'NOTIFICATION_PERMISSION_MISSING' | 'FINE_LOCATION_PERMISSION_MISSING' | 'BLUETOOTH_PERMISSION_MISSING' | 'GPS_OFF' | 'OFFLINE';
10
+ export type WarningReasons = 'BACKGROUND_LOCATION_PERMISSION_MISSING' | 'MOTION_PERMISSION_MISSING' | 'ACTIVITY_PERMISSION_MISSING' | 'BATTERY_OPTIMIZATION' | 'BLUETOOTH_TURNED_OFF' | 'BLUETOOTH_SCAN_PERMISSION_MISSING' | 'BLUETOOTH_CONNECT_PERMISSION_MISSING' | 'GOOGLE_PLAY_LOCATION_ACCURACY_MISSING' | 'NOTIFICATION_PERMISSION_MISSING' | 'FINE_LOCATION_PERMISSION_MISSING' | 'BLUETOOTH_PERMISSION_MISSING' | 'GPS_OFF' | 'OFFLINE' | 'GO_EDITION' | 'ROOTED' | 'NO_SIM' | 'BACKGROUND_RESTRICTED' | 'MOCK_PROVIDER_LOCATION' | 'MOCK_PROVIDER' | 'LOCATION_MODE' | 'PLAY_SERVICES_MISSING' | 'LOCATION_POWER_MODE(0)' | 'LOCATION_POWER_MODE(1)' | 'LOCATION_POWER_MODE(2)' | 'LOCATION_POWER_MODE(3)' | 'LOCATION_POWER_MODE(4)';
11
11
  export type IssueListService = TimelineDetectionService | DrivingService | WalkingService;
12
12
  export type IssueListItem<ReasonsType> = {
13
13
  reasons: Array<ReasonsType>;
@@ -93,8 +93,8 @@ export default class MoveSdk {
93
93
  static init(): void;
94
94
  static resolveError(): void;
95
95
  static updateAuth(auth: MoveSdkAuth): Promise<void>;
96
- static startAutomaticDetection(): void;
97
- static stopAutomaticDetection(): void;
96
+ static startAutomaticDetection(): Promise<boolean>;
97
+ static stopAutomaticDetection(): Promise<boolean>;
98
98
  static forceTripRecognition(duration?: number): void;
99
99
  static keepInForeground(enabled: boolean): void;
100
100
  static keepActive(enabled: boolean): void;
@@ -137,4 +137,9 @@ export default class MoveSdk {
137
137
  static startTrip(metadata?: {
138
138
  [key: string]: string;
139
139
  }): Promise<boolean>;
140
+ static updateConfig(config: MoveSdkConfig): void;
141
+ static setTripMetadata(metadata?: {
142
+ [key: string]: string;
143
+ }): void;
144
+ static setLiveLocationTag(tag?: string): Promise<boolean>;
140
145
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-move-sdk",
3
- "version": "2.7.1-alpha.3",
3
+ "version": "2.8.1",
4
4
  "description": "React Native library for MOVE SDK",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -12,11 +12,11 @@ Pod::Spec.new do |s|
12
12
  s.license = package["license"]
13
13
  s.authors = package["author"]
14
14
 
15
- s.platforms = { :ios => "11.0" }
15
+ s.platforms = { :ios => "12.0" }
16
16
 
17
17
  s.source = { :git => "https://github.com/***", :tag=> "v#{s.version}" }
18
18
  s.source_files = "ios/**/*.{h,m,mm,swift}"
19
19
 
20
20
  s.dependency 'React'
21
- s.dependency 'DolphinMoveSDK', '2.7.0.283'
21
+ s.dependency 'MoveSDK', '2.8.1.293'
22
22
  end
package/src/MoveSdk.ts CHANGED
@@ -36,7 +36,20 @@ export type WarningReasons =
36
36
  | 'FINE_LOCATION_PERMISSION_MISSING'
37
37
  | 'BLUETOOTH_PERMISSION_MISSING'
38
38
  | 'GPS_OFF'
39
- | 'OFFLINE';
39
+ | 'OFFLINE'
40
+ | 'GO_EDITION'
41
+ | 'ROOTED'
42
+ | 'NO_SIM'
43
+ | 'BACKGROUND_RESTRICTED'
44
+ | 'MOCK_PROVIDER_LOCATION'
45
+ | 'MOCK_PROVIDER'
46
+ | 'LOCATION_MODE'
47
+ | 'PLAY_SERVICES_MISSING'
48
+ | 'LOCATION_POWER_MODE(0)'
49
+ | 'LOCATION_POWER_MODE(1)'
50
+ | 'LOCATION_POWER_MODE(2)'
51
+ | 'LOCATION_POWER_MODE(3)'
52
+ | 'LOCATION_POWER_MODE(4)';
40
53
 
41
54
  export type IssueListService = TimelineDetectionService | DrivingService | WalkingService;
42
55
 
@@ -219,12 +232,12 @@ export default class MoveSdk {
219
232
  return await NativeMoveSdk.updateAuth(userId, accessToken, refreshToken, projectId);
220
233
  }
221
234
 
222
- static startAutomaticDetection() {
223
- NativeMoveSdk.startAutomaticDetection();
235
+ static async startAutomaticDetection(): Promise<boolean> {
236
+ return await NativeMoveSdk.startAutomaticDetection();
224
237
  }
225
238
 
226
- static stopAutomaticDetection() {
227
- NativeMoveSdk.stopAutomaticDetection();
239
+ static async stopAutomaticDetection(): Promise<boolean> {
240
+ return await NativeMoveSdk.stopAutomaticDetection();
228
241
  }
229
242
 
230
243
  static forceTripRecognition(duration: number = 60000) {
@@ -449,7 +462,20 @@ export default class MoveSdk {
449
462
  }
450
463
  }
451
464
 
452
- static async startTrip(metadata?: {[key: string]: string}): Promise<boolean> {
465
+ static async startTrip(metadata?: { [key: string]: string }): Promise<boolean> {
453
466
  return await NativeMoveSdk.startTrip(metadata);
454
467
  }
468
+
469
+ static updateConfig(config: MoveSdkConfig) {
470
+ const { timelineDetectionServices, drivingServices, walkingServices } = config;
471
+ NativeMoveSdk.updateConfig(timelineDetectionServices, drivingServices, walkingServices);
472
+ }
473
+
474
+ static setTripMetadata(metadata?: {[key: string]: string}) {
475
+ NativeMoveSdk.setTripMetadata(metadata);
476
+ }
477
+
478
+ static async setLiveLocationTag(tag?: string): Promise<boolean> {
479
+ return await NativeMoveSdk.setLiveLocationTag(tag);
480
+ }
455
481
  }