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 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).
@@ -18,7 +18,7 @@ android {
18
18
  minSdkVersion 16
19
19
  targetSdkVersion 31
20
20
  versionCode 1
21
- versionName '3.13.0-beta.1'
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.1-beta.2'
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-beta.1");
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
- promise.resolve(token != null ? RNRadarUtils.mapForJson(token.toJson()) : null);
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
- promise.resolve(token != null ? RNRadarUtils.mapForJson(token.toJson()) : null);
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 = 1;
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-beta.1",
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";
@@ -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-beta.1" forKey:@"radar-xPlatformSDKVersion"];
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
- resolver([token dictionaryValue]);
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
- resolver([token dictionaryValue]);
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 = 1;
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-beta.1",
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;
@@ -754,6 +754,8 @@ export interface RadarFraud {
754
754
  compromised: boolean;
755
755
  jumped: boolean;
756
756
  inaccurate: boolean;
757
+ blocked: boolean;
758
+ sharing: boolean;
757
759
  }
758
760
 
759
761
  export type RadarTrackingOptionsReplay = "all" | "stops" | "none";
@@ -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,