react-native-move-sdk 2.4.8 → 2.5.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.
@@ -36,6 +36,7 @@ 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"
39
40
 
40
41
  internal const val ARGUMENT_ACCESS_TOKEN = "accessToken"
41
42
  internal const val ARGUMENT_REFRESH_TOKEN = "refreshToken"
@@ -48,6 +49,7 @@ internal const val ARGUMENT_WARNING = "warnings"
48
49
  internal const val ARGUMENT_ERROR_REASON = "errorReason"
49
50
  internal const val ARGUMENT_DEVICES = "devices"
50
51
  internal const val ARGUMENT_SCAN_RESULTS = "results"
52
+ internal const val ARGUMENT_MOVE_SERVICES = "services"
51
53
 
52
54
  internal const val PROMISE_OK = "OK"
53
55
 
@@ -34,7 +34,7 @@ import kotlinx.coroutines.withContext
34
34
  class NativeMoveSdkWrapper(private val context: Context) : MoveSdk.StateListener,
35
35
  MoveSdk.InitializeListener, MoveSdk.TripStateListener, MoveSdk.AuthStateUpdateListener,
36
36
  MoveSdk.MoveLogCallback, MoveSdk.MoveErrorListener, MoveSdk.MoveWarningListener,
37
- MoveSdk.DeviceDiscoveryListener {
37
+ MoveSdk.DeviceDiscoveryListener, MoveSdk.RemoteConfigChangeListener {
38
38
 
39
39
  companion object {
40
40
 
@@ -70,6 +70,7 @@ class NativeMoveSdkWrapper(private val context: Context) : MoveSdk.StateListener
70
70
  moveSdk.setServiceWarningListener(this)
71
71
 
72
72
  moveSdk.deviceDiscoveryListener(this)
73
+ moveSdk.setRemoteConfigChangeListener(this)
73
74
 
74
75
  // Initialize notifications by default (might be overwritten by setup)
75
76
  val config: MoveSdkConfig = configRepository.loadConfig()
@@ -168,6 +169,7 @@ class NativeMoveSdkWrapper(private val context: Context) : MoveSdk.StateListener
168
169
  val featureOptions = options?.toHashMap()
169
170
  val moveOptions = try {
170
171
  val motionPermissionMandatory = featureOptions?.get("motionPermissionMandatory") as? Boolean
172
+ val useBackendConfig = featureOptions?.get("useBackendConfig") as? Boolean
171
173
  val deviceDiscovery = featureOptions?.get("deviceDiscovery") as? Map<String, Any>
172
174
  val startDelay = deviceDiscovery?.get("startDelay") as? Double
173
175
  val duration = deviceDiscovery?.get("duration") as? Double
@@ -175,6 +177,7 @@ class NativeMoveSdkWrapper(private val context: Context) : MoveSdk.StateListener
175
177
  val stopScanOnFirstDiscovered = deviceDiscovery?.get("stopScanOnFirstDiscovered") as? Boolean
176
178
  MoveOptions(
177
179
  motionPermissionRequired = motionPermissionMandatory ?: false,
180
+ useBackendConfig = useBackendConfig ?: false,
178
181
  deviceDiscovery = DeviceDiscovery(
179
182
  startDelay = startDelay?.toLong(),
180
183
  duration = duration?.toLong(),
@@ -506,6 +509,12 @@ class NativeMoveSdkWrapper(private val context: Context) : MoveSdk.StateListener
506
509
  fun stopScanningDevices() {
507
510
  deviceScanner.stopScanning()
508
511
  }
512
+
513
+ override fun onConfigChanged(config: MoveConfig) {
514
+ val data = mutableMapOf<Any, Any>()
515
+ data[ARGUMENT_MOVE_SERVICES] = config.moveDetectionServices.map { it.name().toSnakeCase() }
516
+ emitDeviceEvent(EVENT_MOVE_CONFIG_UPDATE, data)
517
+ }
509
518
  }
510
519
 
511
520
  fun List<MoveServiceFailure>.failuresToArray(): Array<Any> {
@@ -515,8 +524,13 @@ fun List<MoveServiceFailure>.failuresToArray(): Array<Any> {
515
524
  val serviceName = when(val nativeService = it.service) {
516
525
  is MoveDetectionService.Driving ->
517
526
  nativeService.drivingServices?.firstOrNull()?.name?.toSnakeCase() ?: nativeService.name().toSnakeCase()
518
- is MoveDetectionService.Walking ->
519
- nativeService.walkingServices?.firstOrNull()?.name?.toSnakeCase() ?: nativeService.name().toSnakeCase()
527
+ is MoveDetectionService.Walking ->{
528
+ if (nativeService.walkingServices?.isNotEmpty() == true) {
529
+ "WALKING_LOCATION"
530
+ } else {
531
+ nativeService.name().toSnakeCase()
532
+ }
533
+ }
520
534
  else -> nativeService.name().toSnakeCase()
521
535
  }
522
536
  map["service"] = serviceName
@@ -534,8 +548,13 @@ fun List<MoveServiceWarning>.warningsToArray(): Array<Any> {
534
548
  val serviceName = when(val nativeService = it.service) {
535
549
  is MoveDetectionService.Driving ->
536
550
  nativeService.drivingServices?.firstOrNull()?.name?.toSnakeCase() ?: nativeService.name().toSnakeCase()
537
- is MoveDetectionService.Walking ->
538
- nativeService.walkingServices?.firstOrNull()?.name?.toSnakeCase() ?: nativeService.name().toSnakeCase()
551
+ is MoveDetectionService.Walking -> {
552
+ if (nativeService.walkingServices?.isNotEmpty() == true) {
553
+ "WALKING_LOCATION"
554
+ } else {
555
+ nativeService.name().toSnakeCase()
556
+ }
557
+ }
539
558
  else -> nativeService?.name()?.toSnakeCase()
540
559
  }
541
560
  map["service"] = serviceName
@@ -68,9 +68,9 @@ 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
72
 
73
- RCT_EXTERN_METHOD(unregisterDevices: (NSArray*>)devices)
73
+ RCT_EXTERN_METHOD(unregisterDevices: (NSArray*)devices)
74
74
 
75
75
  RCT_EXTERN_METHOD(getRegisteredDevices: (RCTPromiseResolveBlock)resolve
76
76
  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
@@ -429,6 +433,7 @@ internal class MoveSDKLauncher {
429
433
  case failure = "MOVE_SDK_ERRORS"
430
434
  case devices = "MOVE_SDK_DEVICES"
431
435
  case scanResult = "MOVE_SDK_SCAN_RESULT"
436
+ case configUpdate = "MOVE_SDK_CONFIG_UPDATE"
432
437
  }
433
438
 
434
439
  private enum DefaultsKey: String {
@@ -473,6 +478,12 @@ internal class MoveSDKLauncher {
473
478
  let data = self.convert(scanResults: scanResults)
474
479
  self.delegate?.send(event: .scanResult, data: data)
475
480
  }
481
+
482
+ sdk.setRemoteConfigChangeListener { config in
483
+ let services: [String] = config.services.reduce([]) { $0 + self.convert(service: $1, base: true) }
484
+ let data = ["services": services]
485
+ self.delegate?.send(event: .configUpdate, data: data)
486
+ }
476
487
  }
477
488
 
478
489
  fileprivate func getServiceWarnings() -> [MoveSDKErrorListItem] {
@@ -199,6 +199,12 @@ class MoveSdk {
199
199
  });
200
200
  }
201
201
 
202
+ static addRemoteConfigChangeListener(configChangeReceived) {
203
+ return eventEmitter.addListener('MOVE_SDK_CONFIG_UPDATE', config => {
204
+ configChangeReceived(config);
205
+ });
206
+ }
207
+
202
208
  static version() {
203
209
  return _reactNative.Platform.OS === 'android' ? NativeMoveSdk.getConstants().version : 'Unknown';
204
210
  }
@@ -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","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 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 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 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"]}
@@ -190,6 +190,12 @@ export default class MoveSdk {
190
190
  });
191
191
  }
192
192
 
193
+ static addRemoteConfigChangeListener(configChangeReceived) {
194
+ return eventEmitter.addListener('MOVE_SDK_CONFIG_UPDATE', config => {
195
+ configChangeReceived(config);
196
+ });
197
+ }
198
+
193
199
  static version() {
194
200
  return Platform.OS === 'android' ? NativeMoveSdk.getConstants().version : 'Unknown';
195
201
  }
@@ -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","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 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 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 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"]}
@@ -29,6 +29,7 @@ export declare type MoveSdkDeviceDiscovery = {
29
29
  };
30
30
  export declare type MoveSdkOptions = {
31
31
  motionPermissionMandatory?: boolean;
32
+ useBackendConfig?: boolean;
32
33
  deviceDiscovery?: MoveSdkDeviceDiscovery;
33
34
  };
34
35
  export declare type MoveSdkAuth = {
@@ -108,6 +109,7 @@ export default class MoveSdk {
108
109
  static addErrorsListener(errorsReceived: (errors: ErrorListType) => void): ListenerSubscription;
109
110
  static addWarningsListener(warningsReceived: (warnings: WarningListType) => void): ListenerSubscription;
110
111
  static addAppEventListener(appEventReceived: (event: string) => void): ListenerSubscription;
112
+ static addRemoteConfigChangeListener(configChangeReceived: (config: Array<IssueListService>) => void): ListenerSubscription;
111
113
  static version(): string;
112
114
  static finishCurrentTrip(): void;
113
115
  static ignoreCurrentTrip(): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-move-sdk",
3
- "version": "2.4.8",
3
+ "version": "2.5.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.5.0.264'
22
22
  end
package/src/index.ts CHANGED
@@ -82,6 +82,7 @@ export type MoveSdkDeviceDiscovery = {
82
82
 
83
83
  export type MoveSdkOptions = {
84
84
  motionPermissionMandatory?: boolean;
85
+ useBackendConfig?: boolean;
85
86
  deviceDiscovery?: MoveSdkDeviceDiscovery;
86
87
  };
87
88
 
@@ -374,6 +375,14 @@ export default class MoveSdk {
374
375
  });
375
376
  }
376
377
 
378
+ static addRemoteConfigChangeListener(
379
+ configChangeReceived: (config: Array<IssueListService>) => void
380
+ ): ListenerSubscription {
381
+ return eventEmitter.addListener('MOVE_SDK_CONFIG_UPDATE', (config) => {
382
+ configChangeReceived(config);
383
+ });
384
+ }
385
+
377
386
  static version(): string {
378
387
  return Platform.OS === 'android'
379
388
  ? NativeMoveSdk.getConstants().version