react-native-move-sdk 2.4.9 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -141,8 +141,8 @@ def kotlin_version = getExtOrDefault('kotlinVersion')
141
141
  dependencies {
142
142
  // noinspection GradleDynamicVersion
143
143
 
144
- implementation "com.facebook.react:react-native:+"
145
- api "io.dolphin.move:move-sdk:2.5.3.73"
144
+ implementation "com.facebook.react:react-android:+"
145
+ api "io.dolphin.move:move-sdk:2.6.0.74"
146
146
 
147
147
  testImplementation 'junit:junit:4.13.2'
148
148
  testImplementation "androidx.test:core:1.4.0"
@@ -6,10 +6,12 @@ import android.content.Context
6
6
  import android.content.Context.NOTIFICATION_SERVICE
7
7
  import android.os.Build
8
8
  import androidx.core.app.NotificationCompat
9
+ import io.dolphin.move.MoveNotification
9
10
 
10
11
  data class MoveNotificationConfig(
11
12
  var title: String,
12
13
  var text: String,
14
+ var icon: Int?,
13
15
  var channelId: String,
14
16
  var channelName: String,
15
17
  var channelDescription: String
@@ -28,6 +30,17 @@ data class MoveNotificationConfig(
28
30
  .setPriority(NotificationCompat.PRIORITY_MAX);
29
31
  }
30
32
 
33
+ fun toMoveNotification(context: Context): MoveNotification {
34
+ createChannel(context)
35
+ return MoveNotification(
36
+ channelId = channelId,
37
+ contentText = text,
38
+ contentTitle = title,
39
+ drawableId = icon ?: R.drawable.ic_notification,
40
+ showWhen = false,
41
+ )
42
+ }
43
+
31
44
  private fun createChannel(context: Context) {
32
45
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
33
46
  // Create the NotificationChannel
@@ -36,6 +36,8 @@ internal const val EVENT_AUTH_BATTERY_PERMISSION = "MoveSdk-Permission-BatteryOp
36
36
  internal const val EVENT_AUTH_OVERLAY_PERMISSION = "MoveSdk-Permission-Overlay"
37
37
  internal const val EVENT_MOVE_SCAN_RESULT = "MOVE_SDK_SCAN_RESULT"
38
38
  internal const val EVENT_MOVE_SDK_APP = "MOVE_SDK_APP_EVENT"
39
+ internal const val EVENT_MOVE_CONFIG_UPDATE = "MOVE_SDK_CONFIG_UPDATE"
40
+ internal const val EVENT_MOVE_SDK_TRIP_START = "MOVE_SDK_TRIP_START"
39
41
 
40
42
  internal const val ARGUMENT_ACCESS_TOKEN = "accessToken"
41
43
  internal const val ARGUMENT_REFRESH_TOKEN = "refreshToken"
@@ -48,6 +50,7 @@ internal const val ARGUMENT_WARNING = "warnings"
48
50
  internal const val ARGUMENT_ERROR_REASON = "errorReason"
49
51
  internal const val ARGUMENT_DEVICES = "devices"
50
52
  internal const val ARGUMENT_SCAN_RESULTS = "results"
53
+ internal const val ARGUMENT_MOVE_SERVICES = "services"
51
54
 
52
55
  internal const val PROMISE_OK = "OK"
53
56
 
@@ -311,18 +314,24 @@ class MoveSdkModule(context: ReactApplicationContext) : ReactContextBaseJavaModu
311
314
  }
312
315
 
313
316
  @ReactMethod
314
- fun registerDevices(devices: ReadableArray) {
317
+ fun registerDevices(devices: ReadableArray, promise: Promise) {
315
318
  try {
316
- nativeSdkWrapper.registerDevices(devices.toArrayList() as? ArrayList<Map<String, String>>)
319
+ nativeSdkWrapper.registerDevices(
320
+ rawData = devices.toArrayList() as? ArrayList<Map<String, String>>,
321
+ promise = promise,
322
+ )
317
323
  } catch (t: Throwable) {
318
324
  Log.e("SDK Module", t.message, t)
319
325
  }
320
326
  }
321
327
 
322
328
  @ReactMethod
323
- fun unregisterDevices(devices: ReadableArray) {
329
+ fun unregisterDevices(devices: ReadableArray, promise: Promise) {
324
330
  try {
325
- nativeSdkWrapper.unregisterDevices(devices.toArrayList() as? ArrayList<Map<String, String>>)
331
+ nativeSdkWrapper.unregisterDevices(
332
+ rawData = devices.toArrayList() as? ArrayList<Map<String, String>>,
333
+ promise = promise,
334
+ )
326
335
  } catch (t: Throwable) {
327
336
  Log.e("SDK Module", t.message, t)
328
337
  }
@@ -25,6 +25,7 @@ private const val PROPERTY_NOTIFICATION_TEXT = "NotificationText"
25
25
  private const val PROPERTY_NOTIFICATION_CHANNELID = "NotificationChannelId"
26
26
  private const val PROPERTY_NOTIFICATION_CHANNELNAME = "NotificationChannelName"
27
27
  private const val PROPERTY_NOTIFICATION_CHANNELDESCRIPTION = "NotificationChannelName"
28
+ private const val PROPERTY_NOTIFICATION_ICON = "NotificationIcon"
28
29
 
29
30
  private const val NOTIFICATION_RECOGNITION = "recognition"
30
31
  private const val NOTIFICATION_TRIP = "trip"
@@ -80,6 +81,10 @@ class MoveSdkConfigRepository(context: Context) {
80
81
  prefix + PROPERTY_NOTIFICATION_CHANNELDESCRIPTION,
81
82
  recognitionNotification.channelDescription
82
83
  )
84
+ editor.putInt(
85
+ prefix + PROPERTY_NOTIFICATION_ICON,
86
+ recognitionNotification.icon ?: 0,
87
+ )
83
88
  editor.apply()
84
89
  }
85
90
 
@@ -148,10 +153,13 @@ class MoveSdkConfigRepository(context: Context) {
148
153
  sharedPreferences.getString(prefix + PROPERTY_NOTIFICATION_CHANNELNAME, "") ?: ""
149
154
  val notificationChannelDescription: String =
150
155
  sharedPreferences.getString(prefix + PROPERTY_NOTIFICATION_CHANNELDESCRIPTION, "") ?: ""
156
+ val notificationIcon: Int =
157
+ sharedPreferences.getInt(prefix + PROPERTY_NOTIFICATION_ICON, 0)
151
158
 
152
159
  return MoveNotificationConfig(
153
160
  title = notificationTitle,
154
161
  text = notificationText,
162
+ icon = notificationIcon.takeIf { it != 0 },
155
163
  channelId = notificationChannelId,
156
164
  channelName = notificationChannelName,
157
165
  channelDescription = notificationChannelDescription
@@ -25,16 +25,18 @@ import io.dolphin.move.MoveServiceWarning
25
25
  import io.dolphin.move.MoveShutdownResult
26
26
  import io.dolphin.move.MoveTripState
27
27
  import io.dolphin.move.WalkingService
28
+ import java.util.*
28
29
  import kotlinx.coroutines.CoroutineScope
29
30
  import kotlinx.coroutines.Dispatchers
30
31
  import kotlinx.coroutines.launch
31
32
  import kotlinx.coroutines.withContext
33
+ import kotlin.collections.ArrayList
32
34
 
33
35
  @SuppressLint("StaticFieldLeak", "MissingPermission")
34
36
  class NativeMoveSdkWrapper(private val context: Context) : MoveSdk.StateListener,
35
37
  MoveSdk.InitializeListener, MoveSdk.TripStateListener, MoveSdk.AuthStateUpdateListener,
36
38
  MoveSdk.MoveLogCallback, MoveSdk.MoveErrorListener, MoveSdk.MoveWarningListener,
37
- MoveSdk.DeviceDiscoveryListener {
39
+ MoveSdk.DeviceDiscoveryListener, MoveSdk.RemoteConfigChangeListener, MoveSdk.TripStartListener {
38
40
 
39
41
  companion object {
40
42
 
@@ -70,14 +72,17 @@ class NativeMoveSdkWrapper(private val context: Context) : MoveSdk.StateListener
70
72
  moveSdk.setServiceWarningListener(this)
71
73
 
72
74
  moveSdk.deviceDiscoveryListener(this)
75
+ moveSdk.setRemoteConfigChangeListener(this)
76
+ moveSdk.setTripStartListener(this)
73
77
 
74
78
  // Initialize notifications by default (might be overwritten by setup)
75
- val config: MoveSdkConfig = configRepository.loadConfig()
79
+ // TODO remove notification setup in init when VIG1-1620 will be fixed
80
+ /* val config: MoveSdkConfig = configRepository.loadConfig()
76
81
  try {
77
82
  moveSdk.recognitionNotification(config.recognitionNotification.toAndroidNotification(context))
78
83
  moveSdk.tripNotification(config.tripNotification.toAndroidNotification(context))
79
84
  } catch (t: Throwable) {
80
- /**
85
+ *//**
81
86
  * TODO Find cause, maybe channelID 0?
82
87
  * Caused by: java.lang.IllegalArgumentException
83
88
  at android.os.Parcel.createExceptionOrNull(Parcel.java:2429)
@@ -85,8 +90,9 @@ class NativeMoveSdkWrapper(private val context: Context) : MoveSdk.StateListener
85
90
  at android.os.Parcel.readException(Parcel.java:2392)
86
91
  at android.os.Parcel.readException(Parcel.java:2334)
87
92
  at android.app.INotificationManager$Stub$Proxy.createNotificationChannels(INotificationManager.java:3933)
88
- */
93
+ *//*
89
94
  }
95
+ */
90
96
  }
91
97
 
92
98
  fun allowMockLocations(allowMockLocations: Boolean) {
@@ -147,10 +153,14 @@ class NativeMoveSdkWrapper(private val context: Context) : MoveSdk.StateListener
147
153
  )
148
154
  )
149
155
  }
156
+ // TODO there was a bug on building local npm, fix it and uncomment
157
+ // val recognitionNotificationIcon = getIconIdByName(recognitionIconName)
158
+ // val tripNotificationIcon = getIconIdByName(tripIconName)
150
159
 
151
160
  val recognitionNotification = MoveNotificationConfig(
152
161
  recognitionNotificationTitle,
153
162
  recognitionNotificationText,
163
+ null,
154
164
  recognitionNotificationChannelId,
155
165
  recognitionNotificationChannelName,
156
166
  recognitionNotificationChannelDescription,
@@ -158,6 +168,7 @@ class NativeMoveSdkWrapper(private val context: Context) : MoveSdk.StateListener
158
168
  val tripNotification = MoveNotificationConfig(
159
169
  tripNotificationTitle,
160
170
  tripNotificationText,
171
+ null,
161
172
  tripNotificationChannelId,
162
173
  tripNotificationChannelName,
163
174
  tripNotificationChannelDescription,
@@ -168,6 +179,8 @@ class NativeMoveSdkWrapper(private val context: Context) : MoveSdk.StateListener
168
179
  val featureOptions = options?.toHashMap()
169
180
  val moveOptions = try {
170
181
  val motionPermissionMandatory = featureOptions?.get("motionPermissionMandatory") as? Boolean
182
+ val useBackendConfig = featureOptions?.get("useBackendConfig") as? Boolean
183
+ val backgroundLocationPermissionMandatory = featureOptions?.get("backgroundLocationPermissionMandatory") as? Boolean
171
184
  val deviceDiscovery = featureOptions?.get("deviceDiscovery") as? Map<String, Any>
172
185
  val startDelay = deviceDiscovery?.get("startDelay") as? Double
173
186
  val duration = deviceDiscovery?.get("duration") as? Double
@@ -175,6 +188,8 @@ class NativeMoveSdkWrapper(private val context: Context) : MoveSdk.StateListener
175
188
  val stopScanOnFirstDiscovered = deviceDiscovery?.get("stopScanOnFirstDiscovered") as? Boolean
176
189
  MoveOptions(
177
190
  motionPermissionRequired = motionPermissionMandatory ?: false,
191
+ useBackendConfig = useBackendConfig ?: false,
192
+ backgroundLocationPermissionMandatory = backgroundLocationPermissionMandatory ?: false,
178
193
  deviceDiscovery = DeviceDiscovery(
179
194
  startDelay = startDelay?.toLong(),
180
195
  duration = duration?.toLong(),
@@ -197,9 +212,9 @@ class NativeMoveSdkWrapper(private val context: Context) : MoveSdk.StateListener
197
212
  projectId = projectId.toLong(),
198
213
  )
199
214
  MoveSdk.get()?.let {
200
- it.tripNotification(recognitionNotification.toAndroidNotification(context))
201
- it.recognitionNotification(tripNotification.toAndroidNotification(context))
202
- it.walkingLocationNotification(walkingNotification.toAndroidNotification(context))
215
+ it.tripNotification(recognitionNotification.toMoveNotification(context))
216
+ it.recognitionNotification(tripNotification.toMoveNotification(context))
217
+ it.walkingLocationNotification(walkingNotification.toMoveNotification(context))
203
218
  }
204
219
  val moveConfig = MoveConfig(timelineDetectionServicesToUse)
205
220
  MoveSdk.setup(
@@ -457,26 +472,46 @@ class NativeMoveSdkWrapper(private val context: Context) : MoveSdk.StateListener
457
472
  emitDeviceEvent(EVENT_MOVE_SCAN_RESULT, results.toScanResultArray())
458
473
  }
459
474
 
460
- fun registerDevices(rawData: ArrayList<Map<String, String>>?) {
461
- val devices = rawData?.mapNotNull {
462
- try {
463
- gson.fromJson(it["data"], MoveDevice::class.java)
464
- } catch (e: Exception) {
465
- null
475
+ fun registerDevices(rawData: ArrayList<Map<String, String>>?, promise: Promise) {
476
+ mainScope.launch {
477
+ var isSuccess = false
478
+ withContext(ioContext) {
479
+ val devices = rawData?.mapNotNull {
480
+ try {
481
+ gson.fromJson(it["data"], MoveDevice::class.java)
482
+ } catch (e: Exception) {
483
+ null
484
+ }
485
+ }.orEmpty()
486
+ isSuccess = MoveSdk.get()?.registerDevices(devices) ?: false
466
487
  }
467
- }.orEmpty()
468
- MoveSdk.get()?.registerDevices(devices)
488
+ if (isSuccess) {
489
+ promise.resolve(true)
490
+ } else {
491
+ promise.reject(Exception("ERROR_REGISTER_DEVICES"))
492
+ }
493
+ }
469
494
  }
470
495
 
471
- fun unregisterDevices(rawData: ArrayList<Map<String, String>>?) {
472
- val devices = rawData?.mapNotNull {
473
- try {
474
- gson.fromJson(it["data"], MoveDevice::class.java)
475
- } catch (e: Exception) {
476
- null
496
+ fun unregisterDevices(rawData: ArrayList<Map<String, String>>?, promise: Promise) {
497
+ mainScope.launch {
498
+ var isSuccess = false
499
+ withContext(ioContext) {
500
+ val devices = rawData?.mapNotNull {
501
+ try {
502
+ gson.fromJson(it["data"], MoveDevice::class.java)
503
+ } catch (e: Exception) {
504
+ null
505
+ }
506
+ }.orEmpty()
507
+ isSuccess = MoveSdk.get()?.unregisterDevices(devices) ?: false
508
+ }
509
+ if (isSuccess) {
510
+ promise.resolve(true)
511
+ } else {
512
+ promise.reject(Exception("ERROR_UNREGISTER_DEVICES"))
477
513
  }
478
- }.orEmpty()
479
- MoveSdk.get()?.unregisterDevices(devices)
514
+ }
480
515
  }
481
516
 
482
517
  fun getRegisteredDevices(promise: Promise) {
@@ -506,6 +541,30 @@ class NativeMoveSdkWrapper(private val context: Context) : MoveSdk.StateListener
506
541
  fun stopScanningDevices() {
507
542
  deviceScanner.stopScanning()
508
543
  }
544
+
545
+ override fun onConfigChanged(config: MoveConfig) {
546
+ val data = mutableMapOf<Any, Any>()
547
+ data[ARGUMENT_MOVE_SERVICES] = config.moveDetectionServices.map { it.name().toSnakeCase() }
548
+ emitDeviceEvent(EVENT_MOVE_CONFIG_UPDATE, data)
549
+ }
550
+
551
+ // TODO uncomment when will be fixed VIG1-1620
552
+ /* private fun getIconIdByName(name: String?): Int? {
553
+ Log.i("MissingNotifications", "getIconIdByName name = $name")
554
+ name ?: return null
555
+ val packageName = context.packageName
556
+ return try {
557
+ val resource = context.resources.getIdentifier(name, "drawable", packageName).takeIf { it != 0 }
558
+ Log.i("MissingNotifications", "getIdentifier resource = $resource")
559
+ resource
560
+ } catch (e: Exception) {
561
+ null
562
+ }
563
+ }*/
564
+
565
+ override fun onTripStarted(startDate: Date) {
566
+ emitDeviceEvent(EVENT_MOVE_SDK_TRIP_START, startDate.time.toString())
567
+ }
509
568
  }
510
569
 
511
570
  fun List<MoveServiceFailure>.failuresToArray(): Array<Any> {
@@ -68,9 +68,13 @@ RCT_EXTERN_METHOD(startScanningDevices: (NSArray*) filter
68
68
 
69
69
  RCT_EXTERN_METHOD(stopScanningDevices)
70
70
 
71
- RCT_EXTERN_METHOD(registerDevices: (NSArray*>)devices)
71
+ RCT_EXTERN_METHOD(registerDevices: (NSArray*)devices
72
+ resolver: (RCTPromiseResolveBlock)resolve
73
+ rejecter: (RCTPromiseRejectBlock)reject)
72
74
 
73
- RCT_EXTERN_METHOD(unregisterDevices: (NSArray*>)devices)
75
+ RCT_EXTERN_METHOD(unregisterDevices: (NSArray*)devices
76
+ resolver: (RCTPromiseResolveBlock)resolve
77
+ rejecter: (RCTPromiseRejectBlock)reject)
74
78
 
75
79
  RCT_EXTERN_METHOD(getRegisteredDevices: (RCTPromiseResolveBlock)resolve
76
80
  rejecter: (RCTPromiseRejectBlock)reject)
@@ -131,6 +131,10 @@ class RCTMoveSdk: RCTEventEmitter {
131
131
  moveOptions.motionPermissionMandatory = value
132
132
  }
133
133
 
134
+ if let value = opts["useBackendConfig"] as? Bool {
135
+ moveOptions.useBackendConfig = value
136
+ }
137
+
134
138
  if let deviceDiscovery = opts["deviceDiscovery"] as? [String: Any] {
135
139
  if let value = deviceDiscovery["startDelay"] as? Double {
136
140
  moveOptions.deviceDiscovery.startDelay = value
@@ -352,15 +356,21 @@ class RCTMoveSdk: RCTEventEmitter {
352
356
  }
353
357
 
354
358
  @objc
355
- func registerDevices(_ devices: [Any]) {
359
+ func registerDevices(_ devices: [Any],
360
+ resolver resolve: @escaping RCTPromiseResolveBlock,
361
+ rejecter reject: @escaping RCTPromiseRejectBlock) {
356
362
  let devices = MoveSDKLauncher.shared.convert(devices: devices)
357
363
  MoveSDKLauncher.shared.sdk.register(devices: devices)
364
+ resolve(true)
358
365
  }
359
366
 
360
367
  @objc
361
- func unregisterDevices(_ devices: [Any]) {
368
+ func unregisterDevices(_ devices: [Any],
369
+ resolver resolve: @escaping RCTPromiseResolveBlock,
370
+ rejecter reject: @escaping RCTPromiseRejectBlock) {
362
371
  let devices = MoveSDKLauncher.shared.convert(devices: devices)
363
372
  MoveSDKLauncher.shared.sdk.unregister(devices: devices)
373
+ resolve(true)
364
374
  }
365
375
 
366
376
  @objc
@@ -429,6 +439,8 @@ internal class MoveSDKLauncher {
429
439
  case failure = "MOVE_SDK_ERRORS"
430
440
  case devices = "MOVE_SDK_DEVICES"
431
441
  case scanResult = "MOVE_SDK_SCAN_RESULT"
442
+ case configUpdate = "MOVE_SDK_CONFIG_UPDATE"
443
+ case tripStart = "MOVE_SDK_TRIP_START"
432
444
  }
433
445
 
434
446
  private enum DefaultsKey: String {
@@ -454,6 +466,10 @@ internal class MoveSDKLauncher {
454
466
  self.delegate?.send(event: .tripState, data: ["state": "\(value)"])
455
467
  }
456
468
 
469
+ sdk.setTripStartListener { date in
470
+ self.delegate?.send(event: .tripStart, data: Int64(date.timeIntervalSince1970 * 1000.0))
471
+ }
472
+
457
473
  sdk.setAuthStateUpdateListener { state in
458
474
  let value = "\(state)".uppercased()
459
475
  self.delegate?.send(event: .authState, data: ["state": "\(value)"])
@@ -473,6 +489,12 @@ internal class MoveSDKLauncher {
473
489
  let data = self.convert(scanResults: scanResults)
474
490
  self.delegate?.send(event: .scanResult, data: data)
475
491
  }
492
+
493
+ sdk.setRemoteConfigChangeListener { config in
494
+ let services: [String] = config.services.reduce([]) { $0 + self.convert(service: $1, base: true) }
495
+ let data = ["services": services]
496
+ self.delegate?.send(event: .configUpdate, data: data)
497
+ }
476
498
  }
477
499
 
478
500
  fileprivate func getServiceWarnings() -> [MoveSDKErrorListItem] {
@@ -166,6 +166,10 @@ class MoveSdk {
166
166
  return eventEmitter.addListener('MOVE_SDK_TRIP_STATE', event => tripStateChanged(MoveSdk.tripStateFromNative(event.state)));
167
167
  }
168
168
 
169
+ static addTripStartListener(tripStartTriggered) {
170
+ return eventEmitter.addListener('MOVE_SDK_TRIP_START', start => tripStartTriggered(new Date(Number(start))));
171
+ }
172
+
169
173
  static addSdkStateListener(sdkStateChanged) {
170
174
  return eventEmitter.addListener('MOVE_SDK_STATE', event => {
171
175
  sdkStateChanged(MoveSdk.sdkStateFromNative(event.state));
@@ -199,6 +203,12 @@ class MoveSdk {
199
203
  });
200
204
  }
201
205
 
206
+ static addRemoteConfigChangeListener(configChangeReceived) {
207
+ return eventEmitter.addListener('MOVE_SDK_CONFIG_UPDATE', config => {
208
+ configChangeReceived(config);
209
+ });
210
+ }
211
+
202
212
  static version() {
203
213
  return _reactNative.Platform.OS === 'android' ? NativeMoveSdk.getConstants().version : 'Unknown';
204
214
  }
@@ -284,12 +294,12 @@ class MoveSdk {
284
294
  return await NativeMoveSdk.getRegisteredDevices();
285
295
  }
286
296
 
287
- static registerDevices(devices) {
288
- NativeMoveSdk.registerDevices(devices);
297
+ static async registerDevices(devices) {
298
+ return await NativeMoveSdk.registerDevices(devices);
289
299
  }
290
300
 
291
- static unregisterDevices(devices) {
292
- NativeMoveSdk.unregisterDevices(devices);
301
+ static async unregisterDevices(devices) {
302
+ return await NativeMoveSdk.unregisterDevices(devices);
293
303
  }
294
304
 
295
305
  static addDeviceDiscoveryListener(onScanResult) {
@@ -1 +1 @@
1
- {"version":3,"sources":["index.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_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","addSdkStateListener","sdkStateChanged","addAuthStateListener","authStateChanged","transformedEvent","addErrorsListener","errorsReceived","errors","addWarningsListener","warningsReceived","warnings","addAppEventListener","appEventReceived","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","addDeviceDiscoveryListener","onScanResult","results"],"mappings":"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","sourcesContent":["import {\n NativeModules,\n NativeEventEmitter,\n Platform,\n EmitterSubscription,\n} 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 =\n | 'DISTRACTION_FREE_DRIVING'\n | 'DRIVING_BEHAVIOUR'\n | 'DEVICE_DISCOVERY';\nexport type WalkingService = 'WALKING_LOCATION';\nexport type OtherService = 'POINTS_OF_INTEREST';\nexport type TimelineDetectionService =\n | 'DRIVING'\n | 'CYCLING'\n | 'WALKING'\n | 'PLACES'\n | 'PUBLIC_TRANSPORT'\n | 'AUTOMATIC_IMPACT_DETECTION'\n | 'ASSISTANCE_CALL'\n | '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\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\nexport type IssueListService =\n | TimelineDetectionService\n | DrivingService\n | 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 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\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 (\n [\n MoveSdk.UNINITIALIZED,\n MoveSdk.READY,\n MoveSdk.RUNNING,\n MoveSdk.UNINITIALIZED,\n ].includes(sdkState)\n ) {\n return sdkState;\n }\n\n return MoveSdk.UNINITIALIZED;\n }\n\n static tripStateFromNative(nativeTripState: TripState): TripState {\n if (\n [\n MoveSdk.UNKNOWN,\n MoveSdk.DRIVING,\n MoveSdk.HALT,\n MoveSdk.IDLE,\n MoveSdk.IGNORED,\n ].includes(nativeTripState)\n ) {\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].includes(nativeAuthState)) {\n return nativeAuthState;\n }\n\n return MoveSdk.AUTH_UNKNOWN;\n }\n\n static async setup(\n config: MoveSdkConfig,\n auth: MoveSdkAuth,\n android: MoveSdkAndroidConfig,\n options?: MoveSdkOptions\n ): Promise<void> {\n const { timelineDetectionServices, drivingServices, walkingServices } =\n 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(\n 'MOVE SDK needs notification configuration for Android'\n );\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(\n userId,\n accessToken,\n refreshToken,\n projectId\n );\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(\n tripStateChanged: (state: TripState) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_TRIP_STATE', (event) =>\n tripStateChanged(MoveSdk.tripStateFromNative(event.state))\n );\n }\n\n static addSdkStateListener(\n sdkStateChanged: (state: SdkState) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_STATE', (event) => {\n sdkStateChanged(MoveSdk.sdkStateFromNative(event.state));\n });\n }\n\n static addAuthStateListener(\n authStateChanged: (event: AuthStateEvent) => void\n ): 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(\n errorsReceived: (errors: ErrorListType) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_ERRORS', (event) => {\n errorsReceived(event.errors);\n });\n }\n\n static addWarningsListener(\n warningsReceived: (warnings: WarningListType) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_WARNINGS', (event) => {\n warningsReceived(event.warnings);\n });\n }\n\n static addAppEventListener(\n appEventReceived: (event: string) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_APP_EVENT', (event) => {\n appEventReceived(event);\n });\n }\n\n static version(): string {\n return Platform.OS === 'android'\n ? NativeMoveSdk.getConstants().version\n : '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 getDeviceQualifier(): 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(\n 'MoveSdk.requestDrawOverlaysPermission() is Android OS only.'\n );\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(\n 'MoveSdk.requestAppIgnoringBatteryOptimization() is Android OS only.'\n );\n }\n }\n\n // **** PERMISSIONS MODULE END *****\n\n static startScanningDevices(\n sdkDevicesDetected: (state: Array<MoveSdkDevice>) => void,\n filter: MoveSdkDeviceFilter[] = ['paired'],\n uuid?: string,\n manufacturerId?: number\n ): ListenerSubscription {\n const subscription = eventEmitter.addListener(\n 'MOVE_SDK_DEVICES',\n (devices) => {\n sdkDevicesDetected(devices);\n }\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 registerDevices(devices: Array<MoveSdkDevice>) {\n NativeMoveSdk.registerDevices(devices);\n }\n\n static unregisterDevices(devices: Array<MoveSdkDevice>) {\n NativeMoveSdk.unregisterDevices(devices);\n }\n\n static addDeviceDiscoveryListener(\n onScanResult: (state: Array<MoveScanResult>) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_SCAN_RESULT', (results) => {\n onScanResult(results);\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["index.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_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","addDeviceDiscoveryListener","onScanResult","results"],"mappings":"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","sourcesContent":["import {\n NativeModules,\n NativeEventEmitter,\n Platform,\n EmitterSubscription,\n} 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 =\n | 'DISTRACTION_FREE_DRIVING'\n | 'DRIVING_BEHAVIOUR'\n | 'DEVICE_DISCOVERY';\nexport type WalkingService = 'WALKING_LOCATION';\nexport type OtherService = 'POINTS_OF_INTEREST';\nexport type TimelineDetectionService =\n | 'DRIVING'\n | 'CYCLING'\n | 'WALKING'\n | 'PLACES'\n | 'PUBLIC_TRANSPORT'\n | 'AUTOMATIC_IMPACT_DETECTION'\n | 'ASSISTANCE_CALL'\n | '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\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\nexport type IssueListService =\n | TimelineDetectionService\n | DrivingService\n | 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 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\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 (\n [\n MoveSdk.UNINITIALIZED,\n MoveSdk.READY,\n MoveSdk.RUNNING,\n MoveSdk.UNINITIALIZED,\n ].includes(sdkState)\n ) {\n return sdkState;\n }\n\n return MoveSdk.UNINITIALIZED;\n }\n\n static tripStateFromNative(nativeTripState: TripState): TripState {\n if (\n [\n MoveSdk.UNKNOWN,\n MoveSdk.DRIVING,\n MoveSdk.HALT,\n MoveSdk.IDLE,\n MoveSdk.IGNORED,\n ].includes(nativeTripState)\n ) {\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].includes(nativeAuthState)) {\n return nativeAuthState;\n }\n\n return MoveSdk.AUTH_UNKNOWN;\n }\n\n static async setup(\n config: MoveSdkConfig,\n auth: MoveSdkAuth,\n android: MoveSdkAndroidConfig,\n options?: MoveSdkOptions\n ): Promise<void> {\n const { timelineDetectionServices, drivingServices, walkingServices } =\n 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(\n 'MOVE SDK needs notification configuration for Android'\n );\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(\n userId,\n accessToken,\n refreshToken,\n projectId\n );\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(\n tripStateChanged: (state: TripState) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_TRIP_STATE', (event) =>\n tripStateChanged(MoveSdk.tripStateFromNative(event.state))\n );\n }\n\n static addTripStartListener(\n tripStartTriggered: (start: Date) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_TRIP_START', (start) =>\n\t tripStartTriggered(new Date(Number(start)))\n );\n }\n\n static addSdkStateListener(\n sdkStateChanged: (state: SdkState) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_STATE', (event) => {\n sdkStateChanged(MoveSdk.sdkStateFromNative(event.state));\n });\n }\n\n static addAuthStateListener(\n authStateChanged: (event: AuthStateEvent) => void\n ): 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(\n errorsReceived: (errors: ErrorListType) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_ERRORS', (event) => {\n errorsReceived(event.errors);\n });\n }\n\n static addWarningsListener(\n warningsReceived: (warnings: WarningListType) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_WARNINGS', (event) => {\n warningsReceived(event.warnings);\n });\n }\n\n static addAppEventListener(\n appEventReceived: (event: string) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_APP_EVENT', (event) => {\n appEventReceived(event);\n });\n }\n\n static addRemoteConfigChangeListener(\n configChangeReceived: (config: Array<IssueListService>) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_CONFIG_UPDATE', (config) => {\n\t\tconfigChangeReceived(config);\n });\n }\n\n static version(): string {\n return Platform.OS === 'android'\n ? NativeMoveSdk.getConstants().version\n : '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 getDeviceQualifier(): 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(\n 'MoveSdk.requestDrawOverlaysPermission() is Android OS only.'\n );\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(\n 'MoveSdk.requestAppIgnoringBatteryOptimization() is Android OS only.'\n );\n }\n }\n\n // **** PERMISSIONS MODULE END *****\n\n static startScanningDevices(\n sdkDevicesDetected: (state: Array<MoveSdkDevice>) => void,\n filter: MoveSdkDeviceFilter[] = ['paired'],\n uuid?: string,\n manufacturerId?: number\n ): ListenerSubscription {\n const subscription = eventEmitter.addListener(\n 'MOVE_SDK_DEVICES',\n (devices) => {\n sdkDevicesDetected(devices);\n }\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 addDeviceDiscoveryListener(\n onScanResult: (state: Array<MoveScanResult>) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_SCAN_RESULT', (results) => {\n onScanResult(results);\n });\n }\n}\n"]}
@@ -157,6 +157,10 @@ export default class MoveSdk {
157
157
  return eventEmitter.addListener('MOVE_SDK_TRIP_STATE', event => tripStateChanged(MoveSdk.tripStateFromNative(event.state)));
158
158
  }
159
159
 
160
+ static addTripStartListener(tripStartTriggered) {
161
+ return eventEmitter.addListener('MOVE_SDK_TRIP_START', start => tripStartTriggered(new Date(Number(start))));
162
+ }
163
+
160
164
  static addSdkStateListener(sdkStateChanged) {
161
165
  return eventEmitter.addListener('MOVE_SDK_STATE', event => {
162
166
  sdkStateChanged(MoveSdk.sdkStateFromNative(event.state));
@@ -190,6 +194,12 @@ export default class MoveSdk {
190
194
  });
191
195
  }
192
196
 
197
+ static addRemoteConfigChangeListener(configChangeReceived) {
198
+ return eventEmitter.addListener('MOVE_SDK_CONFIG_UPDATE', config => {
199
+ configChangeReceived(config);
200
+ });
201
+ }
202
+
193
203
  static version() {
194
204
  return Platform.OS === 'android' ? NativeMoveSdk.getConstants().version : 'Unknown';
195
205
  }
@@ -275,12 +285,12 @@ export default class MoveSdk {
275
285
  return await NativeMoveSdk.getRegisteredDevices();
276
286
  }
277
287
 
278
- static registerDevices(devices) {
279
- NativeMoveSdk.registerDevices(devices);
288
+ static async registerDevices(devices) {
289
+ return await NativeMoveSdk.registerDevices(devices);
280
290
  }
281
291
 
282
- static unregisterDevices(devices) {
283
- NativeMoveSdk.unregisterDevices(devices);
292
+ static async unregisterDevices(devices) {
293
+ return await NativeMoveSdk.unregisterDevices(devices);
284
294
  }
285
295
 
286
296
  static addDeviceDiscoveryListener(onScanResult) {
@@ -1 +1 @@
1
- {"version":3,"sources":["index.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_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","addSdkStateListener","sdkStateChanged","addAuthStateListener","authStateChanged","transformedEvent","addErrorsListener","errorsReceived","errors","addWarningsListener","warningsReceived","warnings","addAppEventListener","appEventReceived","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","addDeviceDiscoveryListener","onScanResult","results"],"mappings":";;AAAA,SACEA,aADF,EAEEC,kBAFF,EAGEC,QAHF,QAKO,cALP;AAiIA,MAAM;AAAEC,EAAAA,OAAO,EAAEC;AAAX,IAA6BJ,aAAnC;AACA,MAAMK,YAAY,GAAG,IAAIJ,kBAAJ,CAAuBG,aAAvB,CAArB;AAEA,eAAe,MAAMD,OAAN,CAAc;AAeF,SAAlBG,kBAAkB,CAACC,QAAD,EAA+B;AACtD,QACE,CACEJ,OAAO,CAACK,aADV,EAEEL,OAAO,CAACM,KAFV,EAGEN,OAAO,CAACO,OAHV,EAIEP,OAAO,CAACK,aAJV,EAKEG,QALF,CAKWJ,QALX,CADF,EAOE;AACA,aAAOA,QAAP;AACD;;AAED,WAAOJ,OAAO,CAACK,aAAf;AACD;;AAEyB,SAAnBI,mBAAmB,CAACC,eAAD,EAAwC;AAChE,QACE,CACEV,OAAO,CAACW,OADV,EAEEX,OAAO,CAACY,OAFV,EAGEZ,OAAO,CAACa,IAHV,EAIEb,OAAO,CAACc,IAJV,EAKEd,OAAO,CAACe,OALV,EAMEP,QANF,CAMWE,eANX,CADF,EAQE;AACA,aAAOA,eAAP;AACD;;AAED,WAAOV,OAAO,CAACW,OAAf;AACD;;AAEyB,SAAnBK,mBAAmB,CAACC,eAAD,EAAwC;AAChE,QAAI,CAACjB,OAAO,CAACkB,UAAT,EAAqBlB,OAAO,CAACmB,YAA7B,EAA2CX,QAA3C,CAAoDS,eAApD,CAAJ,EAA0E;AACxE,aAAOA,eAAP;AACD;;AAED,WAAOjB,OAAO,CAACoB,YAAf;AACD;;AAEiB,eAALC,KAAK,CAChBC,MADgB,EAEhBC,IAFgB,EAGhBC,OAHgB,EAIhBC,OAJgB,EAKD;AACf,UAAM;AAAEC,MAAAA,yBAAF;AAA6BC,MAAAA,eAA7B;AAA8CC,MAAAA;AAA9C,QACJN,MADF;AAGA,UAAM;AAAEO,MAAAA,MAAF;AAAUC,MAAAA,SAAV;AAAqBC,MAAAA,WAArB;AAAkCC,MAAAA;AAAlC,QAAmDT,IAAzD;AAEA,QAAIU,cAAuC,GAAG,EAA9C;;AACA,QAAIlC,QAAQ,CAACmC,EAAT,KAAgB,SAApB,EAA+B;AAC7B,YAAM;AAAEC,QAAAA;AAAF,UAAoBX,OAA1B;AAEA,YAAM;AAAEY,QAAAA,gBAAF;AAAoBC,QAAAA;AAApB,UAAgDF,aAAtD;;AAEA,UAAI,CAACC,gBAAD,IAAqB,CAACC,uBAA1B,EAAmD;AACjD,cAAM,IAAIC,KAAJ,CACJ,uDADI,CAAN;AAGD;;AAEDL,MAAAA,cAAc,GAAG,CACfI,uBAAuB,CAACE,KADT,EAEfF,uBAAuB,CAACG,IAFT,EAGfH,uBAAuB,CAACI,OAAxB,CAAgCC,EAHjB,EAIfL,uBAAuB,CAACI,OAAxB,CAAgCE,IAJjB,EAKfN,uBAAuB,CAACI,OAAxB,CAAgCG,WALjB,EAMfR,gBAAgB,CAACG,KANF,EAOfH,gBAAgB,CAACI,IAPF,EAQfJ,gBAAgB,CAACK,OAAjB,CAAyBC,EARV,EASfN,gBAAgB,CAACK,OAAjB,CAAyBE,IATV,EAUfP,gBAAgB,CAACK,OAAjB,CAAyBG,WAVV,CAAjB;AAYD;;AAED,WAAO,MAAM3C,aAAa,CAACoB,KAAd,CACXQ,MADW,EAEXE,WAFW,EAGXC,YAHW,EAIXF,SAJW,EAKX;AACAJ,IAAAA,yBANW,EAOXC,eAPW,EAQXC,eARW,EASXH,OATW,EAUX;AACA,OAAGQ,cAXQ,CAAb;AAaD;;AAEwB,SAAlBY,kBAAkB,CAACA,kBAAD,EAA8B;AACrD5C,IAAAA,aAAa,CAAC4C,kBAAd,CAAiCA,kBAAjC;AACD;AAED;;;AACW,SAAJC,IAAI,GAAG;AACZ7C,IAAAA,aAAa,CAAC6C,IAAd;AACD;;AAEkB,SAAZC,YAAY,GAAG;AACpB9C,IAAAA,aAAa,CAAC8C,YAAd;AACD;;AAEsB,eAAVC,UAAU,CAACzB,IAAD,EAAmC;AACxD,UAAM;AAAEM,MAAAA,MAAF;AAAUC,MAAAA,SAAV;AAAqBC,MAAAA,WAArB;AAAkCC,MAAAA;AAAlC,QAAmDT,IAAzD;AACA,WAAO,MAAMtB,aAAa,CAAC+C,UAAd,CACXnB,MADW,EAEXE,WAFW,EAGXC,YAHW,EAIXF,SAJW,CAAb;AAMD;;AAE6B,SAAvBmB,uBAAuB,GAAG;AAC/BhD,IAAAA,aAAa,CAACgD,uBAAd;AACD;;AAE4B,SAAtBC,sBAAsB,GAAG;AAC9BjD,IAAAA,aAAa,CAACiD,sBAAd;AACD;;AAE0B,SAApBC,oBAAoB,GAA2B;AAAA,QAA1BC,QAA0B,uEAAP,KAAO;AACpDnD,IAAAA,aAAa,CAACkD,oBAAd,CAAmCC,QAAnC;AACD;;AAEsB,SAAhBC,gBAAgB,CAACC,OAAD,EAAmB;AACxC,QAAIvD,QAAQ,CAACmC,EAAT,KAAgB,SAApB,EAA+B;AAC7BjC,MAAAA,aAAa,CAACoD,gBAAd,CAA+BC,OAA/B;AACD,KAFD,MAEO;AACLC,MAAAA,OAAO,CAACC,IAAR,CAAa,gDAAb;AACD;AACF;;AAEgB,SAAVC,UAAU,CAACH,OAAD,EAAmB;AAClC,QAAIvD,QAAQ,CAACmC,EAAT,KAAgB,SAApB,EAA+B;AAC7BjC,MAAAA,aAAa,CAACwD,UAAd,CAAyBH,OAAzB;AACD,KAFD,MAEO;AACLC,MAAAA,OAAO,CAACC,IAAR,CAAa,0CAAb;AACD;AACF;;AAE+B,eAAnBE,mBAAmB,GAAqB;AACnD,WAAO,MAAMzD,aAAa,CAACyD,mBAAd,EAAb;AACD;;AAEwB,eAAZC,YAAY,GAAuB;AAC9C,UAAMC,SAAS,GAAG,MAAM3D,aAAa,CAAC0D,YAAd,EAAxB;AACA,WAAO3D,OAAO,CAACgB,mBAAR,CAA4B4C,SAA5B,CAAP;AACD;;AAEoB,eAARC,QAAQ,GAAsB;AACzC,UAAMC,KAAK,GAAG,MAAM7D,aAAa,CAAC4D,QAAd,EAApB;AACA,WAAO7D,OAAO,CAACG,kBAAR,CAA2B2D,KAA3B,CAAP;AACD;;AAEwB,eAAZC,YAAY,GAAuB;AAC9C,UAAMC,SAAS,GAAG,MAAM/D,aAAa,CAAC8D,YAAd,EAAxB;AACA,WAAO/D,OAAO,CAACS,mBAAR,CAA4BuD,SAA5B,CAAP;AACD;;AAEqB,eAATC,SAAS,GAA2B;AAC/C,WAAO,MAAMhE,aAAa,CAACgE,SAAd,EAAb;AACD;;AAEuB,eAAXC,WAAW,GAA6B;AACnD,WAAO,MAAMjE,aAAa,CAACiE,WAAd,EAAb;AACD;;AAEkC,eAAtBC,sBAAsB,GAAqB;AACtD,WAAO,MAAMlE,aAAa,CAACkE,sBAAd,EAAb;AACD;;AAE2B,SAArBC,qBAAqB,CAACC,IAAD,EAAe;AACzCpE,IAAAA,aAAa,CAACmE,qBAAd,CAAoCC,IAApC;AACD;;AAE0B,SAApBC,oBAAoB,CACzBC,gBADyB,EAEH;AACtB,WAAOrE,YAAY,CAACsE,WAAb,CAAyB,qBAAzB,EAAiDC,KAAD,IACrDF,gBAAgB,CAACvE,OAAO,CAACS,mBAAR,CAA4BgE,KAAK,CAACX,KAAlC,CAAD,CADX,CAAP;AAGD;;AAEyB,SAAnBY,mBAAmB,CACxBC,eADwB,EAEF;AACtB,WAAOzE,YAAY,CAACsE,WAAb,CAAyB,gBAAzB,EAA4CC,KAAD,IAAW;AAC3DE,MAAAA,eAAe,CAAC3E,OAAO,CAACG,kBAAR,CAA2BsE,KAAK,CAACX,KAAjC,CAAD,CAAf;AACD,KAFM,CAAP;AAGD;;AAE0B,SAApBc,oBAAoB,CACzBC,gBADyB,EAEH;AACtB,WAAO3E,YAAY,CAACsE,WAAb,CAAyB,qBAAzB,EAAiDC,KAAD,IAAW;AAChE,YAAMK,gBAAgB,GAAG,EACvB,GAAGL,KADoB;AAEvBX,QAAAA,KAAK,EAAE9D,OAAO,CAACgB,mBAAR,CAA4ByD,KAAK,CAACX,KAAlC;AAFgB,OAAzB;AAIAe,MAAAA,gBAAgB,CAACC,gBAAD,CAAhB;AACD,KANM,CAAP;AAOD;;AAEuB,SAAjBC,iBAAiB,CACtBC,cADsB,EAEA;AACtB,WAAO9E,YAAY,CAACsE,WAAb,CAAyB,iBAAzB,EAA6CC,KAAD,IAAW;AAC5DO,MAAAA,cAAc,CAACP,KAAK,CAACQ,MAAP,CAAd;AACD,KAFM,CAAP;AAGD;;AAEyB,SAAnBC,mBAAmB,CACxBC,gBADwB,EAEF;AACtB,WAAOjF,YAAY,CAACsE,WAAb,CAAyB,mBAAzB,EAA+CC,KAAD,IAAW;AAC9DU,MAAAA,gBAAgB,CAACV,KAAK,CAACW,QAAP,CAAhB;AACD,KAFM,CAAP;AAGD;;AAEyB,SAAnBC,mBAAmB,CACxBC,gBADwB,EAEF;AACtB,WAAOpF,YAAY,CAACsE,WAAb,CAAyB,oBAAzB,EAAgDC,KAAD,IAAW;AAC/Da,MAAAA,gBAAgB,CAACb,KAAD,CAAhB;AACD,KAFM,CAAP;AAGD;;AAEa,SAAPc,OAAO,GAAW;AACvB,WAAOxF,QAAQ,CAACmC,EAAT,KAAgB,SAAhB,GACHjC,aAAa,CAACuF,YAAd,GAA6BD,OAD1B,GAEH,SAFJ;AAGD;;AAEuB,SAAjBE,iBAAiB,GAAG;AACzBxF,IAAAA,aAAa,CAACwF,iBAAd;AACD;;AAEuB,SAAjBC,iBAAiB,GAAG;AACzBzF,IAAAA,aAAa,CAACyF,iBAAd;AACD;;AAE6B,SAAvBC,uBAAuB,GAAG;AAC/B,QAAI5F,QAAQ,CAACmC,EAAT,KAAgB,KAApB,EAA2B;AACzBjC,MAAAA,aAAa,CAAC0F,uBAAd;AACD,KAFD,MAEO;AACLpC,MAAAA,OAAO,CAACC,IAAR,CAAa,gDAAb;AACD;AACF;;AAEoB,eAARoC,QAAQ,GAAqD;AAAA,QAApDC,KAAoD,uEAAnC,IAAmC;AACxE,WAAO,MAAM5F,aAAa,CAAC2F,QAAd,CAAuBC,KAAvB,CAAb;AACD;;AAEwB,SAAlBC,kBAAkB,GAAkB;AACzC,WAAO7F,aAAa,CAAC6F,kBAAd,EAAP;AACD;;AAEmB,eAAPC,OAAO,CAACC,QAAD,EAAmBC,SAAnB,EAAuD;AACzE,WAAO,MAAMhG,aAAa,CAAC8F,OAAd,CAAsBC,QAAtB,EAAgCC,SAAhC,CAAb;AACD;;AAEuB,eAAXC,WAAW,GAAqB;AAC3C,WAAO,MAAMjG,aAAa,CAACiG,WAAd,EAAb;AACD,GAxR0B,CA0R3B;;;AAE4B,eAAfC,eAAe,GAAqB;AAC/C,WAAO,MAAMlG,aAAa,CAACkG,eAAd,EAAb;AACD;;AAEmC,SAA7BC,6BAA6B,GAAG;AACrC,QAAIrG,QAAQ,CAACmC,EAAT,KAAgB,SAApB,EAA+B;AAC7BjC,MAAAA,aAAa,CAACmG,6BAAd;AACD,KAFD,MAEO;AACL7C,MAAAA,OAAO,CAACC,IAAR,CACE,6DADF;AAGD;AACF;;AAE4C,eAAhC6C,gCAAgC,GAAqB;AAChE,WAAO,MAAMpG,aAAa,CAACoG,gCAAd,EAAb;AACD;;AAE2C,SAArCC,qCAAqC,GAAG;AAC7C,QAAIvG,QAAQ,CAACmC,EAAT,KAAgB,SAApB,EAA+B;AAC7BjC,MAAAA,aAAa,CAACqG,qCAAd;AACD,KAFD,MAEO;AACL/C,MAAAA,OAAO,CAACC,IAAR,CACE,qEADF;AAGD;AACF,GAtT0B,CAwT3B;;;AAE2B,SAApB+C,oBAAoB,CACzBC,kBADyB,EAKH;AAAA,QAHtBC,MAGsB,uEAHU,CAAC,QAAD,CAGV;AAAA,QAFtBC,IAEsB;AAAA,QADtBC,cACsB;AACtB,UAAMC,YAAY,GAAG1G,YAAY,CAACsE,WAAb,CACnB,kBADmB,EAElBqC,OAAD,IAAa;AACXL,MAAAA,kBAAkB,CAACK,OAAD,CAAlB;AACD,KAJkB,CAArB;AAMA,UAAMC,kBAAkB,GAAGF,YAAY,CAACG,MAAxC;;AACAH,IAAAA,YAAY,CAACG,MAAb,GAAsB,MAAM;AAC1B9G,MAAAA,aAAa,CAAC+G,mBAAd;AACAF,MAAAA,kBAAkB;AACnB,KAHD;;AAKA7G,IAAAA,aAAa,CAACsG,oBAAd,CAAmCE,MAAnC,EAA2CC,IAA3C,EAAiDC,cAAjD,aAAiDA,cAAjD,cAAiDA,cAAjD,GAAmE,CAAC,CAApE;AACA,WAAOC,YAAP;AACD;;AAEgC,eAApBK,oBAAoB,GAAkC;AACjE,WAAO,MAAMhH,aAAa,CAACgH,oBAAd,EAAb;AACD;;AAEqB,SAAfC,eAAe,CAACL,OAAD,EAAgC;AACpD5G,IAAAA,aAAa,CAACiH,eAAd,CAA8BL,OAA9B;AACD;;AAEuB,SAAjBM,iBAAiB,CAACN,OAAD,EAAgC;AACtD5G,IAAAA,aAAa,CAACkH,iBAAd,CAAgCN,OAAhC;AACD;;AAEgC,SAA1BO,0BAA0B,CAC/BC,YAD+B,EAET;AACtB,WAAOnH,YAAY,CAACsE,WAAb,CAAyB,sBAAzB,EAAkD8C,OAAD,IAAa;AACnED,MAAAA,YAAY,CAACC,OAAD,CAAZ;AACD,KAFM,CAAP;AAGD;;AAlW0B;;gBAARtH,O,WACM,O;;gBADNA,O,aAEQ,S;;gBAFRA,O,mBAGc,e;;gBAHdA,O,kBAKc,S;;gBALdA,O,gBAMY,O;;gBANZA,O,kBAOc,S;;gBAPdA,O,aASS,S;;gBATTA,O,aAUS,S;;gBAVTA,O,UAWM,M;;gBAXNA,O,UAYM,M;;gBAZNA,O,aAaS,S","sourcesContent":["import {\n NativeModules,\n NativeEventEmitter,\n Platform,\n EmitterSubscription,\n} 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 =\n | 'DISTRACTION_FREE_DRIVING'\n | 'DRIVING_BEHAVIOUR'\n | 'DEVICE_DISCOVERY';\nexport type WalkingService = 'WALKING_LOCATION';\nexport type OtherService = 'POINTS_OF_INTEREST';\nexport type TimelineDetectionService =\n | 'DRIVING'\n | 'CYCLING'\n | 'WALKING'\n | 'PLACES'\n | 'PUBLIC_TRANSPORT'\n | 'AUTOMATIC_IMPACT_DETECTION'\n | 'ASSISTANCE_CALL'\n | '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\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\nexport type IssueListService =\n | TimelineDetectionService\n | DrivingService\n | 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 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\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 (\n [\n MoveSdk.UNINITIALIZED,\n MoveSdk.READY,\n MoveSdk.RUNNING,\n MoveSdk.UNINITIALIZED,\n ].includes(sdkState)\n ) {\n return sdkState;\n }\n\n return MoveSdk.UNINITIALIZED;\n }\n\n static tripStateFromNative(nativeTripState: TripState): TripState {\n if (\n [\n MoveSdk.UNKNOWN,\n MoveSdk.DRIVING,\n MoveSdk.HALT,\n MoveSdk.IDLE,\n MoveSdk.IGNORED,\n ].includes(nativeTripState)\n ) {\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].includes(nativeAuthState)) {\n return nativeAuthState;\n }\n\n return MoveSdk.AUTH_UNKNOWN;\n }\n\n static async setup(\n config: MoveSdkConfig,\n auth: MoveSdkAuth,\n android: MoveSdkAndroidConfig,\n options?: MoveSdkOptions\n ): Promise<void> {\n const { timelineDetectionServices, drivingServices, walkingServices } =\n 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(\n 'MOVE SDK needs notification configuration for Android'\n );\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(\n userId,\n accessToken,\n refreshToken,\n projectId\n );\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(\n tripStateChanged: (state: TripState) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_TRIP_STATE', (event) =>\n tripStateChanged(MoveSdk.tripStateFromNative(event.state))\n );\n }\n\n static addSdkStateListener(\n sdkStateChanged: (state: SdkState) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_STATE', (event) => {\n sdkStateChanged(MoveSdk.sdkStateFromNative(event.state));\n });\n }\n\n static addAuthStateListener(\n authStateChanged: (event: AuthStateEvent) => void\n ): 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(\n errorsReceived: (errors: ErrorListType) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_ERRORS', (event) => {\n errorsReceived(event.errors);\n });\n }\n\n static addWarningsListener(\n warningsReceived: (warnings: WarningListType) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_WARNINGS', (event) => {\n warningsReceived(event.warnings);\n });\n }\n\n static addAppEventListener(\n appEventReceived: (event: string) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_APP_EVENT', (event) => {\n appEventReceived(event);\n });\n }\n\n static version(): string {\n return Platform.OS === 'android'\n ? NativeMoveSdk.getConstants().version\n : '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 getDeviceQualifier(): 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(\n 'MoveSdk.requestDrawOverlaysPermission() is Android OS only.'\n );\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(\n 'MoveSdk.requestAppIgnoringBatteryOptimization() is Android OS only.'\n );\n }\n }\n\n // **** PERMISSIONS MODULE END *****\n\n static startScanningDevices(\n sdkDevicesDetected: (state: Array<MoveSdkDevice>) => void,\n filter: MoveSdkDeviceFilter[] = ['paired'],\n uuid?: string,\n manufacturerId?: number\n ): ListenerSubscription {\n const subscription = eventEmitter.addListener(\n 'MOVE_SDK_DEVICES',\n (devices) => {\n sdkDevicesDetected(devices);\n }\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 registerDevices(devices: Array<MoveSdkDevice>) {\n NativeMoveSdk.registerDevices(devices);\n }\n\n static unregisterDevices(devices: Array<MoveSdkDevice>) {\n NativeMoveSdk.unregisterDevices(devices);\n }\n\n static addDeviceDiscoveryListener(\n onScanResult: (state: Array<MoveScanResult>) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_SCAN_RESULT', (results) => {\n onScanResult(results);\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["index.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_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","addDeviceDiscoveryListener","onScanResult","results"],"mappings":"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","sourcesContent":["import {\n NativeModules,\n NativeEventEmitter,\n Platform,\n EmitterSubscription,\n} 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 =\n | 'DISTRACTION_FREE_DRIVING'\n | 'DRIVING_BEHAVIOUR'\n | 'DEVICE_DISCOVERY';\nexport type WalkingService = 'WALKING_LOCATION';\nexport type OtherService = 'POINTS_OF_INTEREST';\nexport type TimelineDetectionService =\n | 'DRIVING'\n | 'CYCLING'\n | 'WALKING'\n | 'PLACES'\n | 'PUBLIC_TRANSPORT'\n | 'AUTOMATIC_IMPACT_DETECTION'\n | 'ASSISTANCE_CALL'\n | '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\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\nexport type IssueListService =\n | TimelineDetectionService\n | DrivingService\n | 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 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\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 (\n [\n MoveSdk.UNINITIALIZED,\n MoveSdk.READY,\n MoveSdk.RUNNING,\n MoveSdk.UNINITIALIZED,\n ].includes(sdkState)\n ) {\n return sdkState;\n }\n\n return MoveSdk.UNINITIALIZED;\n }\n\n static tripStateFromNative(nativeTripState: TripState): TripState {\n if (\n [\n MoveSdk.UNKNOWN,\n MoveSdk.DRIVING,\n MoveSdk.HALT,\n MoveSdk.IDLE,\n MoveSdk.IGNORED,\n ].includes(nativeTripState)\n ) {\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].includes(nativeAuthState)) {\n return nativeAuthState;\n }\n\n return MoveSdk.AUTH_UNKNOWN;\n }\n\n static async setup(\n config: MoveSdkConfig,\n auth: MoveSdkAuth,\n android: MoveSdkAndroidConfig,\n options?: MoveSdkOptions\n ): Promise<void> {\n const { timelineDetectionServices, drivingServices, walkingServices } =\n 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(\n 'MOVE SDK needs notification configuration for Android'\n );\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(\n userId,\n accessToken,\n refreshToken,\n projectId\n );\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(\n tripStateChanged: (state: TripState) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_TRIP_STATE', (event) =>\n tripStateChanged(MoveSdk.tripStateFromNative(event.state))\n );\n }\n\n static addTripStartListener(\n tripStartTriggered: (start: Date) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_TRIP_START', (start) =>\n\t tripStartTriggered(new Date(Number(start)))\n );\n }\n\n static addSdkStateListener(\n sdkStateChanged: (state: SdkState) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_STATE', (event) => {\n sdkStateChanged(MoveSdk.sdkStateFromNative(event.state));\n });\n }\n\n static addAuthStateListener(\n authStateChanged: (event: AuthStateEvent) => void\n ): 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(\n errorsReceived: (errors: ErrorListType) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_ERRORS', (event) => {\n errorsReceived(event.errors);\n });\n }\n\n static addWarningsListener(\n warningsReceived: (warnings: WarningListType) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_WARNINGS', (event) => {\n warningsReceived(event.warnings);\n });\n }\n\n static addAppEventListener(\n appEventReceived: (event: string) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_APP_EVENT', (event) => {\n appEventReceived(event);\n });\n }\n\n static addRemoteConfigChangeListener(\n configChangeReceived: (config: Array<IssueListService>) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_CONFIG_UPDATE', (config) => {\n\t\tconfigChangeReceived(config);\n });\n }\n\n static version(): string {\n return Platform.OS === 'android'\n ? NativeMoveSdk.getConstants().version\n : '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 getDeviceQualifier(): 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(\n 'MoveSdk.requestDrawOverlaysPermission() is Android OS only.'\n );\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(\n 'MoveSdk.requestAppIgnoringBatteryOptimization() is Android OS only.'\n );\n }\n }\n\n // **** PERMISSIONS MODULE END *****\n\n static startScanningDevices(\n sdkDevicesDetected: (state: Array<MoveSdkDevice>) => void,\n filter: MoveSdkDeviceFilter[] = ['paired'],\n uuid?: string,\n manufacturerId?: number\n ): ListenerSubscription {\n const subscription = eventEmitter.addListener(\n 'MOVE_SDK_DEVICES',\n (devices) => {\n sdkDevicesDetected(devices);\n }\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 addDeviceDiscoveryListener(\n onScanResult: (state: Array<MoveScanResult>) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('MOVE_SDK_SCAN_RESULT', (results) => {\n onScanResult(results);\n });\n }\n}\n"]}
@@ -29,6 +29,8 @@ export declare type MoveSdkDeviceDiscovery = {
29
29
  };
30
30
  export declare type MoveSdkOptions = {
31
31
  motionPermissionMandatory?: boolean;
32
+ backgroundLocationPermissionMandatory?: boolean;
33
+ useBackendConfig?: boolean;
32
34
  deviceDiscovery?: MoveSdkDeviceDiscovery;
33
35
  };
34
36
  export declare type MoveSdkAuth = {
@@ -103,11 +105,13 @@ export default class MoveSdk {
103
105
  static initiateAssistanceCall(): Promise<boolean>;
104
106
  static setAssistanceMetaData(data: string): void;
105
107
  static addTripStateListener(tripStateChanged: (state: TripState) => void): ListenerSubscription;
108
+ static addTripStartListener(tripStartTriggered: (start: Date) => void): ListenerSubscription;
106
109
  static addSdkStateListener(sdkStateChanged: (state: SdkState) => void): ListenerSubscription;
107
110
  static addAuthStateListener(authStateChanged: (event: AuthStateEvent) => void): ListenerSubscription;
108
111
  static addErrorsListener(errorsReceived: (errors: ErrorListType) => void): ListenerSubscription;
109
112
  static addWarningsListener(warningsReceived: (warnings: WarningListType) => void): ListenerSubscription;
110
113
  static addAppEventListener(appEventReceived: (event: string) => void): ListenerSubscription;
114
+ static addRemoteConfigChangeListener(configChangeReceived: (config: Array<IssueListService>) => void): ListenerSubscription;
111
115
  static version(): string;
112
116
  static finishCurrentTrip(): void;
113
117
  static ignoreCurrentTrip(): void;
@@ -122,7 +126,7 @@ export default class MoveSdk {
122
126
  static requestAppIgnoringBatteryOptimization(): void;
123
127
  static startScanningDevices(sdkDevicesDetected: (state: Array<MoveSdkDevice>) => void, filter?: MoveSdkDeviceFilter[], uuid?: string, manufacturerId?: number): ListenerSubscription;
124
128
  static getRegisteredDevices(): Promise<Array<MoveSdkDevice>>;
125
- static registerDevices(devices: Array<MoveSdkDevice>): void;
126
- static unregisterDevices(devices: Array<MoveSdkDevice>): void;
129
+ static registerDevices(devices: Array<MoveSdkDevice>): Promise<boolean>;
130
+ static unregisterDevices(devices: Array<MoveSdkDevice>): Promise<boolean>;
127
131
  static addDeviceDiscoveryListener(onScanResult: (state: Array<MoveScanResult>) => void): ListenerSubscription;
128
132
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-move-sdk",
3
- "version": "2.4.9",
3
+ "version": "2.6.0",
4
4
  "description": "React Native library for MOVE SDK",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -18,5 +18,5 @@ Pod::Spec.new do |s|
18
18
  s.source_files = "ios/**/*.{h,m,mm,swift}"
19
19
 
20
20
  s.dependency 'React'
21
- s.dependency 'DolphinMoveSDK', '2.4.2.263'
21
+ s.dependency 'DolphinMoveSDK', '2.6.0.265'
22
22
  end
package/src/index.ts CHANGED
@@ -82,6 +82,8 @@ export type MoveSdkDeviceDiscovery = {
82
82
 
83
83
  export type MoveSdkOptions = {
84
84
  motionPermissionMandatory?: boolean;
85
+ backgroundLocationPermissionMandatory?: boolean;
86
+ useBackendConfig?: boolean;
85
87
  deviceDiscovery?: MoveSdkDeviceDiscovery;
86
88
  };
87
89
 
@@ -330,6 +332,14 @@ export default class MoveSdk {
330
332
  );
331
333
  }
332
334
 
335
+ static addTripStartListener(
336
+ tripStartTriggered: (start: Date) => void
337
+ ): ListenerSubscription {
338
+ return eventEmitter.addListener('MOVE_SDK_TRIP_START', (start) =>
339
+ tripStartTriggered(new Date(Number(start)))
340
+ );
341
+ }
342
+
333
343
  static addSdkStateListener(
334
344
  sdkStateChanged: (state: SdkState) => void
335
345
  ): ListenerSubscription {
@@ -374,6 +384,14 @@ export default class MoveSdk {
374
384
  });
375
385
  }
376
386
 
387
+ static addRemoteConfigChangeListener(
388
+ configChangeReceived: (config: Array<IssueListService>) => void
389
+ ): ListenerSubscription {
390
+ return eventEmitter.addListener('MOVE_SDK_CONFIG_UPDATE', (config) => {
391
+ configChangeReceived(config);
392
+ });
393
+ }
394
+
377
395
  static version(): string {
378
396
  return Platform.OS === 'android'
379
397
  ? NativeMoveSdk.getConstants().version
@@ -470,12 +488,12 @@ export default class MoveSdk {
470
488
  return await NativeMoveSdk.getRegisteredDevices();
471
489
  }
472
490
 
473
- static registerDevices(devices: Array<MoveSdkDevice>) {
474
- NativeMoveSdk.registerDevices(devices);
491
+ static async registerDevices(devices: Array<MoveSdkDevice>): Promise<boolean> {
492
+ return await NativeMoveSdk.registerDevices(devices);
475
493
  }
476
494
 
477
- static unregisterDevices(devices: Array<MoveSdkDevice>) {
478
- NativeMoveSdk.unregisterDevices(devices);
495
+ static async unregisterDevices(devices: Array<MoveSdkDevice>): Promise<boolean> {
496
+ return await NativeMoveSdk.unregisterDevices(devices);
479
497
  }
480
498
 
481
499
  static addDeviceDiscoveryListener(