react-native-radar 3.12.2 → 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.
@@ -18,7 +18,7 @@ android {
18
18
  minSdkVersion 16
19
19
  targetSdkVersion 31
20
20
  versionCode 1
21
- versionName '3.12.2'
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.12.2");
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);
@@ -247,21 +251,6 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
247
251
  return true;
248
252
  }
249
253
 
250
- @ReactMethod
251
- public void requestPermissions(boolean background, final Promise promise) {
252
- PermissionAwareActivity activity = (PermissionAwareActivity)getCurrentActivity();
253
- mPermissionsRequestPromise = promise;
254
- if (activity != null) {
255
- if (Build.VERSION.SDK_INT >= 23) {
256
- if (background && Build.VERSION.SDK_INT >= 29) {
257
- activity.requestPermissions(new String[] { Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_BACKGROUND_LOCATION }, PERMISSIONS_REQUEST_CODE, this);
258
- } else {
259
- activity.requestPermissions(new String[] { Manifest.permission.ACCESS_FINE_LOCATION }, PERMISSIONS_REQUEST_CODE, this);
260
- }
261
- }
262
- }
263
- }
264
-
265
254
  @ReactMethod
266
255
  public void getLocation(String desiredAccuracy, final Promise promise) {
267
256
 
@@ -398,12 +387,7 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
398
387
 
399
388
  try {
400
389
  if (status == Radar.RadarStatus.SUCCESS) {
401
- WritableMap map = Arguments.createMap();
402
- map.putString("status", status.toString());
403
- if (token != null) {
404
- map.putMap("token", RNRadarUtils.mapForJson(token.toJson()));
405
- }
406
- promise.resolve(map);
390
+ promise.resolve(token != null ? RNRadarUtils.mapForJson(token.toJson()) : null);
407
391
  } else {
408
392
  promise.reject(status.toString(), status.toString());
409
393
  }
@@ -428,12 +412,7 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
428
412
 
429
413
  try {
430
414
  if (status == Radar.RadarStatus.SUCCESS) {
431
- WritableMap map = Arguments.createMap();
432
- map.putString("status", status.toString());
433
- if (token != null) {
434
- map.putMap("token", RNRadarUtils.mapForJson(token.toJson()));
435
- }
436
- promise.resolve(map);
415
+ promise.resolve(token != null ? RNRadarUtils.mapForJson(token.toJson()) : null);
437
416
  } else {
438
417
  promise.reject(status.toString(), status.toString());
439
418
  }
@@ -476,7 +455,7 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
476
455
  @ReactMethod
477
456
  public void startTrackingVerified(ReadableMap optionsMap) {
478
457
  boolean beacons = false;
479
- int interval = 1200;
458
+ int interval = 1;
480
459
 
481
460
  if (optionsMap != null) {
482
461
  beacons = optionsMap.hasKey("beacons") ? optionsMap.getBoolean("beacons") : beacons;
@@ -525,11 +504,6 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
525
504
  Radar.stopTracking();
526
505
  }
527
506
 
528
- @ReactMethod
529
- public void stopTrackingVerified() {
530
- Radar.stopTrackingVerified();
531
- }
532
-
533
507
  @ReactMethod
534
508
  public void isTracking(final Promise promise) {
535
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.12.2",
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
- requestPermissions: (background: boolean) => Promise<RadarPermissionsStatus>;
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: () => Promise<boolean>;
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";
@@ -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 requestPermissions = (background) => react_native_1.NativeModules.RNRadar.requestPermissions(background);
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.stopTracking();
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
- requestPermissions,
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 = @"FOREGROUND_PERMISSION_PENDING";
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.12.2" forKey:@"radar-xPlatformSDKVersion"];
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
- [dict setObject:[RNRadar mapLocationPermissionStatus:[token dictionaryValue]] forKey:@"token"];
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
- [dict setObject:[token dictionaryValue] forKey:@"token"];
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 = 1200;
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.12.2",
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
- requestPermissions: (background: boolean) => Promise<RadarPermissionsStatus>;
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: () => Promise<boolean>;
74
+ isTracking: () => boolean;
73
75
  setForegroundServiceOptions: (
74
76
  options: RadarTrackingOptionsForegroundService
75
77
  ) => void;
@@ -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
 
@@ -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 requestPermissions = (
88
- background: boolean
89
- ): Promise<RadarPermissionsStatus> =>
90
- NativeModules.RNRadar.requestPermissions(background);
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.stopTracking();
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 = (): Promise<boolean> => NativeModules.RNRadar.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
- requestPermissions,
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,