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