react-native-radar 3.13.0-beta.1 → 3.14.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/README.md +2 -0
- package/android/build.gradle +2 -2
- package/android/src/main/java/io/radar/react/RNRadarModule.java +37 -39
- package/android/src/main/java/io/radar/react/RNRadarReceiver.java +0 -13
- package/dist/package.json +1 -1
- package/dist/src/@types/RadarNativeInterface.d.ts +4 -6
- package/dist/src/@types/types.d.ts +4 -26
- package/dist/src/index.native.js +4 -8
- package/ios/Cartfile.resolved +1 -1
- package/ios/RNRadar.m +28 -65
- package/package.json +1 -1
- package/react-native-radar.podspec +1 -1
- package/src/@types/RadarNativeInterface.ts +3 -6
- package/src/@types/types.ts +3 -49
- package/src/index.native.ts +25 -22
package/README.md
CHANGED
|
@@ -16,6 +16,8 @@ Then, see the Radar React Native module documentation [here](https://radar.com/d
|
|
|
16
16
|
|
|
17
17
|
See an example app in `example/`.
|
|
18
18
|
|
|
19
|
+
Setup Radar public key check pre-commit hook with `cp -r hooks .git` to prevent accidental key leak when working with the Example app.
|
|
20
|
+
|
|
19
21
|
## Support
|
|
20
22
|
|
|
21
23
|
Have questions? We're here to help! Email us at [support@radar.com](mailto:support@radar.com).
|
package/android/build.gradle
CHANGED
|
@@ -18,7 +18,7 @@ android {
|
|
|
18
18
|
minSdkVersion 16
|
|
19
19
|
targetSdkVersion 31
|
|
20
20
|
versionCode 1
|
|
21
|
-
versionName '3.
|
|
21
|
+
versionName '3.14.0'
|
|
22
22
|
}
|
|
23
23
|
lintOptions {
|
|
24
24
|
abortOnError false
|
|
@@ -45,6 +45,6 @@ repositories {
|
|
|
45
45
|
|
|
46
46
|
dependencies {
|
|
47
47
|
api 'com.facebook.react:react-native:+'
|
|
48
|
-
api 'io.radar:sdk:3.
|
|
48
|
+
api 'io.radar:sdk:3.15.0'
|
|
49
49
|
}
|
|
50
50
|
|
|
@@ -32,7 +32,6 @@ import io.radar.sdk.model.RadarAddress;
|
|
|
32
32
|
import io.radar.sdk.model.RadarContext;
|
|
33
33
|
import io.radar.sdk.model.RadarEvent;
|
|
34
34
|
import io.radar.sdk.model.RadarGeofence;
|
|
35
|
-
import io.radar.sdk.model.RadarLocationPermissionStatus;
|
|
36
35
|
import io.radar.sdk.model.RadarPlace;
|
|
37
36
|
import io.radar.sdk.model.RadarRouteMatrix;
|
|
38
37
|
import io.radar.sdk.model.RadarRoutes;
|
|
@@ -64,10 +63,6 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
64
63
|
verifiedReceiver = new RNRadarVerifiedReceiver();
|
|
65
64
|
}
|
|
66
65
|
|
|
67
|
-
public static void onActivityCreate(Activity activity, Context context) {
|
|
68
|
-
Radar.onActivityCreate(activity, context);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
66
|
@ReactMethod
|
|
72
67
|
public void addListener(String eventName) {
|
|
73
68
|
if (listenerCount == 0) {
|
|
@@ -101,7 +96,7 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
101
96
|
this.fraud = fraud;
|
|
102
97
|
SharedPreferences.Editor editor = getReactApplicationContext().getSharedPreferences("RadarSDK", Context.MODE_PRIVATE).edit();
|
|
103
98
|
editor.putString("x_platform_sdk_type", "ReactNative");
|
|
104
|
-
editor.putString("x_platform_sdk_version", "3.
|
|
99
|
+
editor.putString("x_platform_sdk_version", "3.14.0");
|
|
105
100
|
editor.apply();
|
|
106
101
|
if (fraud) {
|
|
107
102
|
Radar.initialize(getReactApplicationContext(), publishableKey, receiver, Radar.RadarLocationServicesProvider.GOOGLE, fraud);
|
|
@@ -223,7 +218,8 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
223
218
|
return;
|
|
224
219
|
}
|
|
225
220
|
|
|
226
|
-
boolean foreground = ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
|
|
221
|
+
boolean foreground = ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED ||
|
|
222
|
+
ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED;
|
|
227
223
|
boolean background = foreground;
|
|
228
224
|
boolean denied = ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.ACCESS_FINE_LOCATION);
|
|
229
225
|
|
|
@@ -251,6 +247,22 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
251
247
|
return true;
|
|
252
248
|
}
|
|
253
249
|
|
|
250
|
+
|
|
251
|
+
@ReactMethod
|
|
252
|
+
public void requestPermissions(boolean background, final Promise promise) {
|
|
253
|
+
PermissionAwareActivity activity = (PermissionAwareActivity)getCurrentActivity();
|
|
254
|
+
mPermissionsRequestPromise = promise;
|
|
255
|
+
if (activity != null) {
|
|
256
|
+
if (Build.VERSION.SDK_INT >= 23) {
|
|
257
|
+
if (background && Build.VERSION.SDK_INT >= 29) {
|
|
258
|
+
activity.requestPermissions(new String[] { Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_BACKGROUND_LOCATION }, PERMISSIONS_REQUEST_CODE, this);
|
|
259
|
+
} else {
|
|
260
|
+
activity.requestPermissions(new String[] { Manifest.permission.ACCESS_FINE_LOCATION }, PERMISSIONS_REQUEST_CODE, this);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
|
|
254
266
|
@ReactMethod
|
|
255
267
|
public void getLocation(String desiredAccuracy, final Promise promise) {
|
|
256
268
|
|
|
@@ -387,7 +399,12 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
387
399
|
|
|
388
400
|
try {
|
|
389
401
|
if (status == Radar.RadarStatus.SUCCESS) {
|
|
390
|
-
|
|
402
|
+
WritableMap map = Arguments.createMap();
|
|
403
|
+
map.putString("status", status.toString());
|
|
404
|
+
if (token != null) {
|
|
405
|
+
map.putMap("token", RNRadarUtils.mapForJson(token.toJson()));
|
|
406
|
+
}
|
|
407
|
+
promise.resolve(map);
|
|
391
408
|
} else {
|
|
392
409
|
promise.reject(status.toString(), status.toString());
|
|
393
410
|
}
|
|
@@ -412,7 +429,12 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
412
429
|
|
|
413
430
|
try {
|
|
414
431
|
if (status == Radar.RadarStatus.SUCCESS) {
|
|
415
|
-
|
|
432
|
+
WritableMap map = Arguments.createMap();
|
|
433
|
+
map.putString("status", status.toString());
|
|
434
|
+
if (token != null) {
|
|
435
|
+
map.putMap("token", RNRadarUtils.mapForJson(token.toJson()));
|
|
436
|
+
}
|
|
437
|
+
promise.resolve(map);
|
|
416
438
|
} else {
|
|
417
439
|
promise.reject(status.toString(), status.toString());
|
|
418
440
|
}
|
|
@@ -455,7 +477,7 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
455
477
|
@ReactMethod
|
|
456
478
|
public void startTrackingVerified(ReadableMap optionsMap) {
|
|
457
479
|
boolean beacons = false;
|
|
458
|
-
int interval =
|
|
480
|
+
int interval = 1200;
|
|
459
481
|
|
|
460
482
|
if (optionsMap != null) {
|
|
461
483
|
beacons = optionsMap.hasKey("beacons") ? optionsMap.getBoolean("beacons") : beacons;
|
|
@@ -504,6 +526,11 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
504
526
|
Radar.stopTracking();
|
|
505
527
|
}
|
|
506
528
|
|
|
529
|
+
@ReactMethod
|
|
530
|
+
public void stopTrackingVerified() {
|
|
531
|
+
Radar.stopTrackingVerified();
|
|
532
|
+
}
|
|
533
|
+
|
|
507
534
|
@ReactMethod
|
|
508
535
|
public void isTracking(final Promise promise) {
|
|
509
536
|
if (promise == null) {
|
|
@@ -1283,33 +1310,4 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
1283
1310
|
Radar.logConversion(name, metadataObj, callback);
|
|
1284
1311
|
}
|
|
1285
1312
|
}
|
|
1286
|
-
|
|
1287
|
-
@ReactMethod
|
|
1288
|
-
public void requestForegroundLocationPermission() {
|
|
1289
|
-
Radar.requestForegroundLocationPermission();
|
|
1290
|
-
}
|
|
1291
|
-
|
|
1292
|
-
@ReactMethod
|
|
1293
|
-
public void requestBackgroundLocationPermission() {
|
|
1294
|
-
Radar.requestBackgroundLocationPermission();
|
|
1295
|
-
}
|
|
1296
|
-
|
|
1297
|
-
@ReactMethod
|
|
1298
|
-
public void getLocationPermissionStatus(final Promise promise) {
|
|
1299
|
-
if (promise == null) {
|
|
1300
|
-
return;
|
|
1301
|
-
}
|
|
1302
|
-
try {
|
|
1303
|
-
RadarLocationPermissionStatus options = Radar.getLocationPermissionStatus();
|
|
1304
|
-
promise.resolve(RNRadarUtils.mapForJson(options.toJson()));
|
|
1305
|
-
} catch(JSONException e) {
|
|
1306
|
-
Log.e(TAG, "JSONException", e);
|
|
1307
|
-
promise.reject(Radar.RadarStatus.ERROR_SERVER.toString(), Radar.RadarStatus.ERROR_SERVER.toString());
|
|
1308
|
-
}
|
|
1309
|
-
}
|
|
1310
|
-
|
|
1311
|
-
@ReactMethod
|
|
1312
|
-
public void openAppSettings() {
|
|
1313
|
-
Radar.openAppSettings();
|
|
1314
|
-
}
|
|
1315
1313
|
}
|
|
@@ -20,7 +20,6 @@ import io.radar.sdk.Radar;
|
|
|
20
20
|
import io.radar.sdk.RadarReceiver;
|
|
21
21
|
import io.radar.sdk.model.RadarEvent;
|
|
22
22
|
import io.radar.sdk.model.RadarUser;
|
|
23
|
-
import io.radar.sdk.model.RadarLocationPermissionStatus;
|
|
24
23
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
25
24
|
|
|
26
25
|
public class RNRadarReceiver extends RadarReceiver {
|
|
@@ -112,16 +111,4 @@ public class RNRadarReceiver extends RadarReceiver {
|
|
|
112
111
|
}
|
|
113
112
|
}
|
|
114
113
|
|
|
115
|
-
@Override
|
|
116
|
-
public void onLocationPermissionStatusUpdated(@NonNull Context context, @NonNull RadarLocationPermissionStatus status) {
|
|
117
|
-
try {
|
|
118
|
-
ReactApplication reactApplication = ((ReactApplication)context.getApplicationContext());
|
|
119
|
-
reactNativeHost = reactApplication.getReactNativeHost();
|
|
120
|
-
|
|
121
|
-
sendEvent("locationPermissionStatus", RNRadarUtils.mapForJson(status.toJson()));
|
|
122
|
-
} catch (Exception e) {
|
|
123
|
-
Log.e(TAG, "Exception", e);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
114
|
}
|
package/dist/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "React Native module for Radar, the leading geofencing and location tracking platform",
|
|
4
4
|
"homepage": "https://radar.com",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
|
-
"version": "3.
|
|
6
|
+
"version": "3.14.0",
|
|
7
7
|
"main": "dist/src/index.js",
|
|
8
8
|
"files": [
|
|
9
9
|
"android",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Location, RadarAutocompleteOptions, RadarContextCallback, RadarAddressCallback, RadarEventChannel, RadarGeocodeOptions, RadarGetDistanceOptions, RadarLocationCallback, RadarLogConversionCallback, RadarLogConversionOptions, RadarLogLevel, RadarMockTrackingOptions, RadarNotificationOptions, RadarPermissionsStatus, RadarReverseGeocodeOptions, RadarRouteCallback, RadarRouteMatrix, RadarSearchGeofencesCallback, RadarSearchGeofencesOptions, RadarSearchPlacesCallback, RadarSearchPlacesOptions, RadarStartTripOptions, RadarTrackCallback, RadarTrackOnceOptions, RadarTrackVerifiedCallback, RadarTrackingOptions, RadarTrackingOptionsDesiredAccuracy, RadarTrackingOptionsForegroundService, RadarTrackVerifiedOptions, RadarTripCallback, RadarTripOptions, RadarUpdateTripOptions, RadarVerifiedTrackingOptions, RadarListenerCallback, RadarGetMatrixOptions, RadarMetadata, RadarIPGeocodeCallback
|
|
1
|
+
import { Location, RadarAutocompleteOptions, RadarContextCallback, RadarAddressCallback, RadarEventChannel, RadarGeocodeOptions, RadarGetDistanceOptions, RadarLocationCallback, RadarLogConversionCallback, RadarLogConversionOptions, RadarLogLevel, RadarMockTrackingOptions, RadarNotificationOptions, RadarPermissionsStatus, RadarReverseGeocodeOptions, RadarRouteCallback, RadarRouteMatrix, RadarSearchGeofencesCallback, RadarSearchGeofencesOptions, RadarSearchPlacesCallback, RadarSearchPlacesOptions, RadarStartTripOptions, RadarTrackCallback, RadarTrackOnceOptions, RadarTrackVerifiedCallback, RadarTrackingOptions, RadarTrackingOptionsDesiredAccuracy, RadarTrackingOptionsForegroundService, RadarTrackVerifiedOptions, RadarTripCallback, RadarTripOptions, RadarUpdateTripOptions, RadarVerifiedTrackingOptions, RadarListenerCallback, RadarGetMatrixOptions, RadarMetadata, RadarIPGeocodeCallback } from "./types";
|
|
2
2
|
export interface RadarNativeInterface {
|
|
3
3
|
initialize: (publishableKey: string, fraud?: boolean) => void;
|
|
4
4
|
setLogLevel: (level: RadarLogLevel) => void;
|
|
@@ -10,10 +10,7 @@ export interface RadarNativeInterface {
|
|
|
10
10
|
getMetadata: () => Promise<RadarMetadata>;
|
|
11
11
|
setAnonymousTrackingEnabled: (enabled: boolean) => void;
|
|
12
12
|
getPermissionsStatus: () => Promise<RadarPermissionsStatus>;
|
|
13
|
-
|
|
14
|
-
requestBackgroundLocationPermission: () => void;
|
|
15
|
-
getLocationPermissionStatus: () => Promise<RadarLocationPermissionStatus>;
|
|
16
|
-
openAppSettings: () => void;
|
|
13
|
+
requestPermissions: (background: boolean) => Promise<RadarPermissionsStatus>;
|
|
17
14
|
getLocation: (desiredAccuracy?: RadarTrackingOptionsDesiredAccuracy) => Promise<RadarLocationCallback>;
|
|
18
15
|
trackOnce: (options?: RadarTrackOnceOptions | Location) => Promise<RadarTrackCallback>;
|
|
19
16
|
trackVerified: (options?: RadarTrackVerifiedOptions) => Promise<RadarTrackVerifiedCallback>;
|
|
@@ -25,9 +22,10 @@ export interface RadarNativeInterface {
|
|
|
25
22
|
startTrackingVerified: (options?: RadarVerifiedTrackingOptions) => void;
|
|
26
23
|
mockTracking: (options: RadarMockTrackingOptions) => void;
|
|
27
24
|
stopTracking: () => void;
|
|
25
|
+
stopTrackingVerified: () => void;
|
|
28
26
|
getTrackingOptions: () => Promise<RadarTrackingOptions>;
|
|
29
27
|
isUsingRemoteTrackingOptions: () => Promise<boolean>;
|
|
30
|
-
isTracking: () => boolean
|
|
28
|
+
isTracking: () => Promise<boolean>;
|
|
31
29
|
setForegroundServiceOptions: (options: RadarTrackingOptionsForegroundService) => void;
|
|
32
30
|
setNotificationOptions: (options: RadarNotificationOptions) => void;
|
|
33
31
|
getTripOptions: () => Promise<RadarTripOptions>;
|
|
@@ -243,13 +243,10 @@ export interface RadarErrorCallback {
|
|
|
243
243
|
export interface RadarLogUpdateCallback {
|
|
244
244
|
(status: string): void;
|
|
245
245
|
}
|
|
246
|
-
export
|
|
247
|
-
(status: RadarLocationPermissionStatus): void;
|
|
248
|
-
}
|
|
249
|
-
export type RadarListenerCallback = RadarEventUpdateCallback | RadarLocationUpdateCallback | RadarClientLocationUpdateCallback | RadarErrorCallback | RadarLogUpdateCallback | RadarLocationPermissionStatusCallback;
|
|
246
|
+
export type RadarListenerCallback = RadarEventUpdateCallback | RadarLocationUpdateCallback | RadarClientLocationUpdateCallback | RadarErrorCallback | RadarLogUpdateCallback;
|
|
250
247
|
export type RadarPermissionsStatus = "GRANTED_FOREGROUND" | "GRANTED_BACKGROUND" | "DENIED" | "NOT_DETERMINED" | "UNKNOWN";
|
|
251
248
|
export type RadarLocationSource = "FOREGROUND_LOCATION" | "BACKGROUND_LOCATION" | "MANUAL_LOCATION" | "VISIT_ARRIVAL" | "VISIT_DEPARTURE" | "GEOFENCE_ENTER" | "GEOFENCE_DWELL" | "GEOFENCE_EXIT" | "MOCK_LOCATION" | "BEACON_ENTER" | "BEACON_EXIT" | "UNKNOWN";
|
|
252
|
-
export type RadarEventChannel = "clientLocation" | "location" | "error" | "events" | "log" | "token"
|
|
249
|
+
export type RadarEventChannel = "clientLocation" | "location" | "error" | "events" | "log" | "token";
|
|
253
250
|
export type RadarLogLevel = "info" | "debug" | "warning" | "error" | "none";
|
|
254
251
|
export interface RadarRouteMatrix {
|
|
255
252
|
status: string;
|
|
@@ -474,6 +471,8 @@ export interface RadarFraud {
|
|
|
474
471
|
compromised: boolean;
|
|
475
472
|
jumped: boolean;
|
|
476
473
|
inaccurate: boolean;
|
|
474
|
+
blocked: boolean;
|
|
475
|
+
sharing: boolean;
|
|
477
476
|
}
|
|
478
477
|
export type RadarTrackingOptionsReplay = "all" | "stops" | "none";
|
|
479
478
|
export type RadarTrackingOptionsSync = "none" | "stopsAndExits" | "all";
|
|
@@ -491,24 +490,3 @@ export interface RadarTrackingOptionsForegroundService {
|
|
|
491
490
|
iconColor?: string;
|
|
492
491
|
}
|
|
493
492
|
export type RadarTripStatus = "unknown" | "started" | "approaching" | "arrived" | "expired" | "completed" | "canceled";
|
|
494
|
-
export interface RadarLocationPermissionStatusAndroid {
|
|
495
|
-
status: LocationPermissionState;
|
|
496
|
-
foregroundPermissionResult: boolean;
|
|
497
|
-
backgroundPermissionResult: boolean;
|
|
498
|
-
shouldShowRequestPermissionRationaleFG: boolean;
|
|
499
|
-
shouldShowRequestPermissionRationaleBG: boolean;
|
|
500
|
-
previouslyDeniedForeground: boolean;
|
|
501
|
-
inLocationPopup: boolean;
|
|
502
|
-
approximatePermissionResult: boolean;
|
|
503
|
-
previouslyDeniedBackground: boolean;
|
|
504
|
-
}
|
|
505
|
-
export interface RadarLocationPermissionStatusIOS {
|
|
506
|
-
status: LocationPermissionState;
|
|
507
|
-
locationManagerStatus: LocationManagerStatus;
|
|
508
|
-
backgroundPopupAvailable: boolean;
|
|
509
|
-
inForegroundPopup: boolean;
|
|
510
|
-
userRejectedBackgroundPermission: boolean;
|
|
511
|
-
}
|
|
512
|
-
export type RadarLocationPermissionStatus = RadarLocationPermissionStatusAndroid | RadarLocationPermissionStatusIOS;
|
|
513
|
-
export type LocationPermissionState = "NO_PERMISSION_GRANTED" | "FOREGROUND_PERMISSION_GRANTED" | "APPROXIMATE_PERMISSION_GRANTED" | "FOREGROUND_PERMISSION_REJECTED_ONCE" | "FOREGROUND_PERMISSION_REJECTED" | "FOREGROUND_PERMISSION_PENDING" | "BACKGROUND_PERMISSION_GRANTED" | "BACKGROUND_PERMISSION_REJECTED" | "BACKGROUND_PERMISSION_REJECTED_ONCE" | "BACKGROUND_PERMISSION_PENDING" | "PERMISSION_RESTRICTED" | "UNKNOWN";
|
|
514
|
-
export type LocationManagerStatus = "NotDetermined" | "Restricted" | "Denied" | "AuthorizedAlways" | "AuthorizedWhenInUse" | "Unknown";
|
package/dist/src/index.native.js
CHANGED
|
@@ -27,10 +27,7 @@ const setMetadata = (metadata) => {
|
|
|
27
27
|
const getMetadata = () => react_native_1.NativeModules.RNRadar.getMetadata();
|
|
28
28
|
const setAnonymousTrackingEnabled = (enabled) => react_native_1.NativeModules.RNRadar.setAnonymousTrackingEnabled(enabled);
|
|
29
29
|
const getPermissionsStatus = () => react_native_1.NativeModules.RNRadar.getPermissionsStatus();
|
|
30
|
-
const
|
|
31
|
-
const requestBackgroundLocationPermission = () => react_native_1.NativeModules.RNRadar.requestBackgroundLocationPermission();
|
|
32
|
-
const getLocationPermissionStatus = () => react_native_1.NativeModules.RNRadar.getLocationPermissionStatus();
|
|
33
|
-
const openAppSettings = () => react_native_1.NativeModules.RNRadar.openAppSettings();
|
|
30
|
+
const requestPermissions = (background) => react_native_1.NativeModules.RNRadar.requestPermissions(background);
|
|
34
31
|
const getLocation = (desiredAccuracy) => react_native_1.NativeModules.RNRadar.getLocation(desiredAccuracy);
|
|
35
32
|
const trackOnce = (options) => {
|
|
36
33
|
let backCompatibleOptions = options;
|
|
@@ -50,6 +47,7 @@ const startTrackingCustom = (options) => react_native_1.NativeModules.RNRadar.st
|
|
|
50
47
|
const startTrackingVerified = (options) => react_native_1.NativeModules.RNRadar.startTrackingVerified(options);
|
|
51
48
|
const mockTracking = (options) => react_native_1.NativeModules.RNRadar.mockTracking(options);
|
|
52
49
|
const stopTracking = () => react_native_1.NativeModules.RNRadar.stopTracking();
|
|
50
|
+
const stopTrackingVerified = () => react_native_1.NativeModules.RNRadar.stopTrackingVerified();
|
|
53
51
|
const getTrackingOptions = () => react_native_1.NativeModules.RNRadar.getTrackingOptions();
|
|
54
52
|
const isUsingRemoteTrackingOptions = () => react_native_1.NativeModules.RNRadar.isUsingRemoteTrackingOptions();
|
|
55
53
|
const isTracking = () => react_native_1.NativeModules.RNRadar.isTracking();
|
|
@@ -97,10 +95,7 @@ const Radar = {
|
|
|
97
95
|
setAnonymousTrackingEnabled,
|
|
98
96
|
isUsingRemoteTrackingOptions,
|
|
99
97
|
getPermissionsStatus,
|
|
100
|
-
|
|
101
|
-
requestBackgroundLocationPermission,
|
|
102
|
-
getLocationPermissionStatus,
|
|
103
|
-
openAppSettings,
|
|
98
|
+
requestPermissions,
|
|
104
99
|
getLocation,
|
|
105
100
|
trackOnce,
|
|
106
101
|
trackVerified,
|
|
@@ -112,6 +107,7 @@ const Radar = {
|
|
|
112
107
|
startTrackingVerified,
|
|
113
108
|
mockTracking,
|
|
114
109
|
stopTracking,
|
|
110
|
+
stopTrackingVerified,
|
|
115
111
|
isTracking,
|
|
116
112
|
getTrackingOptions,
|
|
117
113
|
setForegroundServiceOptions,
|
package/ios/Cartfile.resolved
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
github "radarlabs/radar-sdk-ios" "3.
|
|
1
|
+
github "radarlabs/radar-sdk-ios" "3.15.0"
|
package/ios/RNRadar.m
CHANGED
|
@@ -24,35 +24,6 @@ RCT_EXPORT_MODULE();
|
|
|
24
24
|
return self;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
+ (NSDictionary *)mapLocationPermissionStatus:(NSDictionary *)status {
|
|
28
|
-
NSString *statusString = status[@"locationPermissionState"];
|
|
29
|
-
NSString *newStatusString;
|
|
30
|
-
|
|
31
|
-
if ([statusString isEqualToString:@"NoPermissionGranted"]) {
|
|
32
|
-
newStatusString = @"NO_PERMISSION_GRANTED";
|
|
33
|
-
} else if ([statusString isEqualToString:@"ForegroundPermissionGranted"]) {
|
|
34
|
-
newStatusString = @"FOREGROUND_PERMISSION_GRANTED";
|
|
35
|
-
} else if ([statusString isEqualToString:@"ForegroundPermissionRejected"]) {
|
|
36
|
-
newStatusString = @"FOREGROUND_PERMISSION_REJECTED";
|
|
37
|
-
} else if ([statusString isEqualToString:@"ForegroundPermissionPending"]) {
|
|
38
|
-
newStatusString = @"FOREGROUND_PERMISSION_PENDING";
|
|
39
|
-
} else if ([statusString isEqualToString:@"BackgroundPermissionGranted"]) {
|
|
40
|
-
newStatusString = @"BACKGROUND_PERMISSION_GRANTED";
|
|
41
|
-
} else if ([statusString isEqualToString:@"BackgroundPermissionRejected"]) {
|
|
42
|
-
newStatusString = @"BACKGROUND_PERMISSION_REJECTED";
|
|
43
|
-
} else if ([statusString isEqualToString:@"BackgroundPermissionPending"]) {
|
|
44
|
-
newStatusString = @"BACKGROUND_PERMISSION_PENDING";
|
|
45
|
-
} else if ([statusString isEqualToString:@"PermissionRestricted"]) {
|
|
46
|
-
newStatusString = @"PERMISSION_RESTRICTED";
|
|
47
|
-
} else {
|
|
48
|
-
newStatusString = @"UNKNOWN";
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
NSMutableDictionary *newStatus = [status mutableCopy];
|
|
52
|
-
[newStatus removeObjectForKey:@"locationPermissionState"];
|
|
53
|
-
[newStatus setValue:newStatusString forKey:@"status"];
|
|
54
|
-
return newStatus;
|
|
55
|
-
}
|
|
56
27
|
|
|
57
28
|
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status {
|
|
58
29
|
if (permissionsRequestResolver) {
|
|
@@ -70,7 +41,7 @@ RCT_EXPORT_MODULE();
|
|
|
70
41
|
}
|
|
71
42
|
|
|
72
43
|
- (NSArray<NSString *> *)supportedEvents {
|
|
73
|
-
return @[@"events", @"location", @"clientLocation", @"error", @"log", @"token"
|
|
44
|
+
return @[@"events", @"location", @"clientLocation", @"error", @"log", @"token"];
|
|
74
45
|
}
|
|
75
46
|
|
|
76
47
|
- (void)startObserving {
|
|
@@ -129,15 +100,9 @@ RCT_EXPORT_MODULE();
|
|
|
129
100
|
}
|
|
130
101
|
}
|
|
131
102
|
|
|
132
|
-
- (void)didUpdateLocationPermissionStatus:(RadarLocationPermissionStatus *)status {
|
|
133
|
-
if (hasListeners) {
|
|
134
|
-
[self sendEventWithName:@"locationPermissionStatus" body:[RNRadar mapLocationPermissionStatus:[status dictionaryValue]]];
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
103
|
RCT_EXPORT_METHOD(initialize:(NSString *)publishableKey fraud:(BOOL)fraud) {
|
|
139
104
|
[[NSUserDefaults standardUserDefaults] setObject:@"ReactNative" forKey:@"radar-xPlatformSDKType"];
|
|
140
|
-
[[NSUserDefaults standardUserDefaults] setObject:@"3.
|
|
105
|
+
[[NSUserDefaults standardUserDefaults] setObject:@"3.14.0" forKey:@"radar-xPlatformSDKVersion"];
|
|
141
106
|
[Radar initializeWithPublishableKey:publishableKey];
|
|
142
107
|
}
|
|
143
108
|
|
|
@@ -223,6 +188,19 @@ RCT_REMAP_METHOD(getPermissionsStatus, getPermissionsStatusWithResolver:(RCTProm
|
|
|
223
188
|
resolve(statusStr);
|
|
224
189
|
}
|
|
225
190
|
|
|
191
|
+
RCT_EXPORT_METHOD(requestPermissions:(BOOL)background resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
|
|
192
|
+
permissionsRequestResolver = resolve;
|
|
193
|
+
|
|
194
|
+
CLAuthorizationStatus status = [CLLocationManager authorizationStatus];
|
|
195
|
+
if (background && status == kCLAuthorizationStatusAuthorizedWhenInUse) {
|
|
196
|
+
[locationManager requestAlwaysAuthorization];
|
|
197
|
+
} else if (status == kCLAuthorizationStatusNotDetermined) {
|
|
198
|
+
[locationManager requestWhenInUseAuthorization];
|
|
199
|
+
} else {
|
|
200
|
+
[self getPermissionsStatusWithResolver:resolve rejecter:reject];
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
|
|
226
204
|
RCT_EXPORT_METHOD(getLocation:(NSString *)desiredAccuracy resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
|
|
227
205
|
__block RCTPromiseResolveBlock resolver = resolve;
|
|
228
206
|
__block RCTPromiseRejectBlock rejecter = reject;
|
|
@@ -341,11 +319,12 @@ RCT_EXPORT_METHOD(trackVerified:(NSDictionary *)optionsDict resolve:(RCTPromiseR
|
|
|
341
319
|
|
|
342
320
|
RadarTrackVerifiedCompletionHandler completionHandler = ^(RadarStatus status, RadarVerifiedLocationToken * _Nullable token) {
|
|
343
321
|
if (status == RadarStatusSuccess && resolver) {
|
|
322
|
+
NSMutableDictionary *dict = [NSMutableDictionary new];
|
|
323
|
+
[dict setObject:[Radar stringForStatus:status] forKey:@"status"];
|
|
344
324
|
if (token != nil) {
|
|
345
|
-
|
|
346
|
-
} else {
|
|
347
|
-
resolver(nil);
|
|
325
|
+
[dict setObject:[token dictionaryValue] forKey:@"token"];
|
|
348
326
|
}
|
|
327
|
+
resolver(dict);
|
|
349
328
|
} else if (rejecter) {
|
|
350
329
|
rejecter([Radar stringForStatus:status], [Radar stringForStatus:status], nil);
|
|
351
330
|
}
|
|
@@ -362,11 +341,12 @@ RCT_EXPORT_METHOD(getVerifiedLocationToken:(RCTPromiseResolveBlock)resolve rejec
|
|
|
362
341
|
|
|
363
342
|
RadarTrackVerifiedCompletionHandler completionHandler = ^(RadarStatus status, RadarVerifiedLocationToken * _Nullable token) {
|
|
364
343
|
if (status == RadarStatusSuccess && resolver) {
|
|
344
|
+
NSMutableDictionary *dict = [NSMutableDictionary new];
|
|
345
|
+
[dict setObject:[Radar stringForStatus:status] forKey:@"status"];
|
|
365
346
|
if (token != nil) {
|
|
366
|
-
|
|
367
|
-
} else {
|
|
368
|
-
resolver(nil);
|
|
347
|
+
[dict setObject:[token dictionaryValue] forKey:@"token"];
|
|
369
348
|
}
|
|
349
|
+
resolver(dict);
|
|
370
350
|
} else if (rejecter) {
|
|
371
351
|
rejecter([Radar stringForStatus:status], [Radar stringForStatus:status], nil);
|
|
372
352
|
}
|
|
@@ -397,13 +377,9 @@ RCT_EXPORT_METHOD(startTrackingCustom:(NSDictionary *)optionsDict) {
|
|
|
397
377
|
RCT_EXPORT_METHOD(startTrackingVerified:(NSDictionary *)optionsDict) {
|
|
398
378
|
BOOL token = NO;
|
|
399
379
|
BOOL beacons = NO;
|
|
400
|
-
double interval =
|
|
380
|
+
double interval = 1200;
|
|
401
381
|
|
|
402
382
|
if (optionsDict != nil) {
|
|
403
|
-
NSNumber *tokenNumber = optionsDict[@"token"];
|
|
404
|
-
if (tokenNumber != nil && [tokenNumber isKindOfClass:[NSNumber class]]) {
|
|
405
|
-
token = [tokenNumber boolValue];
|
|
406
|
-
}
|
|
407
383
|
NSNumber *beaconsNumber = optionsDict[@"beacons"];
|
|
408
384
|
if (beaconsNumber != nil && [beaconsNumber isKindOfClass:[NSNumber class]]) {
|
|
409
385
|
beacons = [beaconsNumber boolValue];
|
|
@@ -461,6 +437,10 @@ RCT_EXPORT_METHOD(stopTracking) {
|
|
|
461
437
|
[Radar stopTracking];
|
|
462
438
|
}
|
|
463
439
|
|
|
440
|
+
RCT_EXPORT_METHOD(stopTrackingVerified) {
|
|
441
|
+
[Radar stopTrackingVerified];
|
|
442
|
+
}
|
|
443
|
+
|
|
464
444
|
RCT_EXPORT_METHOD(isTracking:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
|
|
465
445
|
BOOL res = [Radar isTracking];
|
|
466
446
|
resolve(@(res));
|
|
@@ -1170,21 +1150,4 @@ RCT_EXPORT_METHOD(logConversion:(NSDictionary *)optionsDict resolve:(RCTPromiseR
|
|
|
1170
1150
|
}
|
|
1171
1151
|
}
|
|
1172
1152
|
|
|
1173
|
-
RCT_EXPORT_METHOD(requestForegroundLocationPermission) {
|
|
1174
|
-
[Radar requestForegroundLocationPermission];
|
|
1175
|
-
}
|
|
1176
|
-
|
|
1177
|
-
RCT_EXPORT_METHOD(requestBackgroundLocationPermission) {
|
|
1178
|
-
[Radar requestBackgroundLocationPermission];
|
|
1179
|
-
}
|
|
1180
|
-
|
|
1181
|
-
RCT_EXPORT_METHOD(getLocationPermissionStatus:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
|
|
1182
|
-
RadarLocationPermissionStatus* status = [Radar getLocationPermissionStatus];
|
|
1183
|
-
resolve([RNRadar mapLocationPermissionStatus:[status dictionaryValue]]);
|
|
1184
|
-
}
|
|
1185
|
-
|
|
1186
|
-
RCT_EXPORT_METHOD(openAppSettings) {
|
|
1187
|
-
[Radar openAppSettings];
|
|
1188
|
-
}
|
|
1189
|
-
|
|
1190
1153
|
@end
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "React Native module for Radar, the leading geofencing and location tracking platform",
|
|
4
4
|
"homepage": "https://radar.com",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
|
-
"version": "3.
|
|
6
|
+
"version": "3.14.0",
|
|
7
7
|
"main": "dist/src/index.js",
|
|
8
8
|
"files": [
|
|
9
9
|
"android",
|
|
@@ -36,7 +36,6 @@ import {
|
|
|
36
36
|
RadarGetMatrixOptions,
|
|
37
37
|
RadarMetadata,
|
|
38
38
|
RadarIPGeocodeCallback,
|
|
39
|
-
RadarLocationPermissionStatus,
|
|
40
39
|
} from "./types";
|
|
41
40
|
|
|
42
41
|
export interface RadarNativeInterface {
|
|
@@ -50,10 +49,7 @@ export interface RadarNativeInterface {
|
|
|
50
49
|
getMetadata: () => Promise<RadarMetadata>;
|
|
51
50
|
setAnonymousTrackingEnabled: (enabled: boolean) => void;
|
|
52
51
|
getPermissionsStatus: () => Promise<RadarPermissionsStatus>;
|
|
53
|
-
|
|
54
|
-
requestBackgroundLocationPermission: () => void;
|
|
55
|
-
getLocationPermissionStatus: () => Promise<RadarLocationPermissionStatus>;
|
|
56
|
-
openAppSettings: () => void;
|
|
52
|
+
requestPermissions: (background: boolean) => Promise<RadarPermissionsStatus>;
|
|
57
53
|
getLocation: (
|
|
58
54
|
desiredAccuracy?: RadarTrackingOptionsDesiredAccuracy
|
|
59
55
|
) => Promise<RadarLocationCallback>;
|
|
@@ -69,9 +65,10 @@ export interface RadarNativeInterface {
|
|
|
69
65
|
startTrackingVerified: (options?: RadarVerifiedTrackingOptions) => void;
|
|
70
66
|
mockTracking: (options: RadarMockTrackingOptions) => void;
|
|
71
67
|
stopTracking: () => void;
|
|
68
|
+
stopTrackingVerified: () => void;
|
|
72
69
|
getTrackingOptions: () => Promise<RadarTrackingOptions>;
|
|
73
70
|
isUsingRemoteTrackingOptions: () => Promise<boolean>;
|
|
74
|
-
isTracking: () => boolean
|
|
71
|
+
isTracking: () => Promise<boolean>;
|
|
75
72
|
setForegroundServiceOptions: (
|
|
76
73
|
options: RadarTrackingOptionsForegroundService
|
|
77
74
|
) => void;
|
package/src/@types/types.ts
CHANGED
|
@@ -421,9 +421,6 @@ export interface RadarLogUpdateCallback {
|
|
|
421
421
|
(status: string): void;
|
|
422
422
|
}
|
|
423
423
|
|
|
424
|
-
export interface RadarLocationPermissionStatusCallback {
|
|
425
|
-
(status: RadarLocationPermissionStatus): void;
|
|
426
|
-
}
|
|
427
424
|
|
|
428
425
|
export type RadarListenerCallback =
|
|
429
426
|
| RadarEventUpdateCallback
|
|
@@ -431,7 +428,6 @@ export type RadarListenerCallback =
|
|
|
431
428
|
| RadarClientLocationUpdateCallback
|
|
432
429
|
| RadarErrorCallback
|
|
433
430
|
| RadarLogUpdateCallback
|
|
434
|
-
| RadarLocationPermissionStatusCallback;
|
|
435
431
|
|
|
436
432
|
export type RadarPermissionsStatus =
|
|
437
433
|
| "GRANTED_FOREGROUND"
|
|
@@ -454,7 +450,7 @@ export type RadarLocationSource =
|
|
|
454
450
|
| "BEACON_EXIT"
|
|
455
451
|
| "UNKNOWN";
|
|
456
452
|
|
|
457
|
-
export type RadarEventChannel = "clientLocation" | "location" | "error" | "events" | "log" | "token"
|
|
453
|
+
export type RadarEventChannel = "clientLocation" | "location" | "error" | "events" | "log" | "token" ;
|
|
458
454
|
|
|
459
455
|
export type RadarLogLevel = "info" | "debug" | "warning" | "error" | "none";
|
|
460
456
|
|
|
@@ -754,6 +750,8 @@ export interface RadarFraud {
|
|
|
754
750
|
compromised: boolean;
|
|
755
751
|
jumped: boolean;
|
|
756
752
|
inaccurate: boolean;
|
|
753
|
+
blocked: boolean;
|
|
754
|
+
sharing: boolean;
|
|
757
755
|
}
|
|
758
756
|
|
|
759
757
|
export type RadarTrackingOptionsReplay = "all" | "stops" | "none";
|
|
@@ -784,47 +782,3 @@ export type RadarTripStatus =
|
|
|
784
782
|
| "completed"
|
|
785
783
|
| "canceled";
|
|
786
784
|
|
|
787
|
-
export interface RadarLocationPermissionStatusAndroid {
|
|
788
|
-
status: LocationPermissionState;
|
|
789
|
-
foregroundPermissionResult: boolean;
|
|
790
|
-
backgroundPermissionResult: boolean;
|
|
791
|
-
shouldShowRequestPermissionRationaleFG: boolean;
|
|
792
|
-
shouldShowRequestPermissionRationaleBG: boolean;
|
|
793
|
-
previouslyDeniedForeground: boolean;
|
|
794
|
-
inLocationPopup: boolean;
|
|
795
|
-
approximatePermissionResult: boolean;
|
|
796
|
-
previouslyDeniedBackground: boolean;
|
|
797
|
-
}
|
|
798
|
-
|
|
799
|
-
export interface RadarLocationPermissionStatusIOS {
|
|
800
|
-
status: LocationPermissionState;
|
|
801
|
-
locationManagerStatus: LocationManagerStatus;
|
|
802
|
-
backgroundPopupAvailable: boolean;
|
|
803
|
-
inForegroundPopup: boolean;
|
|
804
|
-
userRejectedBackgroundPermission: boolean;
|
|
805
|
-
}
|
|
806
|
-
|
|
807
|
-
export type RadarLocationPermissionStatus =
|
|
808
|
-
RadarLocationPermissionStatusAndroid | RadarLocationPermissionStatusIOS
|
|
809
|
-
|
|
810
|
-
export type LocationPermissionState =
|
|
811
|
-
| "NO_PERMISSION_GRANTED"
|
|
812
|
-
| "FOREGROUND_PERMISSION_GRANTED"
|
|
813
|
-
| "APPROXIMATE_PERMISSION_GRANTED"
|
|
814
|
-
| "FOREGROUND_PERMISSION_REJECTED_ONCE"
|
|
815
|
-
| "FOREGROUND_PERMISSION_REJECTED"
|
|
816
|
-
| "FOREGROUND_PERMISSION_PENDING"
|
|
817
|
-
| "BACKGROUND_PERMISSION_GRANTED"
|
|
818
|
-
| "BACKGROUND_PERMISSION_REJECTED"
|
|
819
|
-
| "BACKGROUND_PERMISSION_REJECTED_ONCE"
|
|
820
|
-
| "BACKGROUND_PERMISSION_PENDING"
|
|
821
|
-
| "PERMISSION_RESTRICTED"
|
|
822
|
-
| "UNKNOWN";
|
|
823
|
-
|
|
824
|
-
export type LocationManagerStatus =
|
|
825
|
-
| "NotDetermined"
|
|
826
|
-
| "Restricted"
|
|
827
|
-
| "Denied"
|
|
828
|
-
| "AuthorizedAlways"
|
|
829
|
-
| "AuthorizedWhenInUse"
|
|
830
|
-
| "Unknown";
|
package/src/index.native.ts
CHANGED
|
@@ -39,7 +39,6 @@ import {
|
|
|
39
39
|
RadarIPGeocodeCallback,
|
|
40
40
|
RadarTrackVerifiedOptions,
|
|
41
41
|
RadarTrackVerifiedCallback,
|
|
42
|
-
RadarLocationPermissionStatus,
|
|
43
42
|
} from "./@types/types";
|
|
44
43
|
|
|
45
44
|
if (
|
|
@@ -85,16 +84,10 @@ const setAnonymousTrackingEnabled = (enabled: boolean): void =>
|
|
|
85
84
|
const getPermissionsStatus = (): Promise<RadarPermissionsStatus> =>
|
|
86
85
|
NativeModules.RNRadar.getPermissionsStatus();
|
|
87
86
|
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
NativeModules.RNRadar.requestBackgroundLocationPermission();
|
|
93
|
-
|
|
94
|
-
const getLocationPermissionStatus = (): Promise<RadarLocationPermissionStatus> =>
|
|
95
|
-
NativeModules.RNRadar.getLocationPermissionStatus();
|
|
96
|
-
|
|
97
|
-
const openAppSettings = () => NativeModules.RNRadar.openAppSettings()
|
|
87
|
+
const requestPermissions = (
|
|
88
|
+
background: boolean
|
|
89
|
+
): Promise<RadarPermissionsStatus> =>
|
|
90
|
+
NativeModules.RNRadar.requestPermissions(background);
|
|
98
91
|
|
|
99
92
|
const getLocation = (
|
|
100
93
|
desiredAccuracy?: RadarTrackingOptionsDesiredAccuracy
|
|
@@ -115,10 +108,12 @@ const trackOnce = (
|
|
|
115
108
|
return NativeModules.RNRadar.trackOnce(backCompatibleOptions);
|
|
116
109
|
};
|
|
117
110
|
|
|
118
|
-
const trackVerified = (
|
|
111
|
+
const trackVerified = (
|
|
112
|
+
options?: RadarTrackVerifiedOptions
|
|
113
|
+
): Promise<RadarTrackVerifiedCallback> =>
|
|
119
114
|
NativeModules.RNRadar.trackVerified(options);
|
|
120
115
|
|
|
121
|
-
const getVerifiedLocationToken = (): Promise<RadarTrackVerifiedCallback> =>
|
|
116
|
+
const getVerifiedLocationToken = (): Promise<RadarTrackVerifiedCallback> =>
|
|
122
117
|
NativeModules.RNRadar.getVerifiedLocationToken();
|
|
123
118
|
|
|
124
119
|
const startTrackingEfficient = (): void =>
|
|
@@ -141,13 +136,16 @@ const mockTracking = (options: RadarMockTrackingOptions): void =>
|
|
|
141
136
|
|
|
142
137
|
const stopTracking = (): void => NativeModules.RNRadar.stopTracking();
|
|
143
138
|
|
|
139
|
+
const stopTrackingVerified = (): void =>
|
|
140
|
+
NativeModules.RNRadar.stopTrackingVerified();
|
|
141
|
+
|
|
144
142
|
const getTrackingOptions = (): Promise<RadarTrackingOptions> =>
|
|
145
143
|
NativeModules.RNRadar.getTrackingOptions();
|
|
146
144
|
|
|
147
145
|
const isUsingRemoteTrackingOptions = (): Promise<boolean> =>
|
|
148
146
|
NativeModules.RNRadar.isUsingRemoteTrackingOptions();
|
|
149
147
|
|
|
150
|
-
const isTracking = (): boolean => NativeModules.RNRadar.isTracking();
|
|
148
|
+
const isTracking = (): Promise<boolean> => NativeModules.RNRadar.isTracking();
|
|
151
149
|
|
|
152
150
|
const setForegroundServiceOptions = (
|
|
153
151
|
options: RadarTrackingOptionsForegroundService
|
|
@@ -199,7 +197,9 @@ const autocomplete = (
|
|
|
199
197
|
const geocode = (options: RadarGeocodeOptions): Promise<RadarAddressCallback> =>
|
|
200
198
|
NativeModules.RNRadar.geocode(options);
|
|
201
199
|
|
|
202
|
-
const reverseGeocode = (
|
|
200
|
+
const reverseGeocode = (
|
|
201
|
+
options?: RadarReverseGeocodeOptions
|
|
202
|
+
): Promise<RadarAddressCallback> =>
|
|
203
203
|
NativeModules.RNRadar.reverseGeocode(options);
|
|
204
204
|
|
|
205
205
|
const ipGeocode = (): Promise<RadarIPGeocodeCallback> =>
|
|
@@ -220,10 +220,15 @@ const logConversion = (
|
|
|
220
220
|
const sendEvent = (name: string, metadata: RadarMetadata): void =>
|
|
221
221
|
NativeModules.RNRadar.sendEvent(name, metadata);
|
|
222
222
|
|
|
223
|
-
const on = (
|
|
224
|
-
|
|
223
|
+
const on = (
|
|
224
|
+
channel: RadarEventChannel,
|
|
225
|
+
callback: RadarListenerCallback
|
|
226
|
+
): void => eventEmitter.addListener(channel, callback);
|
|
225
227
|
|
|
226
|
-
const off = (
|
|
228
|
+
const off = (
|
|
229
|
+
channel: RadarEventChannel,
|
|
230
|
+
callback?: Function | undefined
|
|
231
|
+
): void => {
|
|
227
232
|
if (callback) {
|
|
228
233
|
// @ts-ignore
|
|
229
234
|
eventEmitter.removeListener(channel, callback);
|
|
@@ -249,10 +254,7 @@ const Radar: RadarNativeInterface = {
|
|
|
249
254
|
setAnonymousTrackingEnabled,
|
|
250
255
|
isUsingRemoteTrackingOptions,
|
|
251
256
|
getPermissionsStatus,
|
|
252
|
-
|
|
253
|
-
requestBackgroundLocationPermission,
|
|
254
|
-
getLocationPermissionStatus,
|
|
255
|
-
openAppSettings,
|
|
257
|
+
requestPermissions,
|
|
256
258
|
getLocation,
|
|
257
259
|
trackOnce,
|
|
258
260
|
trackVerified,
|
|
@@ -264,6 +266,7 @@ const Radar: RadarNativeInterface = {
|
|
|
264
266
|
startTrackingVerified,
|
|
265
267
|
mockTracking,
|
|
266
268
|
stopTracking,
|
|
269
|
+
stopTrackingVerified,
|
|
267
270
|
isTracking,
|
|
268
271
|
getTrackingOptions,
|
|
269
272
|
setForegroundServiceOptions,
|