react-native-move-sdk 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +159 -0
- package/android/.project +17 -0
- package/android/build.gradle +145 -0
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +5 -0
- package/android/gradle.properties +4 -0
- package/android/gradlew +183 -0
- package/android/gradlew.bat +100 -0
- package/android/src/main/AndroidManifest.xml +3 -0
- package/android/src/main/java/in/dolph/move/sdk/MoveNotificationConfig.kt +41 -0
- package/android/src/main/java/in/dolph/move/sdk/MoveSdkConfig.kt +18 -0
- package/android/src/main/java/in/dolph/move/sdk/MoveSdkModule.kt +293 -0
- package/android/src/main/java/in/dolph/move/sdk/MoveSdkPackage.kt +19 -0
- package/android/src/main/java/in/dolph/move/sdk/MoveSdkRepository.kt +194 -0
- package/android/src/main/java/in/dolph/move/sdk/NativeMoveSdkWrapper.kt +305 -0
- package/android/src/main/res/drawable-anydpi-v24/ic_notification.xml +13 -0
- package/android/src/main/res/drawable-hdpi/ic_notification.png +0 -0
- package/android/src/main/res/drawable-mdpi/ic_notification.png +0 -0
- package/android/src/main/res/drawable-xhdpi/ic_notification.png +0 -0
- package/android/src/main/res/drawable-xxhdpi/ic_notification.png +0 -0
- package/android/src/main/res/values/strings.xml +9 -0
- package/android/src/main/strings.xml +0 -0
- package/ios/MoveSdk-Bridging-Header.h +2 -0
- package/ios/MoveSdk.xcodeproj/project.pbxproj +289 -0
- package/ios/MoveSdk.xcodeproj/project.xcworkspace/contents.xcworkspacedata +4 -0
- package/ios/MoveSdk.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/ios/NativeModule/DolphinSdk.h +58 -0
- package/ios/NativeModule/DolphinSdk.swift +353 -0
- package/ios/NativeModule/DolphinSdkDemoReactNative-Bridging-Header.h +8 -0
- package/lib/commonjs/index.js +280 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/module/index.js +269 -0
- package/lib/module/index.js.map +1 -0
- package/lib/typescript/index.d.ts +98 -0
- package/package.json +135 -0
- package/react-native-move-sdk.podspec +20 -0
- package/src/index.ts +407 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["DolphinSdk","NativeMoveSdk","NativeModules","eventEmitter","NativeEventEmitter","MoveSdk","sdkStateFromNative","nativeSdkState","stateString","toLowerCase","includes","substring","indexOf","UNINITIALIZED","READY","RUNNING","ERROR","tripStateFromNative","nativeTripState","state","UNKNOWN","DRIVING","HALT","IDLE","IGNORED","authStateFromNative","nativeAuthState","AUTH_VALID","AUTH_EXPIRED","configurationErrorFromNative","nativeInitError","initialize","config","auth","android","timelineDetectionServices","drivingServices","walkingServices","otherServices","contractId","productId","accessToken","refreshToken","platformParams","Platform","OS","notifications","allowMockLocations","tripNotification","recognitionNotification","Error","title","text","channel","id","name","description","catch","e","message","resolveError","updateAuth","startAutomaticDetection","forceTripRecognition","keepInForeground","enabled","console","warn","keepActive","stopAutomaticDetection","synchronizeUserData","shutdown","getAuthState","Promise","resolve","_reject","then","nativeState","getState","getTripState","addTripStateListener","tripStateChanged","addListener","event","addSDKStateListener","sdkStateChanged","transformedEvent","addInitErrorListener","initErrorReceived","error","addAuthStateListener","authStateChanged","addAppEventListener","appEventReceived","version","getConstants","finishCurrentTrip","ignoreCurrentTrip","canDrawOverlays","result","requestDrawOverlaysPermission","isAppIgnoringBatteryOptimization","requestAppIgnoringBatteryOptimization"],"mappings":"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","sourcesContent":["import {\n NativeModules,\n NativeEventEmitter,\n Platform,\n EmitterSubscription,\n} from 'react-native';\n\nexport type AndroidSdkState = 'Error' | 'Uninitialised' | 'Ready' | 'Running';\nexport type SdkState = 'error' | 'uninitialized' | 'ready' | 'running';\n\nexport type NativeSdkState = AndroidSdkState | SdkState;\n\nexport type TripState = 'unknown' | 'driving' | 'halt' | 'idle' | 'ignored';\nexport type AuthState = 'unknown' | 'valid' | 'expired';\n\nexport type AndroidTripState =\n | 'UNKNOWN'\n | 'DRIVING'\n | 'HALT'\n | 'IDLE'\n | 'IGNORED';\n\nexport type NativeTripState = AndroidTripState | TripState;\n\nexport type AndroidAuthState = 'UNKNOWN' | 'VALID' | 'EXPIRED';\nexport type IosAuthState = 'unknown' | 'valid' | 'expired';\nexport type NativeAuthState = AndroidAuthState | IosAuthState;\n\nexport type DrivingService = 'DistractionFreeDriving' | 'DrivingBehaviour';\nexport type WalkingService = 'Location';\nexport type OtherService = 'PointsOfInterest';\nexport type TimelineDetectionService =\n | 'DRIVING'\n | 'BICYCLE'\n | 'WALKING'\n | 'PUBLIC_TRANSPORT';\nexport type MoveSdkConfig = {\n timelineDetectionServices: TimelineDetectionService[];\n drivingServices: DrivingService[];\n walkingServices: WalkingService[];\n otherServices: OtherService[];\n};\n\nexport type MoveSdkAuth = {\n contractId: string;\n accessToken: string;\n refreshToken: string;\n productId: 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 allowMockLocations: boolean;\n};\n\nexport type ListenerSubscription = EmitterSubscription;\n\nexport type ConfigurationError =\n | 'authinvalid'\n | 'configmismatch'\n | 'serviceunreachable';\n\nexport type IosConfigurationError =\n | 'serviceUnreachable'\n | 'authInvalid'\n | 'configMismatch';\n\nexport type AndroidConfigurationError =\n | 'ServiceUnreachable'\n | 'AuthInvalid'\n | 'ConfigMismatch';\n\nexport type NativeConfigurationError =\n | IosConfigurationError\n | AndroidConfigurationError;\n\nexport type AuthStateEvent = {\n state: AuthState;\n accessToken?: string;\n refreshToken?: string;\n};\n\nconst { DolphinSdk: NativeMoveSdk } = NativeModules;\nconst eventEmitter = new NativeEventEmitter(NativeMoveSdk);\n\nexport default class MoveSdk {\n static ERROR: SdkState = 'error';\n static READY: SdkState = 'ready';\n static RUNNING: SdkState = 'running';\n static UNINITIALIZED: SdkState = 'uninitialized';\n\n static AUTH_INVALID: ConfigurationError = 'authinvalid';\n static AUTH_EXPIRED: AuthState = 'expired';\n static AUTH_VALID: AuthState = 'valid';\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(nativeSdkState: NativeSdkState): SdkState | null {\n let stateString = nativeSdkState?.toLowerCase() as SdkState;\n\n if (stateString?.includes('(')) {\n stateString = stateString\n ?.substring(0, stateString?.indexOf('('))\n .toLowerCase() as SdkState;\n }\n\n switch (stateString) {\n case 'uninitialized':\n return MoveSdk.UNINITIALIZED;\n\n case 'ready':\n return MoveSdk.READY;\n\n case 'running':\n return MoveSdk.RUNNING;\n\n case 'error':\n return MoveSdk.ERROR;\n default:\n return null;\n }\n }\n\n static tripStateFromNative(\n nativeTripState: NativeTripState\n ): TripState | null {\n const state = nativeTripState?.toLowerCase() as TripState;\n\n if (\n [\n MoveSdk.UNKNOWN,\n MoveSdk.DRIVING,\n MoveSdk.HALT,\n MoveSdk.IDLE,\n MoveSdk.IGNORED,\n ].includes(state)\n ) {\n return state;\n }\n\n return null;\n }\n\n static authStateFromNative(\n nativeAuthState: NativeAuthState\n ): AuthState | null {\n const state = nativeAuthState?.toLowerCase() as AuthState;\n\n if ([MoveSdk.AUTH_VALID, MoveSdk.AUTH_EXPIRED].includes(state)) {\n return state;\n }\n\n return null;\n }\n\n static configurationErrorFromNative(\n nativeInitError: NativeConfigurationError\n ) {\n const state = nativeInitError?.toLowerCase() as ConfigurationError;\n return state;\n }\n\n static initialize(\n config: MoveSdkConfig,\n auth: MoveSdkAuth,\n android: MoveSdkAndroidConfig\n ) {\n const {\n timelineDetectionServices,\n drivingServices,\n walkingServices,\n otherServices,\n } = config;\n\n const { contractId, productId, accessToken, refreshToken } = auth;\n\n let platformParams: Array<string | boolean> = [];\n if (Platform.OS === 'android') {\n const { notifications, allowMockLocations } = android;\n\n const { tripNotification, recognitionNotification } = notifications;\n\n if (!tripNotification || !recognitionNotification) {\n throw new Error(\n 'MOVE SDK needs notification configuration for Android'\n );\n }\n\n platformParams = [\n recognitionNotification.title,\n recognitionNotification.text,\n recognitionNotification.channel.id,\n recognitionNotification.channel.name,\n recognitionNotification.channel.description,\n tripNotification.title,\n tripNotification.text,\n tripNotification.channel.id,\n tripNotification.channel.name,\n tripNotification.channel.description,\n allowMockLocations,\n ];\n }\n\n NativeMoveSdk.initialize(\n contractId,\n accessToken,\n refreshToken,\n productId,\n // Config\n timelineDetectionServices,\n drivingServices,\n walkingServices,\n otherServices,\n // Platform config\n ...platformParams\n ).catch((e) => {\n throw new Error(\n `Initialization failed, Exception occured with message ${e.message}`\n );\n });\n }\n\n static resolveError() {\n NativeMoveSdk.resolveError();\n }\n\n static updateAuth(auth: MoveSdkAuth) {\n const { contractId, productId, accessToken, refreshToken } = auth;\n NativeMoveSdk.updateAuth(contractId, accessToken, refreshToken, productId);\n }\n\n static startAutomaticDetection() {\n NativeMoveSdk.startAutomaticDetection();\n }\n\n static forceTripRecognition() {\n NativeMoveSdk.forceTripRecognition();\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 stopAutomaticDetection() {\n NativeMoveSdk.stopAutomaticDetection();\n }\n\n static synchronizeUserData() {\n NativeMoveSdk.synchronizeUserData();\n }\n\n static shutdown() {\n NativeMoveSdk.shutdown();\n }\n\n static getAuthState(): Promise<AuthState | null> {\n return new Promise((resolve, _reject) => {\n NativeMoveSdk.getAuthState().then((nativeState: NativeAuthState) =>\n resolve(MoveSdk.authStateFromNative(nativeState))\n );\n });\n }\n\n static getState(): Promise<SdkState | null> {\n return new Promise((resolve, _reject) => {\n NativeMoveSdk.getState().then((nativeState: NativeSdkState) =>\n resolve(MoveSdk.sdkStateFromNative(nativeState))\n );\n });\n }\n\n static getTripState(): Promise<TripState | null> {\n return new Promise((resolve, _reject) => {\n NativeMoveSdk.getTripState().then((nativeState: NativeTripState) =>\n resolve(MoveSdk.tripStateFromNative(nativeState))\n );\n });\n }\n\n static addTripStateListener(\n tripStateChanged: (state: TripState | null) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('DolphinSdk-TripState', (event) =>\n tripStateChanged(MoveSdk.tripStateFromNative(event.state))\n );\n }\n\n static addSDKStateListener(\n sdkStateChanged: (event: { state: SdkState | null }) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('DolphinSdk-State', (event) => {\n const transformedEvent = {\n ...event,\n state: MoveSdk.sdkStateFromNative(event.state),\n };\n\n sdkStateChanged(transformedEvent);\n });\n }\n\n static addInitErrorListener(\n initErrorReceived: (error: ConfigurationError) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('DolphinSdk-InitError', (event) =>\n initErrorReceived(MoveSdk.configurationErrorFromNative(event.error))\n );\n }\n\n static addAuthStateListener(\n authStateChanged: (event: AuthStateEvent) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('DolphinSdk-AuthState', (event) => {\n const transformedEvent = {\n ...event,\n state: MoveSdk.authStateFromNative(event.state),\n };\n authStateChanged(transformedEvent);\n });\n }\n\n static addAppEventListener(\n appEventReceived: (event: string) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('DolphinSdk-AppEvent', (event) => {\n appEventReceived(event);\n });\n }\n\n static version(): string {\n return Platform.OS === 'android'\n ? NativeMoveSdk.getConstants().version\n : 'Unknown';\n }\n\n static finishCurrentTrip() {\n NativeMoveSdk.finishCurrentTrip();\n }\n\n static ignoreCurrentTrip() {\n NativeMoveSdk.ignoreCurrentTrip();\n }\n\n // **** PERMISSIONS MODULE START *****\n\n static canDrawOverlays(): Promise<boolean> {\n return new Promise((resolve, _reject) => {\n NativeMoveSdk.canDrawOverlays().then((result: boolean) =>\n resolve(result)\n );\n });\n }\n\n static requestDrawOverlaysPermission() {\n if (Platform.OS === 'android') {\n NativeMoveSdk.requestDrawOverlaysPermission();\n } else {\n console.warn(\n 'MoveSdk.requestAppIgnoringBatteryOptimization() is Android OS only.'\n );\n }\n }\n\n static isAppIgnoringBatteryOptimization(): Promise<boolean> {\n return new Promise((resolve, _reject) => {\n NativeMoveSdk.isAppIgnoringBatteryOptimization().then((result: boolean) =>\n resolve(result)\n );\n });\n }\n\n static requestAppIgnoringBatteryOptimization() {\n if (Platform.OS === 'android') {\n NativeMoveSdk.requestAppIgnoringBatteryOptimization();\n } else {\n console.warn(\n 'MoveSdk.requestAppIgnoringBatteryOptimization() is Android OS only.'\n );\n }\n }\n\n // **** PERMISSIONS MODULE END *****\n}\n"]}
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
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; }
|
|
2
|
+
|
|
3
|
+
import { NativeModules, NativeEventEmitter, Platform } from 'react-native';
|
|
4
|
+
const {
|
|
5
|
+
DolphinSdk: NativeMoveSdk
|
|
6
|
+
} = NativeModules;
|
|
7
|
+
const eventEmitter = new NativeEventEmitter(NativeMoveSdk);
|
|
8
|
+
export default class MoveSdk {
|
|
9
|
+
static sdkStateFromNative(nativeSdkState) {
|
|
10
|
+
var _stateString;
|
|
11
|
+
|
|
12
|
+
let stateString = nativeSdkState === null || nativeSdkState === void 0 ? void 0 : nativeSdkState.toLowerCase();
|
|
13
|
+
|
|
14
|
+
if ((_stateString = stateString) !== null && _stateString !== void 0 && _stateString.includes('(')) {
|
|
15
|
+
var _stateString2, _stateString3;
|
|
16
|
+
|
|
17
|
+
stateString = (_stateString2 = stateString) === null || _stateString2 === void 0 ? void 0 : _stateString2.substring(0, (_stateString3 = stateString) === null || _stateString3 === void 0 ? void 0 : _stateString3.indexOf('(')).toLowerCase();
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
switch (stateString) {
|
|
21
|
+
case 'uninitialized':
|
|
22
|
+
return MoveSdk.UNINITIALIZED;
|
|
23
|
+
|
|
24
|
+
case 'ready':
|
|
25
|
+
return MoveSdk.READY;
|
|
26
|
+
|
|
27
|
+
case 'running':
|
|
28
|
+
return MoveSdk.RUNNING;
|
|
29
|
+
|
|
30
|
+
case 'error':
|
|
31
|
+
return MoveSdk.ERROR;
|
|
32
|
+
|
|
33
|
+
default:
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
static tripStateFromNative(nativeTripState) {
|
|
39
|
+
const state = nativeTripState === null || nativeTripState === void 0 ? void 0 : nativeTripState.toLowerCase();
|
|
40
|
+
|
|
41
|
+
if ([MoveSdk.UNKNOWN, MoveSdk.DRIVING, MoveSdk.HALT, MoveSdk.IDLE, MoveSdk.IGNORED].includes(state)) {
|
|
42
|
+
return state;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
static authStateFromNative(nativeAuthState) {
|
|
49
|
+
const state = nativeAuthState === null || nativeAuthState === void 0 ? void 0 : nativeAuthState.toLowerCase();
|
|
50
|
+
|
|
51
|
+
if ([MoveSdk.AUTH_VALID, MoveSdk.AUTH_EXPIRED].includes(state)) {
|
|
52
|
+
return state;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
static configurationErrorFromNative(nativeInitError) {
|
|
59
|
+
const state = nativeInitError === null || nativeInitError === void 0 ? void 0 : nativeInitError.toLowerCase();
|
|
60
|
+
return state;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
static initialize(config, auth, android) {
|
|
64
|
+
const {
|
|
65
|
+
timelineDetectionServices,
|
|
66
|
+
drivingServices,
|
|
67
|
+
walkingServices,
|
|
68
|
+
otherServices
|
|
69
|
+
} = config;
|
|
70
|
+
const {
|
|
71
|
+
contractId,
|
|
72
|
+
productId,
|
|
73
|
+
accessToken,
|
|
74
|
+
refreshToken
|
|
75
|
+
} = auth;
|
|
76
|
+
let platformParams = [];
|
|
77
|
+
|
|
78
|
+
if (Platform.OS === 'android') {
|
|
79
|
+
const {
|
|
80
|
+
notifications,
|
|
81
|
+
allowMockLocations
|
|
82
|
+
} = android;
|
|
83
|
+
const {
|
|
84
|
+
tripNotification,
|
|
85
|
+
recognitionNotification
|
|
86
|
+
} = notifications;
|
|
87
|
+
|
|
88
|
+
if (!tripNotification || !recognitionNotification) {
|
|
89
|
+
throw new Error('MOVE SDK needs notification configuration for Android');
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
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, allowMockLocations];
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
NativeMoveSdk.initialize(contractId, accessToken, refreshToken, productId, // Config
|
|
96
|
+
timelineDetectionServices, drivingServices, walkingServices, otherServices, // Platform config
|
|
97
|
+
...platformParams).catch(e => {
|
|
98
|
+
throw new Error(`Initialization failed, Exception occured with message ${e.message}`);
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
static resolveError() {
|
|
103
|
+
NativeMoveSdk.resolveError();
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
static updateAuth(auth) {
|
|
107
|
+
const {
|
|
108
|
+
contractId,
|
|
109
|
+
productId,
|
|
110
|
+
accessToken,
|
|
111
|
+
refreshToken
|
|
112
|
+
} = auth;
|
|
113
|
+
NativeMoveSdk.updateAuth(contractId, accessToken, refreshToken, productId);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
static startAutomaticDetection() {
|
|
117
|
+
NativeMoveSdk.startAutomaticDetection();
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
static forceTripRecognition() {
|
|
121
|
+
NativeMoveSdk.forceTripRecognition();
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
static keepInForeground(enabled) {
|
|
125
|
+
if (Platform.OS === 'android') {
|
|
126
|
+
NativeMoveSdk.keepInForeground(enabled);
|
|
127
|
+
} else {
|
|
128
|
+
console.warn('MoveSdk.keepInForeground() is Android OS only.');
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
static keepActive(enabled) {
|
|
133
|
+
if (Platform.OS === 'android') {
|
|
134
|
+
NativeMoveSdk.keepActive(enabled);
|
|
135
|
+
} else {
|
|
136
|
+
console.warn('MoveSdk.keepActive() is Android OS only.');
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
static stopAutomaticDetection() {
|
|
141
|
+
NativeMoveSdk.stopAutomaticDetection();
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
static synchronizeUserData() {
|
|
145
|
+
NativeMoveSdk.synchronizeUserData();
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
static shutdown() {
|
|
149
|
+
NativeMoveSdk.shutdown();
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
static getAuthState() {
|
|
153
|
+
return new Promise((resolve, _reject) => {
|
|
154
|
+
NativeMoveSdk.getAuthState().then(nativeState => resolve(MoveSdk.authStateFromNative(nativeState)));
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
static getState() {
|
|
159
|
+
return new Promise((resolve, _reject) => {
|
|
160
|
+
NativeMoveSdk.getState().then(nativeState => resolve(MoveSdk.sdkStateFromNative(nativeState)));
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
static getTripState() {
|
|
165
|
+
return new Promise((resolve, _reject) => {
|
|
166
|
+
NativeMoveSdk.getTripState().then(nativeState => resolve(MoveSdk.tripStateFromNative(nativeState)));
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
static addTripStateListener(tripStateChanged) {
|
|
171
|
+
return eventEmitter.addListener('DolphinSdk-TripState', event => tripStateChanged(MoveSdk.tripStateFromNative(event.state)));
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
static addSDKStateListener(sdkStateChanged) {
|
|
175
|
+
return eventEmitter.addListener('DolphinSdk-State', event => {
|
|
176
|
+
const transformedEvent = { ...event,
|
|
177
|
+
state: MoveSdk.sdkStateFromNative(event.state)
|
|
178
|
+
};
|
|
179
|
+
sdkStateChanged(transformedEvent);
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
static addInitErrorListener(initErrorReceived) {
|
|
184
|
+
return eventEmitter.addListener('DolphinSdk-InitError', event => initErrorReceived(MoveSdk.configurationErrorFromNative(event.error)));
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
static addAuthStateListener(authStateChanged) {
|
|
188
|
+
return eventEmitter.addListener('DolphinSdk-AuthState', event => {
|
|
189
|
+
const transformedEvent = { ...event,
|
|
190
|
+
state: MoveSdk.authStateFromNative(event.state)
|
|
191
|
+
};
|
|
192
|
+
authStateChanged(transformedEvent);
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
static addAppEventListener(appEventReceived) {
|
|
197
|
+
return eventEmitter.addListener('DolphinSdk-AppEvent', event => {
|
|
198
|
+
appEventReceived(event);
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
static version() {
|
|
203
|
+
return Platform.OS === 'android' ? NativeMoveSdk.getConstants().version : 'Unknown';
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
static finishCurrentTrip() {
|
|
207
|
+
NativeMoveSdk.finishCurrentTrip();
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
static ignoreCurrentTrip() {
|
|
211
|
+
NativeMoveSdk.ignoreCurrentTrip();
|
|
212
|
+
} // **** PERMISSIONS MODULE START *****
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
static canDrawOverlays() {
|
|
216
|
+
return new Promise((resolve, _reject) => {
|
|
217
|
+
NativeMoveSdk.canDrawOverlays().then(result => resolve(result));
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
static requestDrawOverlaysPermission() {
|
|
222
|
+
if (Platform.OS === 'android') {
|
|
223
|
+
NativeMoveSdk.requestDrawOverlaysPermission();
|
|
224
|
+
} else {
|
|
225
|
+
console.warn('MoveSdk.requestAppIgnoringBatteryOptimization() is Android OS only.');
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
static isAppIgnoringBatteryOptimization() {
|
|
230
|
+
return new Promise((resolve, _reject) => {
|
|
231
|
+
NativeMoveSdk.isAppIgnoringBatteryOptimization().then(result => resolve(result));
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
static requestAppIgnoringBatteryOptimization() {
|
|
236
|
+
if (Platform.OS === 'android') {
|
|
237
|
+
NativeMoveSdk.requestAppIgnoringBatteryOptimization();
|
|
238
|
+
} else {
|
|
239
|
+
console.warn('MoveSdk.requestAppIgnoringBatteryOptimization() is Android OS only.');
|
|
240
|
+
}
|
|
241
|
+
} // **** PERMISSIONS MODULE END *****
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
_defineProperty(MoveSdk, "ERROR", 'error');
|
|
247
|
+
|
|
248
|
+
_defineProperty(MoveSdk, "READY", 'ready');
|
|
249
|
+
|
|
250
|
+
_defineProperty(MoveSdk, "RUNNING", 'running');
|
|
251
|
+
|
|
252
|
+
_defineProperty(MoveSdk, "UNINITIALIZED", 'uninitialized');
|
|
253
|
+
|
|
254
|
+
_defineProperty(MoveSdk, "AUTH_INVALID", 'authinvalid');
|
|
255
|
+
|
|
256
|
+
_defineProperty(MoveSdk, "AUTH_EXPIRED", 'expired');
|
|
257
|
+
|
|
258
|
+
_defineProperty(MoveSdk, "AUTH_VALID", 'valid');
|
|
259
|
+
|
|
260
|
+
_defineProperty(MoveSdk, "UNKNOWN", 'unknown');
|
|
261
|
+
|
|
262
|
+
_defineProperty(MoveSdk, "DRIVING", 'driving');
|
|
263
|
+
|
|
264
|
+
_defineProperty(MoveSdk, "HALT", 'halt');
|
|
265
|
+
|
|
266
|
+
_defineProperty(MoveSdk, "IDLE", 'idle');
|
|
267
|
+
|
|
268
|
+
_defineProperty(MoveSdk, "IGNORED", 'ignored');
|
|
269
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["NativeModules","NativeEventEmitter","Platform","DolphinSdk","NativeMoveSdk","eventEmitter","MoveSdk","sdkStateFromNative","nativeSdkState","stateString","toLowerCase","includes","substring","indexOf","UNINITIALIZED","READY","RUNNING","ERROR","tripStateFromNative","nativeTripState","state","UNKNOWN","DRIVING","HALT","IDLE","IGNORED","authStateFromNative","nativeAuthState","AUTH_VALID","AUTH_EXPIRED","configurationErrorFromNative","nativeInitError","initialize","config","auth","android","timelineDetectionServices","drivingServices","walkingServices","otherServices","contractId","productId","accessToken","refreshToken","platformParams","OS","notifications","allowMockLocations","tripNotification","recognitionNotification","Error","title","text","channel","id","name","description","catch","e","message","resolveError","updateAuth","startAutomaticDetection","forceTripRecognition","keepInForeground","enabled","console","warn","keepActive","stopAutomaticDetection","synchronizeUserData","shutdown","getAuthState","Promise","resolve","_reject","then","nativeState","getState","getTripState","addTripStateListener","tripStateChanged","addListener","event","addSDKStateListener","sdkStateChanged","transformedEvent","addInitErrorListener","initErrorReceived","error","addAuthStateListener","authStateChanged","addAppEventListener","appEventReceived","version","getConstants","finishCurrentTrip","ignoreCurrentTrip","canDrawOverlays","result","requestDrawOverlaysPermission","isAppIgnoringBatteryOptimization","requestAppIgnoringBatteryOptimization"],"mappings":"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","sourcesContent":["import {\n NativeModules,\n NativeEventEmitter,\n Platform,\n EmitterSubscription,\n} from 'react-native';\n\nexport type AndroidSdkState = 'Error' | 'Uninitialised' | 'Ready' | 'Running';\nexport type SdkState = 'error' | 'uninitialized' | 'ready' | 'running';\n\nexport type NativeSdkState = AndroidSdkState | SdkState;\n\nexport type TripState = 'unknown' | 'driving' | 'halt' | 'idle' | 'ignored';\nexport type AuthState = 'unknown' | 'valid' | 'expired';\n\nexport type AndroidTripState =\n | 'UNKNOWN'\n | 'DRIVING'\n | 'HALT'\n | 'IDLE'\n | 'IGNORED';\n\nexport type NativeTripState = AndroidTripState | TripState;\n\nexport type AndroidAuthState = 'UNKNOWN' | 'VALID' | 'EXPIRED';\nexport type IosAuthState = 'unknown' | 'valid' | 'expired';\nexport type NativeAuthState = AndroidAuthState | IosAuthState;\n\nexport type DrivingService = 'DistractionFreeDriving' | 'DrivingBehaviour';\nexport type WalkingService = 'Location';\nexport type OtherService = 'PointsOfInterest';\nexport type TimelineDetectionService =\n | 'DRIVING'\n | 'BICYCLE'\n | 'WALKING'\n | 'PUBLIC_TRANSPORT';\nexport type MoveSdkConfig = {\n timelineDetectionServices: TimelineDetectionService[];\n drivingServices: DrivingService[];\n walkingServices: WalkingService[];\n otherServices: OtherService[];\n};\n\nexport type MoveSdkAuth = {\n contractId: string;\n accessToken: string;\n refreshToken: string;\n productId: 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 allowMockLocations: boolean;\n};\n\nexport type ListenerSubscription = EmitterSubscription;\n\nexport type ConfigurationError =\n | 'authinvalid'\n | 'configmismatch'\n | 'serviceunreachable';\n\nexport type IosConfigurationError =\n | 'serviceUnreachable'\n | 'authInvalid'\n | 'configMismatch';\n\nexport type AndroidConfigurationError =\n | 'ServiceUnreachable'\n | 'AuthInvalid'\n | 'ConfigMismatch';\n\nexport type NativeConfigurationError =\n | IosConfigurationError\n | AndroidConfigurationError;\n\nexport type AuthStateEvent = {\n state: AuthState;\n accessToken?: string;\n refreshToken?: string;\n};\n\nconst { DolphinSdk: NativeMoveSdk } = NativeModules;\nconst eventEmitter = new NativeEventEmitter(NativeMoveSdk);\n\nexport default class MoveSdk {\n static ERROR: SdkState = 'error';\n static READY: SdkState = 'ready';\n static RUNNING: SdkState = 'running';\n static UNINITIALIZED: SdkState = 'uninitialized';\n\n static AUTH_INVALID: ConfigurationError = 'authinvalid';\n static AUTH_EXPIRED: AuthState = 'expired';\n static AUTH_VALID: AuthState = 'valid';\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(nativeSdkState: NativeSdkState): SdkState | null {\n let stateString = nativeSdkState?.toLowerCase() as SdkState;\n\n if (stateString?.includes('(')) {\n stateString = stateString\n ?.substring(0, stateString?.indexOf('('))\n .toLowerCase() as SdkState;\n }\n\n switch (stateString) {\n case 'uninitialized':\n return MoveSdk.UNINITIALIZED;\n\n case 'ready':\n return MoveSdk.READY;\n\n case 'running':\n return MoveSdk.RUNNING;\n\n case 'error':\n return MoveSdk.ERROR;\n default:\n return null;\n }\n }\n\n static tripStateFromNative(\n nativeTripState: NativeTripState\n ): TripState | null {\n const state = nativeTripState?.toLowerCase() as TripState;\n\n if (\n [\n MoveSdk.UNKNOWN,\n MoveSdk.DRIVING,\n MoveSdk.HALT,\n MoveSdk.IDLE,\n MoveSdk.IGNORED,\n ].includes(state)\n ) {\n return state;\n }\n\n return null;\n }\n\n static authStateFromNative(\n nativeAuthState: NativeAuthState\n ): AuthState | null {\n const state = nativeAuthState?.toLowerCase() as AuthState;\n\n if ([MoveSdk.AUTH_VALID, MoveSdk.AUTH_EXPIRED].includes(state)) {\n return state;\n }\n\n return null;\n }\n\n static configurationErrorFromNative(\n nativeInitError: NativeConfigurationError\n ) {\n const state = nativeInitError?.toLowerCase() as ConfigurationError;\n return state;\n }\n\n static initialize(\n config: MoveSdkConfig,\n auth: MoveSdkAuth,\n android: MoveSdkAndroidConfig\n ) {\n const {\n timelineDetectionServices,\n drivingServices,\n walkingServices,\n otherServices,\n } = config;\n\n const { contractId, productId, accessToken, refreshToken } = auth;\n\n let platformParams: Array<string | boolean> = [];\n if (Platform.OS === 'android') {\n const { notifications, allowMockLocations } = android;\n\n const { tripNotification, recognitionNotification } = notifications;\n\n if (!tripNotification || !recognitionNotification) {\n throw new Error(\n 'MOVE SDK needs notification configuration for Android'\n );\n }\n\n platformParams = [\n recognitionNotification.title,\n recognitionNotification.text,\n recognitionNotification.channel.id,\n recognitionNotification.channel.name,\n recognitionNotification.channel.description,\n tripNotification.title,\n tripNotification.text,\n tripNotification.channel.id,\n tripNotification.channel.name,\n tripNotification.channel.description,\n allowMockLocations,\n ];\n }\n\n NativeMoveSdk.initialize(\n contractId,\n accessToken,\n refreshToken,\n productId,\n // Config\n timelineDetectionServices,\n drivingServices,\n walkingServices,\n otherServices,\n // Platform config\n ...platformParams\n ).catch((e) => {\n throw new Error(\n `Initialization failed, Exception occured with message ${e.message}`\n );\n });\n }\n\n static resolveError() {\n NativeMoveSdk.resolveError();\n }\n\n static updateAuth(auth: MoveSdkAuth) {\n const { contractId, productId, accessToken, refreshToken } = auth;\n NativeMoveSdk.updateAuth(contractId, accessToken, refreshToken, productId);\n }\n\n static startAutomaticDetection() {\n NativeMoveSdk.startAutomaticDetection();\n }\n\n static forceTripRecognition() {\n NativeMoveSdk.forceTripRecognition();\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 stopAutomaticDetection() {\n NativeMoveSdk.stopAutomaticDetection();\n }\n\n static synchronizeUserData() {\n NativeMoveSdk.synchronizeUserData();\n }\n\n static shutdown() {\n NativeMoveSdk.shutdown();\n }\n\n static getAuthState(): Promise<AuthState | null> {\n return new Promise((resolve, _reject) => {\n NativeMoveSdk.getAuthState().then((nativeState: NativeAuthState) =>\n resolve(MoveSdk.authStateFromNative(nativeState))\n );\n });\n }\n\n static getState(): Promise<SdkState | null> {\n return new Promise((resolve, _reject) => {\n NativeMoveSdk.getState().then((nativeState: NativeSdkState) =>\n resolve(MoveSdk.sdkStateFromNative(nativeState))\n );\n });\n }\n\n static getTripState(): Promise<TripState | null> {\n return new Promise((resolve, _reject) => {\n NativeMoveSdk.getTripState().then((nativeState: NativeTripState) =>\n resolve(MoveSdk.tripStateFromNative(nativeState))\n );\n });\n }\n\n static addTripStateListener(\n tripStateChanged: (state: TripState | null) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('DolphinSdk-TripState', (event) =>\n tripStateChanged(MoveSdk.tripStateFromNative(event.state))\n );\n }\n\n static addSDKStateListener(\n sdkStateChanged: (event: { state: SdkState | null }) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('DolphinSdk-State', (event) => {\n const transformedEvent = {\n ...event,\n state: MoveSdk.sdkStateFromNative(event.state),\n };\n\n sdkStateChanged(transformedEvent);\n });\n }\n\n static addInitErrorListener(\n initErrorReceived: (error: ConfigurationError) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('DolphinSdk-InitError', (event) =>\n initErrorReceived(MoveSdk.configurationErrorFromNative(event.error))\n );\n }\n\n static addAuthStateListener(\n authStateChanged: (event: AuthStateEvent) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('DolphinSdk-AuthState', (event) => {\n const transformedEvent = {\n ...event,\n state: MoveSdk.authStateFromNative(event.state),\n };\n authStateChanged(transformedEvent);\n });\n }\n\n static addAppEventListener(\n appEventReceived: (event: string) => void\n ): ListenerSubscription {\n return eventEmitter.addListener('DolphinSdk-AppEvent', (event) => {\n appEventReceived(event);\n });\n }\n\n static version(): string {\n return Platform.OS === 'android'\n ? NativeMoveSdk.getConstants().version\n : 'Unknown';\n }\n\n static finishCurrentTrip() {\n NativeMoveSdk.finishCurrentTrip();\n }\n\n static ignoreCurrentTrip() {\n NativeMoveSdk.ignoreCurrentTrip();\n }\n\n // **** PERMISSIONS MODULE START *****\n\n static canDrawOverlays(): Promise<boolean> {\n return new Promise((resolve, _reject) => {\n NativeMoveSdk.canDrawOverlays().then((result: boolean) =>\n resolve(result)\n );\n });\n }\n\n static requestDrawOverlaysPermission() {\n if (Platform.OS === 'android') {\n NativeMoveSdk.requestDrawOverlaysPermission();\n } else {\n console.warn(\n 'MoveSdk.requestAppIgnoringBatteryOptimization() is Android OS only.'\n );\n }\n }\n\n static isAppIgnoringBatteryOptimization(): Promise<boolean> {\n return new Promise((resolve, _reject) => {\n NativeMoveSdk.isAppIgnoringBatteryOptimization().then((result: boolean) =>\n resolve(result)\n );\n });\n }\n\n static requestAppIgnoringBatteryOptimization() {\n if (Platform.OS === 'android') {\n NativeMoveSdk.requestAppIgnoringBatteryOptimization();\n } else {\n console.warn(\n 'MoveSdk.requestAppIgnoringBatteryOptimization() is Android OS only.'\n );\n }\n }\n\n // **** PERMISSIONS MODULE END *****\n}\n"]}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { EmitterSubscription } from 'react-native';
|
|
2
|
+
export declare type AndroidSdkState = 'Error' | 'Uninitialised' | 'Ready' | 'Running';
|
|
3
|
+
export declare type SdkState = 'error' | 'uninitialized' | 'ready' | 'running';
|
|
4
|
+
export declare type NativeSdkState = AndroidSdkState | SdkState;
|
|
5
|
+
export declare type TripState = 'unknown' | 'driving' | 'halt' | 'idle' | 'ignored';
|
|
6
|
+
export declare type AuthState = 'unknown' | 'valid' | 'expired';
|
|
7
|
+
export declare type AndroidTripState = 'UNKNOWN' | 'DRIVING' | 'HALT' | 'IDLE' | 'IGNORED';
|
|
8
|
+
export declare type NativeTripState = AndroidTripState | TripState;
|
|
9
|
+
export declare type AndroidAuthState = 'UNKNOWN' | 'VALID' | 'EXPIRED';
|
|
10
|
+
export declare type IosAuthState = 'unknown' | 'valid' | 'expired';
|
|
11
|
+
export declare type NativeAuthState = AndroidAuthState | IosAuthState;
|
|
12
|
+
export declare type DrivingService = 'DistractionFreeDriving' | 'DrivingBehaviour';
|
|
13
|
+
export declare type WalkingService = 'Location';
|
|
14
|
+
export declare type OtherService = 'PointsOfInterest';
|
|
15
|
+
export declare type TimelineDetectionService = 'DRIVING' | 'BICYCLE' | 'WALKING' | 'PUBLIC_TRANSPORT';
|
|
16
|
+
export declare type MoveSdkConfig = {
|
|
17
|
+
timelineDetectionServices: TimelineDetectionService[];
|
|
18
|
+
drivingServices: DrivingService[];
|
|
19
|
+
walkingServices: WalkingService[];
|
|
20
|
+
otherServices: OtherService[];
|
|
21
|
+
};
|
|
22
|
+
export declare type MoveSdkAuth = {
|
|
23
|
+
contractId: string;
|
|
24
|
+
accessToken: string;
|
|
25
|
+
refreshToken: string;
|
|
26
|
+
productId: number;
|
|
27
|
+
};
|
|
28
|
+
export declare type NotificationConfig = {
|
|
29
|
+
title: string;
|
|
30
|
+
text: string;
|
|
31
|
+
channel: {
|
|
32
|
+
id: string;
|
|
33
|
+
name: string;
|
|
34
|
+
description: string;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
export declare type MoveSdkAndroidConfig = {
|
|
38
|
+
notifications: {
|
|
39
|
+
recognitionNotification: NotificationConfig;
|
|
40
|
+
tripNotification: NotificationConfig;
|
|
41
|
+
};
|
|
42
|
+
allowMockLocations: boolean;
|
|
43
|
+
};
|
|
44
|
+
export declare type ListenerSubscription = EmitterSubscription;
|
|
45
|
+
export declare type ConfigurationError = 'authinvalid' | 'configmismatch' | 'serviceunreachable';
|
|
46
|
+
export declare type IosConfigurationError = 'serviceUnreachable' | 'authInvalid' | 'configMismatch';
|
|
47
|
+
export declare type AndroidConfigurationError = 'ServiceUnreachable' | 'AuthInvalid' | 'ConfigMismatch';
|
|
48
|
+
export declare type NativeConfigurationError = IosConfigurationError | AndroidConfigurationError;
|
|
49
|
+
export declare type AuthStateEvent = {
|
|
50
|
+
state: AuthState;
|
|
51
|
+
accessToken?: string;
|
|
52
|
+
refreshToken?: string;
|
|
53
|
+
};
|
|
54
|
+
export default class MoveSdk {
|
|
55
|
+
static ERROR: SdkState;
|
|
56
|
+
static READY: SdkState;
|
|
57
|
+
static RUNNING: SdkState;
|
|
58
|
+
static UNINITIALIZED: SdkState;
|
|
59
|
+
static AUTH_INVALID: ConfigurationError;
|
|
60
|
+
static AUTH_EXPIRED: AuthState;
|
|
61
|
+
static AUTH_VALID: AuthState;
|
|
62
|
+
static UNKNOWN: TripState;
|
|
63
|
+
static DRIVING: TripState;
|
|
64
|
+
static HALT: TripState;
|
|
65
|
+
static IDLE: TripState;
|
|
66
|
+
static IGNORED: TripState;
|
|
67
|
+
static sdkStateFromNative(nativeSdkState: NativeSdkState): SdkState | null;
|
|
68
|
+
static tripStateFromNative(nativeTripState: NativeTripState): TripState | null;
|
|
69
|
+
static authStateFromNative(nativeAuthState: NativeAuthState): AuthState | null;
|
|
70
|
+
static configurationErrorFromNative(nativeInitError: NativeConfigurationError): ConfigurationError;
|
|
71
|
+
static initialize(config: MoveSdkConfig, auth: MoveSdkAuth, android: MoveSdkAndroidConfig): void;
|
|
72
|
+
static resolveError(): void;
|
|
73
|
+
static updateAuth(auth: MoveSdkAuth): void;
|
|
74
|
+
static startAutomaticDetection(): void;
|
|
75
|
+
static forceTripRecognition(): void;
|
|
76
|
+
static keepInForeground(enabled: boolean): void;
|
|
77
|
+
static keepActive(enabled: boolean): void;
|
|
78
|
+
static stopAutomaticDetection(): void;
|
|
79
|
+
static synchronizeUserData(): void;
|
|
80
|
+
static shutdown(): void;
|
|
81
|
+
static getAuthState(): Promise<AuthState | null>;
|
|
82
|
+
static getState(): Promise<SdkState | null>;
|
|
83
|
+
static getTripState(): Promise<TripState | null>;
|
|
84
|
+
static addTripStateListener(tripStateChanged: (state: TripState | null) => void): ListenerSubscription;
|
|
85
|
+
static addSDKStateListener(sdkStateChanged: (event: {
|
|
86
|
+
state: SdkState | null;
|
|
87
|
+
}) => void): ListenerSubscription;
|
|
88
|
+
static addInitErrorListener(initErrorReceived: (error: ConfigurationError) => void): ListenerSubscription;
|
|
89
|
+
static addAuthStateListener(authStateChanged: (event: AuthStateEvent) => void): ListenerSubscription;
|
|
90
|
+
static addAppEventListener(appEventReceived: (event: string) => void): ListenerSubscription;
|
|
91
|
+
static version(): string;
|
|
92
|
+
static finishCurrentTrip(): void;
|
|
93
|
+
static ignoreCurrentTrip(): void;
|
|
94
|
+
static canDrawOverlays(): Promise<boolean>;
|
|
95
|
+
static requestDrawOverlaysPermission(): void;
|
|
96
|
+
static isAppIgnoringBatteryOptimization(): Promise<boolean>;
|
|
97
|
+
static requestAppIgnoringBatteryOptimization(): void;
|
|
98
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "react-native-move-sdk",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "React Native library for MOVE SDK",
|
|
5
|
+
"main": "lib/commonjs/index",
|
|
6
|
+
"module": "lib/module/index",
|
|
7
|
+
"types": "lib/typescript/index.d.ts",
|
|
8
|
+
"react-native": "src/index",
|
|
9
|
+
"source": "src/index",
|
|
10
|
+
"files": [
|
|
11
|
+
"src",
|
|
12
|
+
"lib",
|
|
13
|
+
"android",
|
|
14
|
+
"ios",
|
|
15
|
+
"react-native-move-sdk.podspec",
|
|
16
|
+
"!lib/typescript/example",
|
|
17
|
+
"!android/build",
|
|
18
|
+
"!ios/build",
|
|
19
|
+
"!**/__tests__",
|
|
20
|
+
"!**/__fixtures__",
|
|
21
|
+
"!**/__mocks__"
|
|
22
|
+
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"typescript": "tsc --noEmit",
|
|
25
|
+
"lint": "eslint \"**/*.{js,ts,tsx}\"",
|
|
26
|
+
"prepare": "bob build",
|
|
27
|
+
"release": "release-it",
|
|
28
|
+
"bootstrap": "yarn"
|
|
29
|
+
},
|
|
30
|
+
"keywords": [
|
|
31
|
+
"react-native",
|
|
32
|
+
"ios",
|
|
33
|
+
"android"
|
|
34
|
+
],
|
|
35
|
+
"repository": "https://www.dolph.in",
|
|
36
|
+
"author": "Dolphin Technologies <info@dolph.in> (https://www.dolph.in)",
|
|
37
|
+
"license": "MIT",
|
|
38
|
+
"bugs": {
|
|
39
|
+
"url": "https://www.dolph.in"
|
|
40
|
+
},
|
|
41
|
+
"homepage": "https://www.dolph.in",
|
|
42
|
+
"publishConfig": {
|
|
43
|
+
"registry": "https://registry.npmjs.org/"
|
|
44
|
+
},
|
|
45
|
+
"devDependencies": {
|
|
46
|
+
"@commitlint/config-conventional": "^11.0.0",
|
|
47
|
+
"@react-native-community/eslint-config": "^2.0.0",
|
|
48
|
+
"@release-it/conventional-changelog": "^2.0.0",
|
|
49
|
+
"@types/react": "^16.9.19",
|
|
50
|
+
"@types/react-native": "0.62.13",
|
|
51
|
+
"commitlint": "^11.0.0",
|
|
52
|
+
"eslint": "^7.2.0",
|
|
53
|
+
"eslint-config-prettier": "^7.0.0",
|
|
54
|
+
"eslint-plugin-prettier": "^3.1.3",
|
|
55
|
+
"flow-remove-types": "^2.177.0",
|
|
56
|
+
"pod-install": "^0.1.0",
|
|
57
|
+
"prettier": "^2.0.5",
|
|
58
|
+
"react": "16.13.1",
|
|
59
|
+
"react-native": "0.63.3",
|
|
60
|
+
"react-native-builder-bob": "^0.17.1",
|
|
61
|
+
"release-it": "^14.2.2",
|
|
62
|
+
"typescript": "^4.1.3"
|
|
63
|
+
},
|
|
64
|
+
"peerDependencies": {
|
|
65
|
+
"react": "*",
|
|
66
|
+
"react-native": "*"
|
|
67
|
+
},
|
|
68
|
+
"commitlint": {
|
|
69
|
+
"extends": [
|
|
70
|
+
"@commitlint/config-conventional"
|
|
71
|
+
]
|
|
72
|
+
},
|
|
73
|
+
"release-it": {
|
|
74
|
+
"git": {
|
|
75
|
+
"commitMessage": "chore: release ${version}",
|
|
76
|
+
"tagName": "v${version}"
|
|
77
|
+
},
|
|
78
|
+
"npm": {
|
|
79
|
+
"publish": true
|
|
80
|
+
},
|
|
81
|
+
"github": {
|
|
82
|
+
"release": true
|
|
83
|
+
},
|
|
84
|
+
"plugins": {
|
|
85
|
+
"@release-it/conventional-changelog": {
|
|
86
|
+
"preset": "angular"
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
"eslintConfig": {
|
|
91
|
+
"root": true,
|
|
92
|
+
"extends": [
|
|
93
|
+
"@react-native-community",
|
|
94
|
+
"prettier"
|
|
95
|
+
],
|
|
96
|
+
"rules": {
|
|
97
|
+
"prettier/prettier": [
|
|
98
|
+
"error",
|
|
99
|
+
{
|
|
100
|
+
"quoteProps": "consistent",
|
|
101
|
+
"singleQuote": true,
|
|
102
|
+
"tabWidth": 2,
|
|
103
|
+
"trailingComma": "es5",
|
|
104
|
+
"useTabs": false
|
|
105
|
+
}
|
|
106
|
+
]
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"eslintIgnore": [
|
|
110
|
+
"node_modules/",
|
|
111
|
+
"lib/"
|
|
112
|
+
],
|
|
113
|
+
"prettier": {
|
|
114
|
+
"quoteProps": "consistent",
|
|
115
|
+
"singleQuote": true,
|
|
116
|
+
"tabWidth": 2,
|
|
117
|
+
"trailingComma": "es5",
|
|
118
|
+
"useTabs": false
|
|
119
|
+
},
|
|
120
|
+
"react-native-builder-bob": {
|
|
121
|
+
"source": "src",
|
|
122
|
+
"output": "lib",
|
|
123
|
+
"targets": [
|
|
124
|
+
"commonjs",
|
|
125
|
+
"module",
|
|
126
|
+
[
|
|
127
|
+
"typescript",
|
|
128
|
+
{
|
|
129
|
+
"project": "tsconfig.build.json"
|
|
130
|
+
}
|
|
131
|
+
]
|
|
132
|
+
]
|
|
133
|
+
},
|
|
134
|
+
"dependencies": {}
|
|
135
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require 'json'
|
|
2
|
+
|
|
3
|
+
package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
|
|
4
|
+
|
|
5
|
+
Pod::Spec.new do |s|
|
|
6
|
+
s.name = "react-native-move-sdk"
|
|
7
|
+
s.version = package["version"]
|
|
8
|
+
s.summary = package["description"]
|
|
9
|
+
s.homepage = package["homepage"]
|
|
10
|
+
s.license = package["license"]
|
|
11
|
+
s.authors = package["author"]
|
|
12
|
+
|
|
13
|
+
s.platforms = { :ios => "10.0" }
|
|
14
|
+
|
|
15
|
+
s.source = { :git => "https://github.com/***", :tag=> "v#{s.version}" }
|
|
16
|
+
s.source_files = "ios/**/*.{h,m,mm,swift}"
|
|
17
|
+
|
|
18
|
+
s.dependency 'React'
|
|
19
|
+
s.dependency 'DolphinMoveSDK', '1.5.1.174'
|
|
20
|
+
end
|