react-native-radar 3.12.3 → 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.12.3'
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.2'
48
+ api 'io.radar:sdk:3.13.3'
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.3");
104
+ editor.putString("x_platform_sdk_version", "3.13.0");
101
105
  editor.apply();
102
106
  if (fraud) {
103
107
  Radar.initialize(getReactApplicationContext(), publishableKey, receiver, Radar.RadarLocationServicesProvider.GOOGLE, fraud);
@@ -248,21 +252,6 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
248
252
  return true;
249
253
  }
250
254
 
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
255
  @ReactMethod
267
256
  public void getLocation(String desiredAccuracy, final Promise promise) {
268
257
 
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.3",
6
+ "version": "3.13.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 } 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>;
@@ -512,5 +512,5 @@ export interface RadarLocationPermissionStatusIOS {
512
512
  userRejectedBackgroundPermission: boolean;
513
513
  }
514
514
  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";
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" | "BACKGROUND_PERMISSION_PENDING" | "PERMISSION_RESTRICTED" | "UNKNOWN";
516
516
  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;
@@ -95,7 +98,10 @@ const Radar = {
95
98
  setAnonymousTrackingEnabled,
96
99
  isUsingRemoteTrackingOptions,
97
100
  getPermissionsStatus,
98
- requestPermissions,
101
+ requestForegroundLocationPermission,
102
+ requestBackgroundLocationPermission,
103
+ getLocationPermissionStatus,
104
+ openAppSettings,
99
105
  getLocation,
100
106
  trackOnce,
101
107
  trackVerified,
package/ios/RNRadar.m CHANGED
@@ -44,7 +44,7 @@ RCT_EXPORT_MODULE();
44
44
  } else if ([statusString isEqualToString:@"BackgroundPermissionRejected"]) {
45
45
  newStatusString = @"BACKGROUND_PERMISSION_REJECTED";
46
46
  } else if ([statusString isEqualToString:@"BackgroundPermissionPending"]) {
47
- newStatusString = @"FOREGROUND_PERMISSION_PENDING";
47
+ newStatusString = @"BACKGROUND_PERMISSION_PENDING";
48
48
  } else if ([statusString isEqualToString:@"PermissionRestricted"]) {
49
49
  newStatusString = @"PERMISSION_RESTRICTED";
50
50
  } else {
@@ -73,7 +73,7 @@ RCT_EXPORT_MODULE();
73
73
  }
74
74
 
75
75
  - (NSArray<NSString *> *)supportedEvents {
76
- return @[@"events", @"location", @"clientLocation", @"error", @"log", @"token"];
76
+ return @[@"events", @"location", @"clientLocation", @"error", @"log", @"token", @"locationPermissionStatus"];
77
77
  }
78
78
 
79
79
  - (void)startObserving {
@@ -140,7 +140,7 @@ RCT_EXPORT_MODULE();
140
140
 
141
141
  RCT_EXPORT_METHOD(initialize:(NSString *)publishableKey fraud:(BOOL)fraud) {
142
142
  [[NSUserDefaults standardUserDefaults] setObject:@"ReactNative" forKey:@"radar-xPlatformSDKType"];
143
- [[NSUserDefaults standardUserDefaults] setObject:@"3.12.3" forKey:@"radar-xPlatformSDKVersion"];
143
+ [[NSUserDefaults standardUserDefaults] setObject:@"3.13.0" forKey:@"radar-xPlatformSDKVersion"];
144
144
  [Radar initializeWithPublishableKey:publishableKey];
145
145
  }
146
146
 
@@ -226,19 +226,6 @@ RCT_REMAP_METHOD(getPermissionsStatus, getPermissionsStatusWithResolver:(RCTProm
226
226
  resolve(statusStr);
227
227
  }
228
228
 
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
229
  RCT_EXPORT_METHOD(getLocation:(NSString *)desiredAccuracy resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
243
230
  __block RCTPromiseResolveBlock resolver = resolve;
244
231
  __block RCTPromiseRejectBlock rejecter = reject;
@@ -360,7 +347,7 @@ RCT_EXPORT_METHOD(trackVerified:(NSDictionary *)optionsDict resolve:(RCTPromiseR
360
347
  NSMutableDictionary *dict = [NSMutableDictionary new];
361
348
  [dict setObject:[Radar stringForStatus:status] forKey:@"status"];
362
349
  if (token != nil) {
363
- [dict setObject:[RNRadar mapLocationPermissionStatus:[token dictionaryValue]] forKey:@"token"];
350
+ [dict setObject:[token dictionaryValue] forKey:@"token"];
364
351
  }
365
352
  resolver(dict);
366
353
  } else if (rejecter) {
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.3",
6
+ "version": "3.13.0",
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>;
@@ -819,6 +819,7 @@ export type LocationPermissionState =
819
819
  | "BACKGROUND_PERMISSION_GRANTED"
820
820
  | "BACKGROUND_PERMISSION_REJECTED"
821
821
  | "BACKGROUND_PERMISSION_REJECTED_ONCE"
822
+ | "BACKGROUND_PERMISSION_PENDING"
822
823
  | "PERMISSION_RESTRICTED"
823
824
  | "UNKNOWN";
824
825
 
@@ -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
@@ -244,7 +251,10 @@ const Radar: RadarNativeInterface = {
244
251
  setAnonymousTrackingEnabled,
245
252
  isUsingRemoteTrackingOptions,
246
253
  getPermissionsStatus,
247
- requestPermissions,
254
+ requestForegroundLocationPermission,
255
+ requestBackgroundLocationPermission,
256
+ getLocationPermissionStatus,
257
+ openAppSettings,
248
258
  getLocation,
249
259
  trackOnce,
250
260
  trackVerified,