react-native-move-sdk 2.6.9 → 2.7.1-alpha
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 +37 -2
- package/android/src/main/java/in/dolph/move/sdk/NativeMoveSdkWrapper.kt +24 -9
- package/ios/NativeModule/MoveSdk.swift +35 -12
- package/lib/commonjs/MoveSdk.js +363 -0
- package/lib/commonjs/MoveSdk.js.map +1 -0
- package/lib/commonjs/components/LazyMoveSdk.js +99 -0
- package/lib/commonjs/components/LazyMoveSdk.js.map +1 -0
- package/lib/commonjs/index.js +28 -325
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/MoveSdk.js +352 -0
- package/lib/module/MoveSdk.js.map +1 -0
- package/lib/module/components/LazyMoveSdk.js +80 -0
- package/lib/module/components/LazyMoveSdk.js.map +1 -0
- package/lib/module/index.js +3 -328
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/MoveSdk.d.ts +136 -0
- package/lib/typescript/components/LazyMoveSdk.d.ts +7 -0
- package/lib/typescript/index.d.ts +3 -134
- package/package.json +12 -9
- package/react-native-move-sdk.podspec +1 -1
- package/src/MoveSdk.ts +450 -0
- package/src/components/LazyMoveSdk.tsx +81 -0
- package/src/index.ts +3 -514
package/android/build.gradle
CHANGED
|
@@ -142,7 +142,7 @@ dependencies {
|
|
|
142
142
|
// noinspection GradleDynamicVersion
|
|
143
143
|
|
|
144
144
|
implementation "com.facebook.react:react-native:+"
|
|
145
|
-
api "io.dolphin.move:move-sdk:2.6.9.
|
|
145
|
+
api "io.dolphin.move:move-sdk:2.6.9.83"
|
|
146
146
|
|
|
147
147
|
testImplementation 'junit:junit:4.13.2'
|
|
148
148
|
testImplementation "androidx.test:core:1.4.0"
|
|
@@ -12,6 +12,7 @@ import android.util.Log
|
|
|
12
12
|
import androidx.annotation.RequiresApi
|
|
13
13
|
import com.facebook.react.bridge.ActivityEventListener
|
|
14
14
|
import com.facebook.react.bridge.Arguments
|
|
15
|
+
import com.facebook.react.bridge.Callback
|
|
15
16
|
import com.facebook.react.bridge.Promise
|
|
16
17
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
17
18
|
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
@@ -24,6 +25,9 @@ import com.facebook.react.modules.core.DeviceEventManagerModule
|
|
|
24
25
|
import io.dolphin.move.MoveSdk
|
|
25
26
|
import io.dolphin.move.MoveServiceFailure
|
|
26
27
|
import io.dolphin.move.MoveServiceWarning
|
|
28
|
+
import java.util.Timer
|
|
29
|
+
import java.util.TimerTask
|
|
30
|
+
import java.util.UUID
|
|
27
31
|
|
|
28
32
|
internal const val EVENT_INIT_ERROR = "MoveSdk-InitError"
|
|
29
33
|
internal const val EVENT_MOVE_STATE = "MoveSdk-State"
|
|
@@ -70,6 +74,7 @@ class MoveSdkModule(context: ReactApplicationContext) : ReactContextBaseJavaModu
|
|
|
70
74
|
private val reactContext: ReactApplicationContext = context
|
|
71
75
|
|
|
72
76
|
private val nativeSdkWrapper = NativeMoveSdkWrapper.getInstance(reactContext)
|
|
77
|
+
private val timersHolder = mutableMapOf<String, Timer?>()
|
|
73
78
|
|
|
74
79
|
init {
|
|
75
80
|
nativeSdkWrapper.applyDelegate(this)
|
|
@@ -309,8 +314,7 @@ class MoveSdkModule(context: ReactApplicationContext) : ReactContextBaseJavaModu
|
|
|
309
314
|
|
|
310
315
|
@ReactMethod
|
|
311
316
|
fun isAuthValid(promise: Promise) {
|
|
312
|
-
|
|
313
|
-
promise.resolve(isAuthValid)
|
|
317
|
+
nativeSdkWrapper.isAuthValid(promise)
|
|
314
318
|
}
|
|
315
319
|
|
|
316
320
|
@ReactMethod
|
|
@@ -358,6 +362,37 @@ class MoveSdkModule(context: ReactApplicationContext) : ReactContextBaseJavaModu
|
|
|
358
362
|
nativeSdkWrapper.stopScanningDevices()
|
|
359
363
|
}
|
|
360
364
|
|
|
365
|
+
@ReactMethod
|
|
366
|
+
fun setTimer(delay: Int? = 0, key: String, callback: Callback) {
|
|
367
|
+
try {
|
|
368
|
+
val timer = timersHolder[key]
|
|
369
|
+
timer?.cancel()
|
|
370
|
+
Timer().also {
|
|
371
|
+
timersHolder[key] = it
|
|
372
|
+
it.schedule(
|
|
373
|
+
object : TimerTask() {
|
|
374
|
+
override fun run() {
|
|
375
|
+
callback.invoke()
|
|
376
|
+
}
|
|
377
|
+
},
|
|
378
|
+
delay?.toLong() ?: 0L,
|
|
379
|
+
)
|
|
380
|
+
}
|
|
381
|
+
} catch (e: Exception) {
|
|
382
|
+
// Do nothing
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
@ReactMethod
|
|
387
|
+
fun cancelTimer(key: String?) {
|
|
388
|
+
key ?: return
|
|
389
|
+
try {
|
|
390
|
+
timersHolder[key]?.cancel()
|
|
391
|
+
} catch (e: Exception) {
|
|
392
|
+
Log.i("cancelTimer", "error: ${e.message}")
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
|
|
361
396
|
// region PERMISSIONS MODULE
|
|
362
397
|
@SuppressLint("NewApi")
|
|
363
398
|
override fun onActivityResult(
|
|
@@ -214,8 +214,8 @@ class NativeMoveSdkWrapper(private val context: Context) : MoveSdk.StateListener
|
|
|
214
214
|
projectId = projectId.toLong(),
|
|
215
215
|
)
|
|
216
216
|
MoveSdk.get()?.let {
|
|
217
|
-
it.tripNotification(
|
|
218
|
-
it.recognitionNotification(
|
|
217
|
+
it.tripNotification(tripNotification.toMoveNotification(context))
|
|
218
|
+
it.recognitionNotification(recognitionNotification.toMoveNotification(context))
|
|
219
219
|
it.walkingLocationNotification(walkingNotification.toMoveNotification(context))
|
|
220
220
|
}
|
|
221
221
|
val moveConfig = MoveConfig(timelineDetectionServicesToUse)
|
|
@@ -310,8 +310,13 @@ class NativeMoveSdkWrapper(private val context: Context) : MoveSdk.StateListener
|
|
|
310
310
|
}
|
|
311
311
|
|
|
312
312
|
fun getState(promise: Promise) {
|
|
313
|
-
|
|
314
|
-
|
|
313
|
+
mainScope.launch {
|
|
314
|
+
val state: MoveSdkState
|
|
315
|
+
withContext(ioContext) {
|
|
316
|
+
state = MoveSdk.get()?.getSdkState() ?: MoveSdkState.Uninitialised
|
|
317
|
+
}
|
|
318
|
+
promise.resolve(state.toString().toSnakeCase())
|
|
319
|
+
}
|
|
315
320
|
}
|
|
316
321
|
|
|
317
322
|
fun getTripState(promise: Promise) {
|
|
@@ -411,9 +416,13 @@ class NativeMoveSdkWrapper(private val context: Context) : MoveSdk.StateListener
|
|
|
411
416
|
}
|
|
412
417
|
|
|
413
418
|
fun getAuthState(promise: Promise) {
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
419
|
+
mainScope.launch {
|
|
420
|
+
val state: MoveAuthState
|
|
421
|
+
withContext(ioContext) {
|
|
422
|
+
state = MoveSdk.get()?.getAuthState() ?: MoveAuthState.UNKNOWN
|
|
423
|
+
}
|
|
424
|
+
promise.resolve(state.toString())
|
|
425
|
+
}
|
|
417
426
|
}
|
|
418
427
|
|
|
419
428
|
override fun onAuthStateUpdate(state: MoveAuthState) {
|
|
@@ -467,8 +476,14 @@ class NativeMoveSdkWrapper(private val context: Context) : MoveSdk.StateListener
|
|
|
467
476
|
return MoveSdk.get()?.getDeviceQualifier()
|
|
468
477
|
}
|
|
469
478
|
|
|
470
|
-
fun isAuthValid(
|
|
471
|
-
|
|
479
|
+
fun isAuthValid(promise: Promise) {
|
|
480
|
+
mainScope.launch {
|
|
481
|
+
val state: MoveAuthState
|
|
482
|
+
withContext(ioContext) {
|
|
483
|
+
state = MoveSdk.get()?.getAuthState() ?: MoveAuthState.UNKNOWN
|
|
484
|
+
}
|
|
485
|
+
promise.resolve(state is MoveAuthState.VALID)
|
|
486
|
+
}
|
|
472
487
|
}
|
|
473
488
|
|
|
474
489
|
override fun onScanResult(results: List<MoveScanResult>) {
|
|
@@ -5,10 +5,10 @@ import DolphinMoveSDK
|
|
|
5
5
|
|
|
6
6
|
/// Move SDK Initialization singleton delegate.
|
|
7
7
|
internal protocol MoveSDKLauncherDelegate: AnyObject {
|
|
8
|
-
/// Send event
|
|
8
|
+
/// Send event to observer.
|
|
9
9
|
/// - Parameters:
|
|
10
|
-
/// - event:
|
|
11
|
-
/// - data:
|
|
10
|
+
/// - event: Event key.
|
|
11
|
+
/// - data: Event object.
|
|
12
12
|
func send(event: MoveSDKLauncher.Event, data: Any)
|
|
13
13
|
}
|
|
14
14
|
|
|
@@ -635,7 +635,16 @@ internal class MoveSDKLauncher {
|
|
|
635
635
|
/// Launcher delegate.
|
|
636
636
|
///
|
|
637
637
|
/// The delegate is the allocated react native SDK plugin.
|
|
638
|
-
weak var delegate: MoveSDKLauncherDelegate?
|
|
638
|
+
weak var delegate: MoveSDKLauncherDelegate? {
|
|
639
|
+
didSet {
|
|
640
|
+
for (key, value) in pendingEvents {
|
|
641
|
+
delegate?.send(event: key, data: value)
|
|
642
|
+
}
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
/// Pending events triggered before event observer registered.
|
|
647
|
+
private var pendingEvents: [Event: Any] = [:]
|
|
639
648
|
|
|
640
649
|
/// Shared singleton.
|
|
641
650
|
static let shared = MoveSDKLauncher()
|
|
@@ -647,44 +656,58 @@ internal class MoveSDKLauncher {
|
|
|
647
656
|
init() {
|
|
648
657
|
sdk.setSDKStateListener { state in
|
|
649
658
|
let value = "\(state)".uppercased()
|
|
650
|
-
self.
|
|
659
|
+
self.send(event: .sdkState, data: ["state": "\(value)"])
|
|
651
660
|
}
|
|
652
661
|
|
|
653
662
|
sdk.setTripStateListener { state in
|
|
654
663
|
let value = "\(state)".uppercased()
|
|
655
|
-
self.
|
|
664
|
+
self.send(event: .tripState, data: ["state": "\(value)"])
|
|
656
665
|
}
|
|
657
666
|
|
|
658
667
|
sdk.setTripStartListener { date in
|
|
659
|
-
self.
|
|
668
|
+
self.send(event: .tripStart, data: Int64(date.timeIntervalSince1970 * 1000.0))
|
|
660
669
|
}
|
|
661
670
|
|
|
662
671
|
sdk.setAuthStateUpdateListener { state in
|
|
663
672
|
let value = "\(state)".uppercased()
|
|
664
|
-
self.
|
|
673
|
+
self.send(event: .authState, data: ["state": "\(value)"])
|
|
665
674
|
}
|
|
666
675
|
|
|
667
676
|
sdk.setServiceFailureListener { failures in
|
|
668
677
|
let data: [String: Any] = ["errors": self.convert(failures: failures)]
|
|
669
|
-
self.
|
|
678
|
+
self.send(event: .failure, data: data)
|
|
670
679
|
}
|
|
671
680
|
|
|
672
681
|
sdk.setServiceWarningListener { warnings in
|
|
673
682
|
let data: [String: Any] = ["warnings": self.convert(warnings: warnings)]
|
|
674
|
-
self.
|
|
683
|
+
self.send(event: .warning, data: data)
|
|
675
684
|
}
|
|
676
685
|
|
|
677
686
|
sdk.setDeviceDiscoveryListener { scanResults in
|
|
678
687
|
let data = self.convert(scanResults: scanResults)
|
|
679
|
-
self.
|
|
688
|
+
self.send(event: .scanResult, data: data)
|
|
680
689
|
}
|
|
681
690
|
|
|
682
691
|
sdk.setRemoteConfigChangeListener { config in
|
|
683
692
|
let services: [String] = config.services.reduce([]) { $0 + self.convert(service: $1, base: true) }
|
|
684
693
|
let data = ["services": services]
|
|
685
|
-
self.
|
|
694
|
+
self.send(event: .configUpdate, data: data)
|
|
686
695
|
}
|
|
687
696
|
}
|
|
697
|
+
|
|
698
|
+
/// Send event to observer.
|
|
699
|
+
/// - Parameters:
|
|
700
|
+
/// - event: Event key.
|
|
701
|
+
/// - data: Event object.
|
|
702
|
+
///
|
|
703
|
+
/// Events are buffered when there is no observer.
|
|
704
|
+
func send(event: Event, data: Any) {
|
|
705
|
+
if let delegate {
|
|
706
|
+
delegate.send(event: event, data: data)
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
pendingEvents[event] = data
|
|
710
|
+
}
|
|
688
711
|
|
|
689
712
|
/// Wrapper for `MoveSDK.getServiceWarnings()`.
|
|
690
713
|
/// - Returns: Serialized SDK service warnings.
|
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
|
|
10
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
11
|
+
|
|
12
|
+
const {
|
|
13
|
+
MoveSdk: NativeMoveSdk
|
|
14
|
+
} = _reactNative.NativeModules;
|
|
15
|
+
const eventEmitter = new _reactNative.NativeEventEmitter(NativeMoveSdk);
|
|
16
|
+
|
|
17
|
+
class MoveSdk {
|
|
18
|
+
static sdkStateFromNative(sdkState) {
|
|
19
|
+
if ([MoveSdk.UNINITIALIZED, MoveSdk.READY, MoveSdk.RUNNING, MoveSdk.UNINITIALIZED].includes(sdkState)) {
|
|
20
|
+
return sdkState;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return MoveSdk.UNINITIALIZED;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
static tripStateFromNative(nativeTripState) {
|
|
27
|
+
if ([MoveSdk.UNKNOWN, MoveSdk.DRIVING, MoveSdk.HALT, MoveSdk.IDLE, MoveSdk.IGNORED].includes(nativeTripState)) {
|
|
28
|
+
return nativeTripState;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return MoveSdk.UNKNOWN;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
static authStateFromNative(nativeAuthState) {
|
|
35
|
+
if ([MoveSdk.AUTH_VALID, MoveSdk.AUTH_EXPIRED, MoveSdk.AUTH_INVALID].includes(nativeAuthState)) {
|
|
36
|
+
return nativeAuthState;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return MoveSdk.AUTH_UNKNOWN;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
static async setup(config, auth, android, options) {
|
|
43
|
+
const {
|
|
44
|
+
timelineDetectionServices,
|
|
45
|
+
drivingServices,
|
|
46
|
+
walkingServices
|
|
47
|
+
} = config;
|
|
48
|
+
const {
|
|
49
|
+
userId,
|
|
50
|
+
projectId,
|
|
51
|
+
accessToken,
|
|
52
|
+
refreshToken
|
|
53
|
+
} = auth;
|
|
54
|
+
let platformParams = [];
|
|
55
|
+
|
|
56
|
+
if (_reactNative.Platform.OS === 'android') {
|
|
57
|
+
const {
|
|
58
|
+
notifications
|
|
59
|
+
} = android;
|
|
60
|
+
const {
|
|
61
|
+
tripNotification,
|
|
62
|
+
recognitionNotification
|
|
63
|
+
} = notifications;
|
|
64
|
+
|
|
65
|
+
if (!tripNotification || !recognitionNotification) {
|
|
66
|
+
throw new Error('MOVE SDK needs notification configuration for Android');
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
platformParams = [recognitionNotification.title, recognitionNotification.text, recognitionNotification.channel.id, recognitionNotification.channel.name, recognitionNotification.channel.description, tripNotification.title, tripNotification.text, tripNotification.channel.id, tripNotification.channel.name, tripNotification.channel.description];
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return await NativeMoveSdk.setup(userId, accessToken, refreshToken, projectId, // Config
|
|
73
|
+
timelineDetectionServices, drivingServices, walkingServices, options, // Platform config
|
|
74
|
+
...platformParams);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
static allowMockLocations(allowMockLocations) {
|
|
78
|
+
NativeMoveSdk.allowMockLocations(allowMockLocations);
|
|
79
|
+
}
|
|
80
|
+
/* Deprecated */
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
static init() {
|
|
84
|
+
NativeMoveSdk.init();
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
static resolveError() {
|
|
88
|
+
NativeMoveSdk.resolveError();
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
static async updateAuth(auth) {
|
|
92
|
+
const {
|
|
93
|
+
userId,
|
|
94
|
+
projectId,
|
|
95
|
+
accessToken,
|
|
96
|
+
refreshToken
|
|
97
|
+
} = auth;
|
|
98
|
+
return await NativeMoveSdk.updateAuth(userId, accessToken, refreshToken, projectId);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
static startAutomaticDetection() {
|
|
102
|
+
NativeMoveSdk.startAutomaticDetection();
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
static stopAutomaticDetection() {
|
|
106
|
+
NativeMoveSdk.stopAutomaticDetection();
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
static forceTripRecognition() {
|
|
110
|
+
let duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 60000;
|
|
111
|
+
NativeMoveSdk.forceTripRecognition(duration);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
static keepInForeground(enabled) {
|
|
115
|
+
if (_reactNative.Platform.OS === 'android') {
|
|
116
|
+
NativeMoveSdk.keepInForeground(enabled);
|
|
117
|
+
} else {
|
|
118
|
+
console.warn('MoveSdk.keepInForeground() is Android OS only.');
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
static keepActive(enabled) {
|
|
123
|
+
if (_reactNative.Platform.OS === 'android') {
|
|
124
|
+
NativeMoveSdk.keepActive(enabled);
|
|
125
|
+
} else {
|
|
126
|
+
console.warn('MoveSdk.keepActive() is Android OS only.');
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
static async synchronizeUserData() {
|
|
131
|
+
return await NativeMoveSdk.synchronizeUserData();
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
static async getAuthState() {
|
|
135
|
+
const authState = await NativeMoveSdk.getAuthState();
|
|
136
|
+
return MoveSdk.authStateFromNative(authState);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
static async getState() {
|
|
140
|
+
const state = await NativeMoveSdk.getState();
|
|
141
|
+
return MoveSdk.sdkStateFromNative(state);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
static async getTripState() {
|
|
145
|
+
const tripState = await NativeMoveSdk.getTripState();
|
|
146
|
+
return MoveSdk.tripStateFromNative(tripState);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
static async getErrors() {
|
|
150
|
+
return await NativeMoveSdk.getErrors();
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
static async getWarnings() {
|
|
154
|
+
return await NativeMoveSdk.getWarnings();
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
static async initiateAssistanceCall() {
|
|
158
|
+
return await NativeMoveSdk.initiateAssistanceCall();
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
static setAssistanceMetaData(data) {
|
|
162
|
+
NativeMoveSdk.setAssistanceMetaData(data);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
static addTripStateListener(tripStateChanged) {
|
|
166
|
+
return eventEmitter.addListener('MOVE_SDK_TRIP_STATE', event => tripStateChanged(MoveSdk.tripStateFromNative(event.state)));
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
static addTripStartListener(tripStartTriggered) {
|
|
170
|
+
return eventEmitter.addListener('MOVE_SDK_TRIP_START', start => tripStartTriggered(new Date(Number(start))));
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
static addSdkStateListener(sdkStateChanged) {
|
|
174
|
+
return eventEmitter.addListener('MOVE_SDK_STATE', event => {
|
|
175
|
+
sdkStateChanged(MoveSdk.sdkStateFromNative(event.state));
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
static addAuthStateListener(authStateChanged) {
|
|
180
|
+
return eventEmitter.addListener('MOVE_SDK_AUTH_STATE', event => {
|
|
181
|
+
const transformedEvent = { ...event,
|
|
182
|
+
state: MoveSdk.authStateFromNative(event.state)
|
|
183
|
+
};
|
|
184
|
+
authStateChanged(transformedEvent);
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
static addErrorsListener(errorsReceived) {
|
|
189
|
+
return eventEmitter.addListener('MOVE_SDK_ERRORS', event => {
|
|
190
|
+
errorsReceived(event.errors);
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
static addWarningsListener(warningsReceived) {
|
|
195
|
+
return eventEmitter.addListener('MOVE_SDK_WARNINGS', event => {
|
|
196
|
+
warningsReceived(event.warnings);
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
static addAppEventListener(appEventReceived) {
|
|
201
|
+
return eventEmitter.addListener('MOVE_SDK_APP_EVENT', event => {
|
|
202
|
+
appEventReceived(event);
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
static addRemoteConfigChangeListener(configChangeReceived) {
|
|
207
|
+
return eventEmitter.addListener('MOVE_SDK_CONFIG_UPDATE', config => {
|
|
208
|
+
configChangeReceived(config);
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
static version() {
|
|
213
|
+
return _reactNative.Platform.OS === 'android' ? NativeMoveSdk.getConstants().version : 'Unknown';
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
static finishCurrentTrip() {
|
|
217
|
+
NativeMoveSdk.finishCurrentTrip();
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
static ignoreCurrentTrip() {
|
|
221
|
+
NativeMoveSdk.ignoreCurrentTrip();
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
static requestMotionPermission() {
|
|
225
|
+
if (_reactNative.Platform.OS === 'ios') {
|
|
226
|
+
NativeMoveSdk.requestMotionPermission();
|
|
227
|
+
} else {
|
|
228
|
+
console.warn('MoveSdk.requestMotionPermission() is iOS only.');
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
static async shutdown() {
|
|
233
|
+
let force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
234
|
+
return await NativeMoveSdk.shutdown(force);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
static async getDeviceQualifier() {
|
|
238
|
+
return NativeMoveSdk.getDeviceQualifier();
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
static async geocode(latitude, longitude) {
|
|
242
|
+
return await NativeMoveSdk.geocode(latitude, longitude);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
static async isAuthValid() {
|
|
246
|
+
return await NativeMoveSdk.isAuthValid();
|
|
247
|
+
} // **** PERMISSIONS MODULE START *****
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
static async canDrawOverlays() {
|
|
251
|
+
return await NativeMoveSdk.canDrawOverlays();
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
static requestDrawOverlaysPermission() {
|
|
255
|
+
if (_reactNative.Platform.OS === 'android') {
|
|
256
|
+
NativeMoveSdk.requestDrawOverlaysPermission();
|
|
257
|
+
} else {
|
|
258
|
+
console.warn('MoveSdk.requestDrawOverlaysPermission() is Android OS only.');
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
static async isAppIgnoringBatteryOptimization() {
|
|
263
|
+
return await NativeMoveSdk.isAppIgnoringBatteryOptimization();
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
static requestAppIgnoringBatteryOptimization() {
|
|
267
|
+
if (_reactNative.Platform.OS === 'android') {
|
|
268
|
+
NativeMoveSdk.requestAppIgnoringBatteryOptimization();
|
|
269
|
+
} else {
|
|
270
|
+
console.warn('MoveSdk.requestAppIgnoringBatteryOptimization() is Android OS only.');
|
|
271
|
+
}
|
|
272
|
+
} // **** PERMISSIONS MODULE END *****
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
static startScanningDevices(sdkDevicesDetected) {
|
|
276
|
+
let filter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ['paired'];
|
|
277
|
+
let uuid = arguments.length > 2 ? arguments[2] : undefined;
|
|
278
|
+
let manufacturerId = arguments.length > 3 ? arguments[3] : undefined;
|
|
279
|
+
const subscription = eventEmitter.addListener('MOVE_SDK_DEVICES', devices => {
|
|
280
|
+
sdkDevicesDetected(devices);
|
|
281
|
+
});
|
|
282
|
+
const subscriptionRemove = subscription.remove;
|
|
283
|
+
|
|
284
|
+
subscription.remove = () => {
|
|
285
|
+
NativeMoveSdk.stopScanningDevices();
|
|
286
|
+
subscriptionRemove();
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
NativeMoveSdk.startScanningDevices(filter, uuid, manufacturerId !== null && manufacturerId !== void 0 ? manufacturerId : -1);
|
|
290
|
+
return subscription;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
static async getRegisteredDevices() {
|
|
294
|
+
return await NativeMoveSdk.getRegisteredDevices();
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
static async registerDevices(devices) {
|
|
298
|
+
return await NativeMoveSdk.registerDevices(devices);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
static async unregisterDevices(devices) {
|
|
302
|
+
return await NativeMoveSdk.unregisterDevices(devices);
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
static requestBluetoothAlwaysUsagePermission() {
|
|
306
|
+
NativeMoveSdk.requestBluetoothAlwaysUsagePermission();
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
static addDeviceDiscoveryListener(onScanResult) {
|
|
310
|
+
return eventEmitter.addListener('MOVE_SDK_SCAN_RESULT', results => {
|
|
311
|
+
onScanResult(results);
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
static setTimer(callback) {
|
|
316
|
+
let delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 60000;
|
|
317
|
+
|
|
318
|
+
if (_reactNative.Platform.OS === 'android') {
|
|
319
|
+
const key = Date.now().toString();
|
|
320
|
+
NativeMoveSdk.setTimer(delay, key, callback);
|
|
321
|
+
return key;
|
|
322
|
+
} else {
|
|
323
|
+
console.warn('MoveSdk.setTimer() is Android OS only.');
|
|
324
|
+
return '';
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
static cancelTimer(key) {
|
|
329
|
+
if (_reactNative.Platform.OS === 'android') {
|
|
330
|
+
NativeMoveSdk.cancelTimer(key);
|
|
331
|
+
} else {
|
|
332
|
+
console.warn('MoveSdk.cancelTimer() is Android OS only.');
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
exports.default = MoveSdk;
|
|
339
|
+
|
|
340
|
+
_defineProperty(MoveSdk, "READY", 'READY');
|
|
341
|
+
|
|
342
|
+
_defineProperty(MoveSdk, "RUNNING", 'RUNNING');
|
|
343
|
+
|
|
344
|
+
_defineProperty(MoveSdk, "UNINITIALIZED", 'UNINITIALIZED');
|
|
345
|
+
|
|
346
|
+
_defineProperty(MoveSdk, "AUTH_EXPIRED", 'EXPIRED');
|
|
347
|
+
|
|
348
|
+
_defineProperty(MoveSdk, "AUTH_VALID", 'VALID');
|
|
349
|
+
|
|
350
|
+
_defineProperty(MoveSdk, "AUTH_UNKNOWN", 'UNKNOWN');
|
|
351
|
+
|
|
352
|
+
_defineProperty(MoveSdk, "AUTH_INVALID", 'INVALID');
|
|
353
|
+
|
|
354
|
+
_defineProperty(MoveSdk, "UNKNOWN", 'UNKNOWN');
|
|
355
|
+
|
|
356
|
+
_defineProperty(MoveSdk, "DRIVING", 'DRIVING');
|
|
357
|
+
|
|
358
|
+
_defineProperty(MoveSdk, "HALT", 'HALT');
|
|
359
|
+
|
|
360
|
+
_defineProperty(MoveSdk, "IDLE", 'IDLE');
|
|
361
|
+
|
|
362
|
+
_defineProperty(MoveSdk, "IGNORED", 'IGNORED');
|
|
363
|
+
//# sourceMappingURL=MoveSdk.js.map
|
|
@@ -0,0 +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"],"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 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"]}
|