react-native-radar 3.12.3 → 3.13.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/build.gradle +2 -2
- package/android/src/main/java/io/radar/react/RNRadarModule.java +9 -36
- package/dist/package.json +1 -1
- package/dist/src/@types/RadarNativeInterface.d.ts +6 -4
- package/dist/src/@types/types.d.ts +1 -3
- package/dist/src/index.native.js +8 -4
- package/ios/RNRadar.m +14 -32
- package/package.json +1 -1
- package/src/@types/RadarNativeInterface.ts +5 -3
- package/src/@types/types.ts +1 -2
- package/src/index.native.ts +16 -9
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.13.0-beta.1'
|
|
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.13.2'
|
|
48
|
+
api 'io.radar:sdk:3.13.1-beta.2'
|
|
49
49
|
}
|
|
50
50
|
|
|
@@ -64,6 +64,10 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
64
64
|
verifiedReceiver = new RNRadarVerifiedReceiver();
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
public static void onActivityCreate(Activity activity, Context context) {
|
|
68
|
+
Radar.onActivityCreate(activity, context);
|
|
69
|
+
}
|
|
70
|
+
|
|
67
71
|
@ReactMethod
|
|
68
72
|
public void addListener(String eventName) {
|
|
69
73
|
if (listenerCount == 0) {
|
|
@@ -97,7 +101,7 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
97
101
|
this.fraud = fraud;
|
|
98
102
|
SharedPreferences.Editor editor = getReactApplicationContext().getSharedPreferences("RadarSDK", Context.MODE_PRIVATE).edit();
|
|
99
103
|
editor.putString("x_platform_sdk_type", "ReactNative");
|
|
100
|
-
editor.putString("x_platform_sdk_version", "3.
|
|
104
|
+
editor.putString("x_platform_sdk_version", "3.13.0-beta.1");
|
|
101
105
|
editor.apply();
|
|
102
106
|
if (fraud) {
|
|
103
107
|
Radar.initialize(getReactApplicationContext(), publishableKey, receiver, Radar.RadarLocationServicesProvider.GOOGLE, fraud);
|
|
@@ -219,8 +223,7 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
219
223
|
return;
|
|
220
224
|
}
|
|
221
225
|
|
|
222
|
-
boolean foreground = ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
|
|
223
|
-
ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED;
|
|
226
|
+
boolean foreground = ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED;
|
|
224
227
|
boolean background = foreground;
|
|
225
228
|
boolean denied = ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.ACCESS_FINE_LOCATION);
|
|
226
229
|
|
|
@@ -248,21 +251,6 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
248
251
|
return true;
|
|
249
252
|
}
|
|
250
253
|
|
|
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
|
-
|
|
266
254
|
@ReactMethod
|
|
267
255
|
public void getLocation(String desiredAccuracy, final Promise promise) {
|
|
268
256
|
|
|
@@ -399,12 +387,7 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
399
387
|
|
|
400
388
|
try {
|
|
401
389
|
if (status == Radar.RadarStatus.SUCCESS) {
|
|
402
|
-
|
|
403
|
-
map.putString("status", status.toString());
|
|
404
|
-
if (token != null) {
|
|
405
|
-
map.putMap("token", RNRadarUtils.mapForJson(token.toJson()));
|
|
406
|
-
}
|
|
407
|
-
promise.resolve(map);
|
|
390
|
+
promise.resolve(token != null ? RNRadarUtils.mapForJson(token.toJson()) : null);
|
|
408
391
|
} else {
|
|
409
392
|
promise.reject(status.toString(), status.toString());
|
|
410
393
|
}
|
|
@@ -429,12 +412,7 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
429
412
|
|
|
430
413
|
try {
|
|
431
414
|
if (status == Radar.RadarStatus.SUCCESS) {
|
|
432
|
-
|
|
433
|
-
map.putString("status", status.toString());
|
|
434
|
-
if (token != null) {
|
|
435
|
-
map.putMap("token", RNRadarUtils.mapForJson(token.toJson()));
|
|
436
|
-
}
|
|
437
|
-
promise.resolve(map);
|
|
415
|
+
promise.resolve(token != null ? RNRadarUtils.mapForJson(token.toJson()) : null);
|
|
438
416
|
} else {
|
|
439
417
|
promise.reject(status.toString(), status.toString());
|
|
440
418
|
}
|
|
@@ -477,7 +455,7 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
477
455
|
@ReactMethod
|
|
478
456
|
public void startTrackingVerified(ReadableMap optionsMap) {
|
|
479
457
|
boolean beacons = false;
|
|
480
|
-
int interval =
|
|
458
|
+
int interval = 1;
|
|
481
459
|
|
|
482
460
|
if (optionsMap != null) {
|
|
483
461
|
beacons = optionsMap.hasKey("beacons") ? optionsMap.getBoolean("beacons") : beacons;
|
|
@@ -526,11 +504,6 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
526
504
|
Radar.stopTracking();
|
|
527
505
|
}
|
|
528
506
|
|
|
529
|
-
@ReactMethod
|
|
530
|
-
public void stopTrackingVerified() {
|
|
531
|
-
Radar.stopTrackingVerified();
|
|
532
|
-
}
|
|
533
|
-
|
|
534
507
|
@ReactMethod
|
|
535
508
|
public void isTracking(final Promise promise) {
|
|
536
509
|
if (promise == null) {
|
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.13.0-beta.1",
|
|
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 } from "./types";
|
|
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, RadarLocationPermissionStatus } from "./types";
|
|
2
2
|
export interface RadarNativeInterface {
|
|
3
3
|
initialize: (publishableKey: string, fraud?: boolean) => void;
|
|
4
4
|
setLogLevel: (level: RadarLogLevel) => void;
|
|
@@ -10,7 +10,10 @@ export interface RadarNativeInterface {
|
|
|
10
10
|
getMetadata: () => Promise<RadarMetadata>;
|
|
11
11
|
setAnonymousTrackingEnabled: (enabled: boolean) => void;
|
|
12
12
|
getPermissionsStatus: () => Promise<RadarPermissionsStatus>;
|
|
13
|
-
|
|
13
|
+
requestForegroundLocationPermission: () => void;
|
|
14
|
+
requestBackgroundLocationPermission: () => void;
|
|
15
|
+
getLocationPermissionStatus: () => Promise<RadarLocationPermissionStatus>;
|
|
16
|
+
openAppSettings: () => void;
|
|
14
17
|
getLocation: (desiredAccuracy?: RadarTrackingOptionsDesiredAccuracy) => Promise<RadarLocationCallback>;
|
|
15
18
|
trackOnce: (options?: RadarTrackOnceOptions | Location) => Promise<RadarTrackCallback>;
|
|
16
19
|
trackVerified: (options?: RadarTrackVerifiedOptions) => Promise<RadarTrackVerifiedCallback>;
|
|
@@ -22,10 +25,9 @@ export interface RadarNativeInterface {
|
|
|
22
25
|
startTrackingVerified: (options?: RadarVerifiedTrackingOptions) => void;
|
|
23
26
|
mockTracking: (options: RadarMockTrackingOptions) => void;
|
|
24
27
|
stopTracking: () => void;
|
|
25
|
-
stopTrackingVerified: () => void;
|
|
26
28
|
getTrackingOptions: () => Promise<RadarTrackingOptions>;
|
|
27
29
|
isUsingRemoteTrackingOptions: () => Promise<boolean>;
|
|
28
|
-
isTracking: () =>
|
|
30
|
+
isTracking: () => boolean;
|
|
29
31
|
setForegroundServiceOptions: (options: RadarTrackingOptionsForegroundService) => void;
|
|
30
32
|
setNotificationOptions: (options: RadarNotificationOptions) => void;
|
|
31
33
|
getTripOptions: () => Promise<RadarTripOptions>;
|
|
@@ -474,8 +474,6 @@ export interface RadarFraud {
|
|
|
474
474
|
compromised: boolean;
|
|
475
475
|
jumped: boolean;
|
|
476
476
|
inaccurate: boolean;
|
|
477
|
-
blocked: boolean;
|
|
478
|
-
sharing: boolean;
|
|
479
477
|
}
|
|
480
478
|
export type RadarTrackingOptionsReplay = "all" | "stops" | "none";
|
|
481
479
|
export type RadarTrackingOptionsSync = "none" | "stopsAndExits" | "all";
|
|
@@ -512,5 +510,5 @@ export interface RadarLocationPermissionStatusIOS {
|
|
|
512
510
|
userRejectedBackgroundPermission: boolean;
|
|
513
511
|
}
|
|
514
512
|
export type RadarLocationPermissionStatus = RadarLocationPermissionStatusAndroid | RadarLocationPermissionStatusIOS;
|
|
515
|
-
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" | "PERMISSION_RESTRICTED" | "UNKNOWN";
|
|
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";
|
|
516
514
|
export type LocationManagerStatus = "NotDetermined" | "Restricted" | "Denied" | "AuthorizedAlways" | "AuthorizedWhenInUse" | "Unknown";
|
package/dist/src/index.native.js
CHANGED
|
@@ -27,7 +27,10 @@ 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
|
|
30
|
+
const requestForegroundLocationPermission = () => react_native_1.NativeModules.RNRadar.requestForegroundLocationPermission();
|
|
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();
|
|
31
34
|
const getLocation = (desiredAccuracy) => react_native_1.NativeModules.RNRadar.getLocation(desiredAccuracy);
|
|
32
35
|
const trackOnce = (options) => {
|
|
33
36
|
let backCompatibleOptions = options;
|
|
@@ -47,7 +50,6 @@ const startTrackingCustom = (options) => react_native_1.NativeModules.RNRadar.st
|
|
|
47
50
|
const startTrackingVerified = (options) => react_native_1.NativeModules.RNRadar.startTrackingVerified(options);
|
|
48
51
|
const mockTracking = (options) => react_native_1.NativeModules.RNRadar.mockTracking(options);
|
|
49
52
|
const stopTracking = () => react_native_1.NativeModules.RNRadar.stopTracking();
|
|
50
|
-
const stopTrackingVerified = () => react_native_1.NativeModules.RNRadar.stopTrackingVerified();
|
|
51
53
|
const getTrackingOptions = () => react_native_1.NativeModules.RNRadar.getTrackingOptions();
|
|
52
54
|
const isUsingRemoteTrackingOptions = () => react_native_1.NativeModules.RNRadar.isUsingRemoteTrackingOptions();
|
|
53
55
|
const isTracking = () => react_native_1.NativeModules.RNRadar.isTracking();
|
|
@@ -95,7 +97,10 @@ const Radar = {
|
|
|
95
97
|
setAnonymousTrackingEnabled,
|
|
96
98
|
isUsingRemoteTrackingOptions,
|
|
97
99
|
getPermissionsStatus,
|
|
98
|
-
|
|
100
|
+
requestForegroundLocationPermission,
|
|
101
|
+
requestBackgroundLocationPermission,
|
|
102
|
+
getLocationPermissionStatus,
|
|
103
|
+
openAppSettings,
|
|
99
104
|
getLocation,
|
|
100
105
|
trackOnce,
|
|
101
106
|
trackVerified,
|
|
@@ -107,7 +112,6 @@ const Radar = {
|
|
|
107
112
|
startTrackingVerified,
|
|
108
113
|
mockTracking,
|
|
109
114
|
stopTracking,
|
|
110
|
-
stopTrackingVerified,
|
|
111
115
|
isTracking,
|
|
112
116
|
getTrackingOptions,
|
|
113
117
|
setForegroundServiceOptions,
|
package/ios/RNRadar.m
CHANGED
|
@@ -24,9 +24,6 @@ RCT_EXPORT_MODULE();
|
|
|
24
24
|
return self;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
/**
|
|
28
|
-
map iOS status string which is PascalCase into standard UPPER_SNAKE_CASE, which is consistent with android and javascript styling.
|
|
29
|
-
*/
|
|
30
27
|
+ (NSDictionary *)mapLocationPermissionStatus:(NSDictionary *)status {
|
|
31
28
|
NSString *statusString = status[@"locationPermissionState"];
|
|
32
29
|
NSString *newStatusString;
|
|
@@ -44,7 +41,7 @@ RCT_EXPORT_MODULE();
|
|
|
44
41
|
} else if ([statusString isEqualToString:@"BackgroundPermissionRejected"]) {
|
|
45
42
|
newStatusString = @"BACKGROUND_PERMISSION_REJECTED";
|
|
46
43
|
} else if ([statusString isEqualToString:@"BackgroundPermissionPending"]) {
|
|
47
|
-
newStatusString = @"
|
|
44
|
+
newStatusString = @"BACKGROUND_PERMISSION_PENDING";
|
|
48
45
|
} else if ([statusString isEqualToString:@"PermissionRestricted"]) {
|
|
49
46
|
newStatusString = @"PERMISSION_RESTRICTED";
|
|
50
47
|
} else {
|
|
@@ -73,7 +70,7 @@ RCT_EXPORT_MODULE();
|
|
|
73
70
|
}
|
|
74
71
|
|
|
75
72
|
- (NSArray<NSString *> *)supportedEvents {
|
|
76
|
-
return @[@"events", @"location", @"clientLocation", @"error", @"log", @"token"];
|
|
73
|
+
return @[@"events", @"location", @"clientLocation", @"error", @"log", @"token", @"locationPermissionStatus"];
|
|
77
74
|
}
|
|
78
75
|
|
|
79
76
|
- (void)startObserving {
|
|
@@ -140,7 +137,7 @@ RCT_EXPORT_MODULE();
|
|
|
140
137
|
|
|
141
138
|
RCT_EXPORT_METHOD(initialize:(NSString *)publishableKey fraud:(BOOL)fraud) {
|
|
142
139
|
[[NSUserDefaults standardUserDefaults] setObject:@"ReactNative" forKey:@"radar-xPlatformSDKType"];
|
|
143
|
-
[[NSUserDefaults standardUserDefaults] setObject:@"3.
|
|
140
|
+
[[NSUserDefaults standardUserDefaults] setObject:@"3.13.0-beta.1" forKey:@"radar-xPlatformSDKVersion"];
|
|
144
141
|
[Radar initializeWithPublishableKey:publishableKey];
|
|
145
142
|
}
|
|
146
143
|
|
|
@@ -226,19 +223,6 @@ RCT_REMAP_METHOD(getPermissionsStatus, getPermissionsStatusWithResolver:(RCTProm
|
|
|
226
223
|
resolve(statusStr);
|
|
227
224
|
}
|
|
228
225
|
|
|
229
|
-
RCT_EXPORT_METHOD(requestPermissions:(BOOL)background resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
|
|
230
|
-
permissionsRequestResolver = resolve;
|
|
231
|
-
|
|
232
|
-
CLAuthorizationStatus status = [CLLocationManager authorizationStatus];
|
|
233
|
-
if (background && status == kCLAuthorizationStatusAuthorizedWhenInUse) {
|
|
234
|
-
[locationManager requestAlwaysAuthorization];
|
|
235
|
-
} else if (status == kCLAuthorizationStatusNotDetermined) {
|
|
236
|
-
[locationManager requestWhenInUseAuthorization];
|
|
237
|
-
} else {
|
|
238
|
-
[self getPermissionsStatusWithResolver:resolve rejecter:reject];
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
|
|
242
226
|
RCT_EXPORT_METHOD(getLocation:(NSString *)desiredAccuracy resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
|
|
243
227
|
__block RCTPromiseResolveBlock resolver = resolve;
|
|
244
228
|
__block RCTPromiseRejectBlock rejecter = reject;
|
|
@@ -357,12 +341,11 @@ RCT_EXPORT_METHOD(trackVerified:(NSDictionary *)optionsDict resolve:(RCTPromiseR
|
|
|
357
341
|
|
|
358
342
|
RadarTrackVerifiedCompletionHandler completionHandler = ^(RadarStatus status, RadarVerifiedLocationToken * _Nullable token) {
|
|
359
343
|
if (status == RadarStatusSuccess && resolver) {
|
|
360
|
-
NSMutableDictionary *dict = [NSMutableDictionary new];
|
|
361
|
-
[dict setObject:[Radar stringForStatus:status] forKey:@"status"];
|
|
362
344
|
if (token != nil) {
|
|
363
|
-
[
|
|
345
|
+
resolver([token dictionaryValue]);
|
|
346
|
+
} else {
|
|
347
|
+
resolver(nil);
|
|
364
348
|
}
|
|
365
|
-
resolver(dict);
|
|
366
349
|
} else if (rejecter) {
|
|
367
350
|
rejecter([Radar stringForStatus:status], [Radar stringForStatus:status], nil);
|
|
368
351
|
}
|
|
@@ -379,12 +362,11 @@ RCT_EXPORT_METHOD(getVerifiedLocationToken:(RCTPromiseResolveBlock)resolve rejec
|
|
|
379
362
|
|
|
380
363
|
RadarTrackVerifiedCompletionHandler completionHandler = ^(RadarStatus status, RadarVerifiedLocationToken * _Nullable token) {
|
|
381
364
|
if (status == RadarStatusSuccess && resolver) {
|
|
382
|
-
NSMutableDictionary *dict = [NSMutableDictionary new];
|
|
383
|
-
[dict setObject:[Radar stringForStatus:status] forKey:@"status"];
|
|
384
365
|
if (token != nil) {
|
|
385
|
-
[
|
|
366
|
+
resolver([token dictionaryValue]);
|
|
367
|
+
} else {
|
|
368
|
+
resolver(nil);
|
|
386
369
|
}
|
|
387
|
-
resolver(dict);
|
|
388
370
|
} else if (rejecter) {
|
|
389
371
|
rejecter([Radar stringForStatus:status], [Radar stringForStatus:status], nil);
|
|
390
372
|
}
|
|
@@ -415,9 +397,13 @@ RCT_EXPORT_METHOD(startTrackingCustom:(NSDictionary *)optionsDict) {
|
|
|
415
397
|
RCT_EXPORT_METHOD(startTrackingVerified:(NSDictionary *)optionsDict) {
|
|
416
398
|
BOOL token = NO;
|
|
417
399
|
BOOL beacons = NO;
|
|
418
|
-
double interval =
|
|
400
|
+
double interval = 1;
|
|
419
401
|
|
|
420
402
|
if (optionsDict != nil) {
|
|
403
|
+
NSNumber *tokenNumber = optionsDict[@"token"];
|
|
404
|
+
if (tokenNumber != nil && [tokenNumber isKindOfClass:[NSNumber class]]) {
|
|
405
|
+
token = [tokenNumber boolValue];
|
|
406
|
+
}
|
|
421
407
|
NSNumber *beaconsNumber = optionsDict[@"beacons"];
|
|
422
408
|
if (beaconsNumber != nil && [beaconsNumber isKindOfClass:[NSNumber class]]) {
|
|
423
409
|
beacons = [beaconsNumber boolValue];
|
|
@@ -475,10 +461,6 @@ RCT_EXPORT_METHOD(stopTracking) {
|
|
|
475
461
|
[Radar stopTracking];
|
|
476
462
|
}
|
|
477
463
|
|
|
478
|
-
RCT_EXPORT_METHOD(stopTrackingVerified) {
|
|
479
|
-
[Radar stopTrackingVerified];
|
|
480
|
-
}
|
|
481
|
-
|
|
482
464
|
RCT_EXPORT_METHOD(isTracking:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
|
|
483
465
|
BOOL res = [Radar isTracking];
|
|
484
466
|
resolve(@(res));
|
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.13.0-beta.1",
|
|
7
7
|
"main": "dist/src/index.js",
|
|
8
8
|
"files": [
|
|
9
9
|
"android",
|
|
@@ -50,7 +50,10 @@ export interface RadarNativeInterface {
|
|
|
50
50
|
getMetadata: () => Promise<RadarMetadata>;
|
|
51
51
|
setAnonymousTrackingEnabled: (enabled: boolean) => void;
|
|
52
52
|
getPermissionsStatus: () => Promise<RadarPermissionsStatus>;
|
|
53
|
-
|
|
53
|
+
requestForegroundLocationPermission: () => void;
|
|
54
|
+
requestBackgroundLocationPermission: () => void;
|
|
55
|
+
getLocationPermissionStatus: () => Promise<RadarLocationPermissionStatus>;
|
|
56
|
+
openAppSettings: () => void;
|
|
54
57
|
getLocation: (
|
|
55
58
|
desiredAccuracy?: RadarTrackingOptionsDesiredAccuracy
|
|
56
59
|
) => Promise<RadarLocationCallback>;
|
|
@@ -66,10 +69,9 @@ export interface RadarNativeInterface {
|
|
|
66
69
|
startTrackingVerified: (options?: RadarVerifiedTrackingOptions) => void;
|
|
67
70
|
mockTracking: (options: RadarMockTrackingOptions) => void;
|
|
68
71
|
stopTracking: () => void;
|
|
69
|
-
stopTrackingVerified: () => void;
|
|
70
72
|
getTrackingOptions: () => Promise<RadarTrackingOptions>;
|
|
71
73
|
isUsingRemoteTrackingOptions: () => Promise<boolean>;
|
|
72
|
-
isTracking: () =>
|
|
74
|
+
isTracking: () => boolean;
|
|
73
75
|
setForegroundServiceOptions: (
|
|
74
76
|
options: RadarTrackingOptionsForegroundService
|
|
75
77
|
) => void;
|
package/src/@types/types.ts
CHANGED
|
@@ -754,8 +754,6 @@ export interface RadarFraud {
|
|
|
754
754
|
compromised: boolean;
|
|
755
755
|
jumped: boolean;
|
|
756
756
|
inaccurate: boolean;
|
|
757
|
-
blocked: boolean;
|
|
758
|
-
sharing: boolean;
|
|
759
757
|
}
|
|
760
758
|
|
|
761
759
|
export type RadarTrackingOptionsReplay = "all" | "stops" | "none";
|
|
@@ -819,6 +817,7 @@ export type LocationPermissionState =
|
|
|
819
817
|
| "BACKGROUND_PERMISSION_GRANTED"
|
|
820
818
|
| "BACKGROUND_PERMISSION_REJECTED"
|
|
821
819
|
| "BACKGROUND_PERMISSION_REJECTED_ONCE"
|
|
820
|
+
| "BACKGROUND_PERMISSION_PENDING"
|
|
822
821
|
| "PERMISSION_RESTRICTED"
|
|
823
822
|
| "UNKNOWN";
|
|
824
823
|
|
package/src/index.native.ts
CHANGED
|
@@ -39,6 +39,7 @@ import {
|
|
|
39
39
|
RadarIPGeocodeCallback,
|
|
40
40
|
RadarTrackVerifiedOptions,
|
|
41
41
|
RadarTrackVerifiedCallback,
|
|
42
|
+
RadarLocationPermissionStatus,
|
|
42
43
|
} from "./@types/types";
|
|
43
44
|
|
|
44
45
|
if (
|
|
@@ -84,10 +85,16 @@ const setAnonymousTrackingEnabled = (enabled: boolean): void =>
|
|
|
84
85
|
const getPermissionsStatus = (): Promise<RadarPermissionsStatus> =>
|
|
85
86
|
NativeModules.RNRadar.getPermissionsStatus();
|
|
86
87
|
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
88
|
+
const requestForegroundLocationPermission = () =>
|
|
89
|
+
NativeModules.RNRadar.requestForegroundLocationPermission();
|
|
90
|
+
|
|
91
|
+
const requestBackgroundLocationPermission = () =>
|
|
92
|
+
NativeModules.RNRadar.requestBackgroundLocationPermission();
|
|
93
|
+
|
|
94
|
+
const getLocationPermissionStatus = (): Promise<RadarLocationPermissionStatus> =>
|
|
95
|
+
NativeModules.RNRadar.getLocationPermissionStatus();
|
|
96
|
+
|
|
97
|
+
const openAppSettings = () => NativeModules.RNRadar.openAppSettings()
|
|
91
98
|
|
|
92
99
|
const getLocation = (
|
|
93
100
|
desiredAccuracy?: RadarTrackingOptionsDesiredAccuracy
|
|
@@ -134,15 +141,13 @@ const mockTracking = (options: RadarMockTrackingOptions): void =>
|
|
|
134
141
|
|
|
135
142
|
const stopTracking = (): void => NativeModules.RNRadar.stopTracking();
|
|
136
143
|
|
|
137
|
-
const stopTrackingVerified = (): void => NativeModules.RNRadar.stopTrackingVerified();
|
|
138
|
-
|
|
139
144
|
const getTrackingOptions = (): Promise<RadarTrackingOptions> =>
|
|
140
145
|
NativeModules.RNRadar.getTrackingOptions();
|
|
141
146
|
|
|
142
147
|
const isUsingRemoteTrackingOptions = (): Promise<boolean> =>
|
|
143
148
|
NativeModules.RNRadar.isUsingRemoteTrackingOptions();
|
|
144
149
|
|
|
145
|
-
const isTracking = ():
|
|
150
|
+
const isTracking = (): boolean => NativeModules.RNRadar.isTracking();
|
|
146
151
|
|
|
147
152
|
const setForegroundServiceOptions = (
|
|
148
153
|
options: RadarTrackingOptionsForegroundService
|
|
@@ -244,7 +249,10 @@ const Radar: RadarNativeInterface = {
|
|
|
244
249
|
setAnonymousTrackingEnabled,
|
|
245
250
|
isUsingRemoteTrackingOptions,
|
|
246
251
|
getPermissionsStatus,
|
|
247
|
-
|
|
252
|
+
requestForegroundLocationPermission,
|
|
253
|
+
requestBackgroundLocationPermission,
|
|
254
|
+
getLocationPermissionStatus,
|
|
255
|
+
openAppSettings,
|
|
248
256
|
getLocation,
|
|
249
257
|
trackOnce,
|
|
250
258
|
trackVerified,
|
|
@@ -256,7 +264,6 @@ const Radar: RadarNativeInterface = {
|
|
|
256
264
|
startTrackingVerified,
|
|
257
265
|
mockTracking,
|
|
258
266
|
stopTracking,
|
|
259
|
-
stopTrackingVerified,
|
|
260
267
|
isTracking,
|
|
261
268
|
getTrackingOptions,
|
|
262
269
|
setForegroundServiceOptions,
|