react-native-radar 3.13.0-beta.1 → 3.13.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 +21 -5
- package/dist/package.json +1 -1
- package/dist/src/@types/RadarNativeInterface.d.ts +2 -1
- package/dist/src/@types/types.d.ts +2 -0
- package/dist/src/index.native.js +2 -0
- package/ios/RNRadar.m +17 -12
- package/package.json +1 -1
- package/src/@types/RadarNativeInterface.ts +2 -1
- package/src/@types/types.ts +2 -0
- package/src/index.native.ts +4 -1
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.13.0
|
|
21
|
+
versionName '3.13.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.13.
|
|
48
|
+
api 'io.radar:sdk:3.13.3'
|
|
49
49
|
}
|
|
50
50
|
|
|
@@ -101,7 +101,7 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
101
101
|
this.fraud = fraud;
|
|
102
102
|
SharedPreferences.Editor editor = getReactApplicationContext().getSharedPreferences("RadarSDK", Context.MODE_PRIVATE).edit();
|
|
103
103
|
editor.putString("x_platform_sdk_type", "ReactNative");
|
|
104
|
-
editor.putString("x_platform_sdk_version", "3.13.0
|
|
104
|
+
editor.putString("x_platform_sdk_version", "3.13.0");
|
|
105
105
|
editor.apply();
|
|
106
106
|
if (fraud) {
|
|
107
107
|
Radar.initialize(getReactApplicationContext(), publishableKey, receiver, Radar.RadarLocationServicesProvider.GOOGLE, fraud);
|
|
@@ -223,7 +223,8 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
223
223
|
return;
|
|
224
224
|
}
|
|
225
225
|
|
|
226
|
-
boolean foreground = ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
|
|
226
|
+
boolean foreground = ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED ||
|
|
227
|
+
ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED;
|
|
227
228
|
boolean background = foreground;
|
|
228
229
|
boolean denied = ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.ACCESS_FINE_LOCATION);
|
|
229
230
|
|
|
@@ -387,7 +388,12 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
387
388
|
|
|
388
389
|
try {
|
|
389
390
|
if (status == Radar.RadarStatus.SUCCESS) {
|
|
390
|
-
|
|
391
|
+
WritableMap map = Arguments.createMap();
|
|
392
|
+
map.putString("status", status.toString());
|
|
393
|
+
if (token != null) {
|
|
394
|
+
map.putMap("token", RNRadarUtils.mapForJson(token.toJson()));
|
|
395
|
+
}
|
|
396
|
+
promise.resolve(map);
|
|
391
397
|
} else {
|
|
392
398
|
promise.reject(status.toString(), status.toString());
|
|
393
399
|
}
|
|
@@ -412,7 +418,12 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
412
418
|
|
|
413
419
|
try {
|
|
414
420
|
if (status == Radar.RadarStatus.SUCCESS) {
|
|
415
|
-
|
|
421
|
+
WritableMap map = Arguments.createMap();
|
|
422
|
+
map.putString("status", status.toString());
|
|
423
|
+
if (token != null) {
|
|
424
|
+
map.putMap("token", RNRadarUtils.mapForJson(token.toJson()));
|
|
425
|
+
}
|
|
426
|
+
promise.resolve(map);
|
|
416
427
|
} else {
|
|
417
428
|
promise.reject(status.toString(), status.toString());
|
|
418
429
|
}
|
|
@@ -455,7 +466,7 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
455
466
|
@ReactMethod
|
|
456
467
|
public void startTrackingVerified(ReadableMap optionsMap) {
|
|
457
468
|
boolean beacons = false;
|
|
458
|
-
int interval =
|
|
469
|
+
int interval = 1200;
|
|
459
470
|
|
|
460
471
|
if (optionsMap != null) {
|
|
461
472
|
beacons = optionsMap.hasKey("beacons") ? optionsMap.getBoolean("beacons") : beacons;
|
|
@@ -504,6 +515,11 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
504
515
|
Radar.stopTracking();
|
|
505
516
|
}
|
|
506
517
|
|
|
518
|
+
@ReactMethod
|
|
519
|
+
public void stopTrackingVerified() {
|
|
520
|
+
Radar.stopTrackingVerified();
|
|
521
|
+
}
|
|
522
|
+
|
|
507
523
|
@ReactMethod
|
|
508
524
|
public void isTracking(final Promise promise) {
|
|
509
525
|
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.13.0
|
|
6
|
+
"version": "3.13.0",
|
|
7
7
|
"main": "dist/src/index.js",
|
|
8
8
|
"files": [
|
|
9
9
|
"android",
|
|
@@ -25,9 +25,10 @@ export interface RadarNativeInterface {
|
|
|
25
25
|
startTrackingVerified: (options?: RadarVerifiedTrackingOptions) => void;
|
|
26
26
|
mockTracking: (options: RadarMockTrackingOptions) => void;
|
|
27
27
|
stopTracking: () => void;
|
|
28
|
+
stopTrackingVerified: () => void;
|
|
28
29
|
getTrackingOptions: () => Promise<RadarTrackingOptions>;
|
|
29
30
|
isUsingRemoteTrackingOptions: () => Promise<boolean>;
|
|
30
|
-
isTracking: () => boolean
|
|
31
|
+
isTracking: () => Promise<boolean>;
|
|
31
32
|
setForegroundServiceOptions: (options: RadarTrackingOptionsForegroundService) => void;
|
|
32
33
|
setNotificationOptions: (options: RadarNotificationOptions) => void;
|
|
33
34
|
getTripOptions: () => Promise<RadarTripOptions>;
|
|
@@ -474,6 +474,8 @@ export interface RadarFraud {
|
|
|
474
474
|
compromised: boolean;
|
|
475
475
|
jumped: boolean;
|
|
476
476
|
inaccurate: boolean;
|
|
477
|
+
blocked: boolean;
|
|
478
|
+
sharing: boolean;
|
|
477
479
|
}
|
|
478
480
|
export type RadarTrackingOptionsReplay = "all" | "stops" | "none";
|
|
479
481
|
export type RadarTrackingOptionsSync = "none" | "stopsAndExits" | "all";
|
package/dist/src/index.native.js
CHANGED
|
@@ -50,6 +50,7 @@ const startTrackingCustom = (options) => react_native_1.NativeModules.RNRadar.st
|
|
|
50
50
|
const startTrackingVerified = (options) => react_native_1.NativeModules.RNRadar.startTrackingVerified(options);
|
|
51
51
|
const mockTracking = (options) => react_native_1.NativeModules.RNRadar.mockTracking(options);
|
|
52
52
|
const stopTracking = () => react_native_1.NativeModules.RNRadar.stopTracking();
|
|
53
|
+
const stopTrackingVerified = () => react_native_1.NativeModules.RNRadar.stopTrackingVerified();
|
|
53
54
|
const getTrackingOptions = () => react_native_1.NativeModules.RNRadar.getTrackingOptions();
|
|
54
55
|
const isUsingRemoteTrackingOptions = () => react_native_1.NativeModules.RNRadar.isUsingRemoteTrackingOptions();
|
|
55
56
|
const isTracking = () => react_native_1.NativeModules.RNRadar.isTracking();
|
|
@@ -112,6 +113,7 @@ const Radar = {
|
|
|
112
113
|
startTrackingVerified,
|
|
113
114
|
mockTracking,
|
|
114
115
|
stopTracking,
|
|
116
|
+
stopTrackingVerified,
|
|
115
117
|
isTracking,
|
|
116
118
|
getTrackingOptions,
|
|
117
119
|
setForegroundServiceOptions,
|
package/ios/RNRadar.m
CHANGED
|
@@ -24,6 +24,9 @@ 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
|
+
*/
|
|
27
30
|
+ (NSDictionary *)mapLocationPermissionStatus:(NSDictionary *)status {
|
|
28
31
|
NSString *statusString = status[@"locationPermissionState"];
|
|
29
32
|
NSString *newStatusString;
|
|
@@ -137,7 +140,7 @@ RCT_EXPORT_MODULE();
|
|
|
137
140
|
|
|
138
141
|
RCT_EXPORT_METHOD(initialize:(NSString *)publishableKey fraud:(BOOL)fraud) {
|
|
139
142
|
[[NSUserDefaults standardUserDefaults] setObject:@"ReactNative" forKey:@"radar-xPlatformSDKType"];
|
|
140
|
-
[[NSUserDefaults standardUserDefaults] setObject:@"3.13.0
|
|
143
|
+
[[NSUserDefaults standardUserDefaults] setObject:@"3.13.0" forKey:@"radar-xPlatformSDKVersion"];
|
|
141
144
|
[Radar initializeWithPublishableKey:publishableKey];
|
|
142
145
|
}
|
|
143
146
|
|
|
@@ -341,11 +344,12 @@ RCT_EXPORT_METHOD(trackVerified:(NSDictionary *)optionsDict resolve:(RCTPromiseR
|
|
|
341
344
|
|
|
342
345
|
RadarTrackVerifiedCompletionHandler completionHandler = ^(RadarStatus status, RadarVerifiedLocationToken * _Nullable token) {
|
|
343
346
|
if (status == RadarStatusSuccess && resolver) {
|
|
347
|
+
NSMutableDictionary *dict = [NSMutableDictionary new];
|
|
348
|
+
[dict setObject:[Radar stringForStatus:status] forKey:@"status"];
|
|
344
349
|
if (token != nil) {
|
|
345
|
-
|
|
346
|
-
} else {
|
|
347
|
-
resolver(nil);
|
|
350
|
+
[dict setObject:[token dictionaryValue] forKey:@"token"];
|
|
348
351
|
}
|
|
352
|
+
resolver(dict);
|
|
349
353
|
} else if (rejecter) {
|
|
350
354
|
rejecter([Radar stringForStatus:status], [Radar stringForStatus:status], nil);
|
|
351
355
|
}
|
|
@@ -362,11 +366,12 @@ RCT_EXPORT_METHOD(getVerifiedLocationToken:(RCTPromiseResolveBlock)resolve rejec
|
|
|
362
366
|
|
|
363
367
|
RadarTrackVerifiedCompletionHandler completionHandler = ^(RadarStatus status, RadarVerifiedLocationToken * _Nullable token) {
|
|
364
368
|
if (status == RadarStatusSuccess && resolver) {
|
|
369
|
+
NSMutableDictionary *dict = [NSMutableDictionary new];
|
|
370
|
+
[dict setObject:[Radar stringForStatus:status] forKey:@"status"];
|
|
365
371
|
if (token != nil) {
|
|
366
|
-
|
|
367
|
-
} else {
|
|
368
|
-
resolver(nil);
|
|
372
|
+
[dict setObject:[token dictionaryValue] forKey:@"token"];
|
|
369
373
|
}
|
|
374
|
+
resolver(dict);
|
|
370
375
|
} else if (rejecter) {
|
|
371
376
|
rejecter([Radar stringForStatus:status], [Radar stringForStatus:status], nil);
|
|
372
377
|
}
|
|
@@ -397,13 +402,9 @@ RCT_EXPORT_METHOD(startTrackingCustom:(NSDictionary *)optionsDict) {
|
|
|
397
402
|
RCT_EXPORT_METHOD(startTrackingVerified:(NSDictionary *)optionsDict) {
|
|
398
403
|
BOOL token = NO;
|
|
399
404
|
BOOL beacons = NO;
|
|
400
|
-
double interval =
|
|
405
|
+
double interval = 1200;
|
|
401
406
|
|
|
402
407
|
if (optionsDict != nil) {
|
|
403
|
-
NSNumber *tokenNumber = optionsDict[@"token"];
|
|
404
|
-
if (tokenNumber != nil && [tokenNumber isKindOfClass:[NSNumber class]]) {
|
|
405
|
-
token = [tokenNumber boolValue];
|
|
406
|
-
}
|
|
407
408
|
NSNumber *beaconsNumber = optionsDict[@"beacons"];
|
|
408
409
|
if (beaconsNumber != nil && [beaconsNumber isKindOfClass:[NSNumber class]]) {
|
|
409
410
|
beacons = [beaconsNumber boolValue];
|
|
@@ -461,6 +462,10 @@ RCT_EXPORT_METHOD(stopTracking) {
|
|
|
461
462
|
[Radar stopTracking];
|
|
462
463
|
}
|
|
463
464
|
|
|
465
|
+
RCT_EXPORT_METHOD(stopTrackingVerified) {
|
|
466
|
+
[Radar stopTrackingVerified];
|
|
467
|
+
}
|
|
468
|
+
|
|
464
469
|
RCT_EXPORT_METHOD(isTracking:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
|
|
465
470
|
BOOL res = [Radar isTracking];
|
|
466
471
|
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.13.0
|
|
6
|
+
"version": "3.13.0",
|
|
7
7
|
"main": "dist/src/index.js",
|
|
8
8
|
"files": [
|
|
9
9
|
"android",
|
|
@@ -69,9 +69,10 @@ export interface RadarNativeInterface {
|
|
|
69
69
|
startTrackingVerified: (options?: RadarVerifiedTrackingOptions) => void;
|
|
70
70
|
mockTracking: (options: RadarMockTrackingOptions) => void;
|
|
71
71
|
stopTracking: () => void;
|
|
72
|
+
stopTrackingVerified: () => void;
|
|
72
73
|
getTrackingOptions: () => Promise<RadarTrackingOptions>;
|
|
73
74
|
isUsingRemoteTrackingOptions: () => Promise<boolean>;
|
|
74
|
-
isTracking: () => boolean
|
|
75
|
+
isTracking: () => Promise<boolean>;
|
|
75
76
|
setForegroundServiceOptions: (
|
|
76
77
|
options: RadarTrackingOptionsForegroundService
|
|
77
78
|
) => void;
|
package/src/@types/types.ts
CHANGED
package/src/index.native.ts
CHANGED
|
@@ -141,13 +141,15 @@ const mockTracking = (options: RadarMockTrackingOptions): void =>
|
|
|
141
141
|
|
|
142
142
|
const stopTracking = (): void => NativeModules.RNRadar.stopTracking();
|
|
143
143
|
|
|
144
|
+
const stopTrackingVerified = (): void => NativeModules.RNRadar.stopTrackingVerified();
|
|
145
|
+
|
|
144
146
|
const getTrackingOptions = (): Promise<RadarTrackingOptions> =>
|
|
145
147
|
NativeModules.RNRadar.getTrackingOptions();
|
|
146
148
|
|
|
147
149
|
const isUsingRemoteTrackingOptions = (): Promise<boolean> =>
|
|
148
150
|
NativeModules.RNRadar.isUsingRemoteTrackingOptions();
|
|
149
151
|
|
|
150
|
-
const isTracking = (): boolean => NativeModules.RNRadar.isTracking();
|
|
152
|
+
const isTracking = (): Promise<boolean> => NativeModules.RNRadar.isTracking();
|
|
151
153
|
|
|
152
154
|
const setForegroundServiceOptions = (
|
|
153
155
|
options: RadarTrackingOptionsForegroundService
|
|
@@ -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,
|