react-native-radar 3.13.0 → 3.14.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/android/build.gradle +2 -2
- package/android/src/main/java/io/radar/react/RNRadarModule.java +17 -35
- package/android/src/main/java/io/radar/react/RNRadarReceiver.java +0 -13
- package/dist/package.json +1 -1
- package/dist/src/@types/RadarNativeInterface.d.ts +2 -5
- package/dist/src/@types/types.d.ts +2 -26
- package/dist/src/index.native.js +2 -8
- package/ios/Cartfile.resolved +1 -1
- package/ios/RNRadar.m +15 -57
- package/package.json +1 -1
- package/react-native-radar.podspec +1 -1
- package/src/@types/RadarNativeInterface.ts +1 -5
- package/src/@types/types.ts +1 -49
- package/src/index.native.ts +22 -22
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.14.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.
|
|
48
|
+
api 'io.radar:sdk:3.15.0'
|
|
49
49
|
}
|
|
50
50
|
|
|
@@ -32,7 +32,6 @@ import io.radar.sdk.model.RadarAddress;
|
|
|
32
32
|
import io.radar.sdk.model.RadarContext;
|
|
33
33
|
import io.radar.sdk.model.RadarEvent;
|
|
34
34
|
import io.radar.sdk.model.RadarGeofence;
|
|
35
|
-
import io.radar.sdk.model.RadarLocationPermissionStatus;
|
|
36
35
|
import io.radar.sdk.model.RadarPlace;
|
|
37
36
|
import io.radar.sdk.model.RadarRouteMatrix;
|
|
38
37
|
import io.radar.sdk.model.RadarRoutes;
|
|
@@ -64,10 +63,6 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
64
63
|
verifiedReceiver = new RNRadarVerifiedReceiver();
|
|
65
64
|
}
|
|
66
65
|
|
|
67
|
-
public static void onActivityCreate(Activity activity, Context context) {
|
|
68
|
-
Radar.onActivityCreate(activity, context);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
66
|
@ReactMethod
|
|
72
67
|
public void addListener(String eventName) {
|
|
73
68
|
if (listenerCount == 0) {
|
|
@@ -101,7 +96,7 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
101
96
|
this.fraud = fraud;
|
|
102
97
|
SharedPreferences.Editor editor = getReactApplicationContext().getSharedPreferences("RadarSDK", Context.MODE_PRIVATE).edit();
|
|
103
98
|
editor.putString("x_platform_sdk_type", "ReactNative");
|
|
104
|
-
editor.putString("x_platform_sdk_version", "3.
|
|
99
|
+
editor.putString("x_platform_sdk_version", "3.14.0");
|
|
105
100
|
editor.apply();
|
|
106
101
|
if (fraud) {
|
|
107
102
|
Radar.initialize(getReactApplicationContext(), publishableKey, receiver, Radar.RadarLocationServicesProvider.GOOGLE, fraud);
|
|
@@ -252,6 +247,22 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
252
247
|
return true;
|
|
253
248
|
}
|
|
254
249
|
|
|
250
|
+
|
|
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
|
+
|
|
255
266
|
@ReactMethod
|
|
256
267
|
public void getLocation(String desiredAccuracy, final Promise promise) {
|
|
257
268
|
|
|
@@ -1299,33 +1310,4 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
|
|
|
1299
1310
|
Radar.logConversion(name, metadataObj, callback);
|
|
1300
1311
|
}
|
|
1301
1312
|
}
|
|
1302
|
-
|
|
1303
|
-
@ReactMethod
|
|
1304
|
-
public void requestForegroundLocationPermission() {
|
|
1305
|
-
Radar.requestForegroundLocationPermission();
|
|
1306
|
-
}
|
|
1307
|
-
|
|
1308
|
-
@ReactMethod
|
|
1309
|
-
public void requestBackgroundLocationPermission() {
|
|
1310
|
-
Radar.requestBackgroundLocationPermission();
|
|
1311
|
-
}
|
|
1312
|
-
|
|
1313
|
-
@ReactMethod
|
|
1314
|
-
public void getLocationPermissionStatus(final Promise promise) {
|
|
1315
|
-
if (promise == null) {
|
|
1316
|
-
return;
|
|
1317
|
-
}
|
|
1318
|
-
try {
|
|
1319
|
-
RadarLocationPermissionStatus options = Radar.getLocationPermissionStatus();
|
|
1320
|
-
promise.resolve(RNRadarUtils.mapForJson(options.toJson()));
|
|
1321
|
-
} catch(JSONException e) {
|
|
1322
|
-
Log.e(TAG, "JSONException", e);
|
|
1323
|
-
promise.reject(Radar.RadarStatus.ERROR_SERVER.toString(), Radar.RadarStatus.ERROR_SERVER.toString());
|
|
1324
|
-
}
|
|
1325
|
-
}
|
|
1326
|
-
|
|
1327
|
-
@ReactMethod
|
|
1328
|
-
public void openAppSettings() {
|
|
1329
|
-
Radar.openAppSettings();
|
|
1330
|
-
}
|
|
1331
1313
|
}
|
|
@@ -20,7 +20,6 @@ import io.radar.sdk.Radar;
|
|
|
20
20
|
import io.radar.sdk.RadarReceiver;
|
|
21
21
|
import io.radar.sdk.model.RadarEvent;
|
|
22
22
|
import io.radar.sdk.model.RadarUser;
|
|
23
|
-
import io.radar.sdk.model.RadarLocationPermissionStatus;
|
|
24
23
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
25
24
|
|
|
26
25
|
public class RNRadarReceiver extends RadarReceiver {
|
|
@@ -112,16 +111,4 @@ public class RNRadarReceiver extends RadarReceiver {
|
|
|
112
111
|
}
|
|
113
112
|
}
|
|
114
113
|
|
|
115
|
-
@Override
|
|
116
|
-
public void onLocationPermissionStatusUpdated(@NonNull Context context, @NonNull RadarLocationPermissionStatus status) {
|
|
117
|
-
try {
|
|
118
|
-
ReactApplication reactApplication = ((ReactApplication)context.getApplicationContext());
|
|
119
|
-
reactNativeHost = reactApplication.getReactNativeHost();
|
|
120
|
-
|
|
121
|
-
sendEvent("locationPermissionStatus", RNRadarUtils.mapForJson(status.toJson()));
|
|
122
|
-
} catch (Exception e) {
|
|
123
|
-
Log.e(TAG, "Exception", e);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
114
|
}
|
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.14.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
|
|
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";
|
|
2
2
|
export interface RadarNativeInterface {
|
|
3
3
|
initialize: (publishableKey: string, fraud?: boolean) => void;
|
|
4
4
|
setLogLevel: (level: RadarLogLevel) => void;
|
|
@@ -10,10 +10,7 @@ export interface RadarNativeInterface {
|
|
|
10
10
|
getMetadata: () => Promise<RadarMetadata>;
|
|
11
11
|
setAnonymousTrackingEnabled: (enabled: boolean) => void;
|
|
12
12
|
getPermissionsStatus: () => Promise<RadarPermissionsStatus>;
|
|
13
|
-
|
|
14
|
-
requestBackgroundLocationPermission: () => void;
|
|
15
|
-
getLocationPermissionStatus: () => Promise<RadarLocationPermissionStatus>;
|
|
16
|
-
openAppSettings: () => void;
|
|
13
|
+
requestPermissions: (background: boolean) => Promise<RadarPermissionsStatus>;
|
|
17
14
|
getLocation: (desiredAccuracy?: RadarTrackingOptionsDesiredAccuracy) => Promise<RadarLocationCallback>;
|
|
18
15
|
trackOnce: (options?: RadarTrackOnceOptions | Location) => Promise<RadarTrackCallback>;
|
|
19
16
|
trackVerified: (options?: RadarTrackVerifiedOptions) => Promise<RadarTrackVerifiedCallback>;
|
|
@@ -243,13 +243,10 @@ export interface RadarErrorCallback {
|
|
|
243
243
|
export interface RadarLogUpdateCallback {
|
|
244
244
|
(status: string): void;
|
|
245
245
|
}
|
|
246
|
-
export
|
|
247
|
-
(status: RadarLocationPermissionStatus): void;
|
|
248
|
-
}
|
|
249
|
-
export type RadarListenerCallback = RadarEventUpdateCallback | RadarLocationUpdateCallback | RadarClientLocationUpdateCallback | RadarErrorCallback | RadarLogUpdateCallback | RadarLocationPermissionStatusCallback;
|
|
246
|
+
export type RadarListenerCallback = RadarEventUpdateCallback | RadarLocationUpdateCallback | RadarClientLocationUpdateCallback | RadarErrorCallback | RadarLogUpdateCallback;
|
|
250
247
|
export type RadarPermissionsStatus = "GRANTED_FOREGROUND" | "GRANTED_BACKGROUND" | "DENIED" | "NOT_DETERMINED" | "UNKNOWN";
|
|
251
248
|
export type RadarLocationSource = "FOREGROUND_LOCATION" | "BACKGROUND_LOCATION" | "MANUAL_LOCATION" | "VISIT_ARRIVAL" | "VISIT_DEPARTURE" | "GEOFENCE_ENTER" | "GEOFENCE_DWELL" | "GEOFENCE_EXIT" | "MOCK_LOCATION" | "BEACON_ENTER" | "BEACON_EXIT" | "UNKNOWN";
|
|
252
|
-
export type RadarEventChannel = "clientLocation" | "location" | "error" | "events" | "log" | "token"
|
|
249
|
+
export type RadarEventChannel = "clientLocation" | "location" | "error" | "events" | "log" | "token";
|
|
253
250
|
export type RadarLogLevel = "info" | "debug" | "warning" | "error" | "none";
|
|
254
251
|
export interface RadarRouteMatrix {
|
|
255
252
|
status: string;
|
|
@@ -493,24 +490,3 @@ export interface RadarTrackingOptionsForegroundService {
|
|
|
493
490
|
iconColor?: string;
|
|
494
491
|
}
|
|
495
492
|
export type RadarTripStatus = "unknown" | "started" | "approaching" | "arrived" | "expired" | "completed" | "canceled";
|
|
496
|
-
export interface RadarLocationPermissionStatusAndroid {
|
|
497
|
-
status: LocationPermissionState;
|
|
498
|
-
foregroundPermissionResult: boolean;
|
|
499
|
-
backgroundPermissionResult: boolean;
|
|
500
|
-
shouldShowRequestPermissionRationaleFG: boolean;
|
|
501
|
-
shouldShowRequestPermissionRationaleBG: boolean;
|
|
502
|
-
previouslyDeniedForeground: boolean;
|
|
503
|
-
inLocationPopup: boolean;
|
|
504
|
-
approximatePermissionResult: boolean;
|
|
505
|
-
previouslyDeniedBackground: boolean;
|
|
506
|
-
}
|
|
507
|
-
export interface RadarLocationPermissionStatusIOS {
|
|
508
|
-
status: LocationPermissionState;
|
|
509
|
-
locationManagerStatus: LocationManagerStatus;
|
|
510
|
-
backgroundPopupAvailable: boolean;
|
|
511
|
-
inForegroundPopup: boolean;
|
|
512
|
-
userRejectedBackgroundPermission: boolean;
|
|
513
|
-
}
|
|
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" | "BACKGROUND_PERMISSION_PENDING" | "PERMISSION_RESTRICTED" | "UNKNOWN";
|
|
516
|
-
export type LocationManagerStatus = "NotDetermined" | "Restricted" | "Denied" | "AuthorizedAlways" | "AuthorizedWhenInUse" | "Unknown";
|
package/dist/src/index.native.js
CHANGED
|
@@ -27,10 +27,7 @@ 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
|
|
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();
|
|
30
|
+
const requestPermissions = (background) => react_native_1.NativeModules.RNRadar.requestPermissions(background);
|
|
34
31
|
const getLocation = (desiredAccuracy) => react_native_1.NativeModules.RNRadar.getLocation(desiredAccuracy);
|
|
35
32
|
const trackOnce = (options) => {
|
|
36
33
|
let backCompatibleOptions = options;
|
|
@@ -98,10 +95,7 @@ const Radar = {
|
|
|
98
95
|
setAnonymousTrackingEnabled,
|
|
99
96
|
isUsingRemoteTrackingOptions,
|
|
100
97
|
getPermissionsStatus,
|
|
101
|
-
|
|
102
|
-
requestBackgroundLocationPermission,
|
|
103
|
-
getLocationPermissionStatus,
|
|
104
|
-
openAppSettings,
|
|
98
|
+
requestPermissions,
|
|
105
99
|
getLocation,
|
|
106
100
|
trackOnce,
|
|
107
101
|
trackVerified,
|
package/ios/Cartfile.resolved
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
github "radarlabs/radar-sdk-ios" "3.
|
|
1
|
+
github "radarlabs/radar-sdk-ios" "3.15.0"
|
package/ios/RNRadar.m
CHANGED
|
@@ -24,38 +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
|
-
+ (NSDictionary *)mapLocationPermissionStatus:(NSDictionary *)status {
|
|
31
|
-
NSString *statusString = status[@"locationPermissionState"];
|
|
32
|
-
NSString *newStatusString;
|
|
33
|
-
|
|
34
|
-
if ([statusString isEqualToString:@"NoPermissionGranted"]) {
|
|
35
|
-
newStatusString = @"NO_PERMISSION_GRANTED";
|
|
36
|
-
} else if ([statusString isEqualToString:@"ForegroundPermissionGranted"]) {
|
|
37
|
-
newStatusString = @"FOREGROUND_PERMISSION_GRANTED";
|
|
38
|
-
} else if ([statusString isEqualToString:@"ForegroundPermissionRejected"]) {
|
|
39
|
-
newStatusString = @"FOREGROUND_PERMISSION_REJECTED";
|
|
40
|
-
} else if ([statusString isEqualToString:@"ForegroundPermissionPending"]) {
|
|
41
|
-
newStatusString = @"FOREGROUND_PERMISSION_PENDING";
|
|
42
|
-
} else if ([statusString isEqualToString:@"BackgroundPermissionGranted"]) {
|
|
43
|
-
newStatusString = @"BACKGROUND_PERMISSION_GRANTED";
|
|
44
|
-
} else if ([statusString isEqualToString:@"BackgroundPermissionRejected"]) {
|
|
45
|
-
newStatusString = @"BACKGROUND_PERMISSION_REJECTED";
|
|
46
|
-
} else if ([statusString isEqualToString:@"BackgroundPermissionPending"]) {
|
|
47
|
-
newStatusString = @"BACKGROUND_PERMISSION_PENDING";
|
|
48
|
-
} else if ([statusString isEqualToString:@"PermissionRestricted"]) {
|
|
49
|
-
newStatusString = @"PERMISSION_RESTRICTED";
|
|
50
|
-
} else {
|
|
51
|
-
newStatusString = @"UNKNOWN";
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
NSMutableDictionary *newStatus = [status mutableCopy];
|
|
55
|
-
[newStatus removeObjectForKey:@"locationPermissionState"];
|
|
56
|
-
[newStatus setValue:newStatusString forKey:@"status"];
|
|
57
|
-
return newStatus;
|
|
58
|
-
}
|
|
59
27
|
|
|
60
28
|
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status {
|
|
61
29
|
if (permissionsRequestResolver) {
|
|
@@ -73,7 +41,7 @@ RCT_EXPORT_MODULE();
|
|
|
73
41
|
}
|
|
74
42
|
|
|
75
43
|
- (NSArray<NSString *> *)supportedEvents {
|
|
76
|
-
return @[@"events", @"location", @"clientLocation", @"error", @"log", @"token"
|
|
44
|
+
return @[@"events", @"location", @"clientLocation", @"error", @"log", @"token"];
|
|
77
45
|
}
|
|
78
46
|
|
|
79
47
|
- (void)startObserving {
|
|
@@ -132,15 +100,9 @@ RCT_EXPORT_MODULE();
|
|
|
132
100
|
}
|
|
133
101
|
}
|
|
134
102
|
|
|
135
|
-
- (void)didUpdateLocationPermissionStatus:(RadarLocationPermissionStatus *)status {
|
|
136
|
-
if (hasListeners) {
|
|
137
|
-
[self sendEventWithName:@"locationPermissionStatus" body:[RNRadar mapLocationPermissionStatus:[status dictionaryValue]]];
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
103
|
RCT_EXPORT_METHOD(initialize:(NSString *)publishableKey fraud:(BOOL)fraud) {
|
|
142
104
|
[[NSUserDefaults standardUserDefaults] setObject:@"ReactNative" forKey:@"radar-xPlatformSDKType"];
|
|
143
|
-
[[NSUserDefaults standardUserDefaults] setObject:@"3.
|
|
105
|
+
[[NSUserDefaults standardUserDefaults] setObject:@"3.14.0" forKey:@"radar-xPlatformSDKVersion"];
|
|
144
106
|
[Radar initializeWithPublishableKey:publishableKey];
|
|
145
107
|
}
|
|
146
108
|
|
|
@@ -226,6 +188,19 @@ RCT_REMAP_METHOD(getPermissionsStatus, getPermissionsStatusWithResolver:(RCTProm
|
|
|
226
188
|
resolve(statusStr);
|
|
227
189
|
}
|
|
228
190
|
|
|
191
|
+
RCT_EXPORT_METHOD(requestPermissions:(BOOL)background resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
|
|
192
|
+
permissionsRequestResolver = resolve;
|
|
193
|
+
|
|
194
|
+
CLAuthorizationStatus status = [CLLocationManager authorizationStatus];
|
|
195
|
+
if (background && status == kCLAuthorizationStatusAuthorizedWhenInUse) {
|
|
196
|
+
[locationManager requestAlwaysAuthorization];
|
|
197
|
+
} else if (status == kCLAuthorizationStatusNotDetermined) {
|
|
198
|
+
[locationManager requestWhenInUseAuthorization];
|
|
199
|
+
} else {
|
|
200
|
+
[self getPermissionsStatusWithResolver:resolve rejecter:reject];
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
|
|
229
204
|
RCT_EXPORT_METHOD(getLocation:(NSString *)desiredAccuracy resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
|
|
230
205
|
__block RCTPromiseResolveBlock resolver = resolve;
|
|
231
206
|
__block RCTPromiseRejectBlock rejecter = reject;
|
|
@@ -1175,21 +1150,4 @@ RCT_EXPORT_METHOD(logConversion:(NSDictionary *)optionsDict resolve:(RCTPromiseR
|
|
|
1175
1150
|
}
|
|
1176
1151
|
}
|
|
1177
1152
|
|
|
1178
|
-
RCT_EXPORT_METHOD(requestForegroundLocationPermission) {
|
|
1179
|
-
[Radar requestForegroundLocationPermission];
|
|
1180
|
-
}
|
|
1181
|
-
|
|
1182
|
-
RCT_EXPORT_METHOD(requestBackgroundLocationPermission) {
|
|
1183
|
-
[Radar requestBackgroundLocationPermission];
|
|
1184
|
-
}
|
|
1185
|
-
|
|
1186
|
-
RCT_EXPORT_METHOD(getLocationPermissionStatus:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
|
|
1187
|
-
RadarLocationPermissionStatus* status = [Radar getLocationPermissionStatus];
|
|
1188
|
-
resolve([RNRadar mapLocationPermissionStatus:[status dictionaryValue]]);
|
|
1189
|
-
}
|
|
1190
|
-
|
|
1191
|
-
RCT_EXPORT_METHOD(openAppSettings) {
|
|
1192
|
-
[Radar openAppSettings];
|
|
1193
|
-
}
|
|
1194
|
-
|
|
1195
1153
|
@end
|
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.14.0",
|
|
7
7
|
"main": "dist/src/index.js",
|
|
8
8
|
"files": [
|
|
9
9
|
"android",
|
|
@@ -36,7 +36,6 @@ import {
|
|
|
36
36
|
RadarGetMatrixOptions,
|
|
37
37
|
RadarMetadata,
|
|
38
38
|
RadarIPGeocodeCallback,
|
|
39
|
-
RadarLocationPermissionStatus,
|
|
40
39
|
} from "./types";
|
|
41
40
|
|
|
42
41
|
export interface RadarNativeInterface {
|
|
@@ -50,10 +49,7 @@ export interface RadarNativeInterface {
|
|
|
50
49
|
getMetadata: () => Promise<RadarMetadata>;
|
|
51
50
|
setAnonymousTrackingEnabled: (enabled: boolean) => void;
|
|
52
51
|
getPermissionsStatus: () => Promise<RadarPermissionsStatus>;
|
|
53
|
-
|
|
54
|
-
requestBackgroundLocationPermission: () => void;
|
|
55
|
-
getLocationPermissionStatus: () => Promise<RadarLocationPermissionStatus>;
|
|
56
|
-
openAppSettings: () => void;
|
|
52
|
+
requestPermissions: (background: boolean) => Promise<RadarPermissionsStatus>;
|
|
57
53
|
getLocation: (
|
|
58
54
|
desiredAccuracy?: RadarTrackingOptionsDesiredAccuracy
|
|
59
55
|
) => Promise<RadarLocationCallback>;
|
package/src/@types/types.ts
CHANGED
|
@@ -421,9 +421,6 @@ export interface RadarLogUpdateCallback {
|
|
|
421
421
|
(status: string): void;
|
|
422
422
|
}
|
|
423
423
|
|
|
424
|
-
export interface RadarLocationPermissionStatusCallback {
|
|
425
|
-
(status: RadarLocationPermissionStatus): void;
|
|
426
|
-
}
|
|
427
424
|
|
|
428
425
|
export type RadarListenerCallback =
|
|
429
426
|
| RadarEventUpdateCallback
|
|
@@ -431,7 +428,6 @@ export type RadarListenerCallback =
|
|
|
431
428
|
| RadarClientLocationUpdateCallback
|
|
432
429
|
| RadarErrorCallback
|
|
433
430
|
| RadarLogUpdateCallback
|
|
434
|
-
| RadarLocationPermissionStatusCallback;
|
|
435
431
|
|
|
436
432
|
export type RadarPermissionsStatus =
|
|
437
433
|
| "GRANTED_FOREGROUND"
|
|
@@ -454,7 +450,7 @@ export type RadarLocationSource =
|
|
|
454
450
|
| "BEACON_EXIT"
|
|
455
451
|
| "UNKNOWN";
|
|
456
452
|
|
|
457
|
-
export type RadarEventChannel = "clientLocation" | "location" | "error" | "events" | "log" | "token"
|
|
453
|
+
export type RadarEventChannel = "clientLocation" | "location" | "error" | "events" | "log" | "token" ;
|
|
458
454
|
|
|
459
455
|
export type RadarLogLevel = "info" | "debug" | "warning" | "error" | "none";
|
|
460
456
|
|
|
@@ -786,47 +782,3 @@ export type RadarTripStatus =
|
|
|
786
782
|
| "completed"
|
|
787
783
|
| "canceled";
|
|
788
784
|
|
|
789
|
-
export interface RadarLocationPermissionStatusAndroid {
|
|
790
|
-
status: LocationPermissionState;
|
|
791
|
-
foregroundPermissionResult: boolean;
|
|
792
|
-
backgroundPermissionResult: boolean;
|
|
793
|
-
shouldShowRequestPermissionRationaleFG: boolean;
|
|
794
|
-
shouldShowRequestPermissionRationaleBG: boolean;
|
|
795
|
-
previouslyDeniedForeground: boolean;
|
|
796
|
-
inLocationPopup: boolean;
|
|
797
|
-
approximatePermissionResult: boolean;
|
|
798
|
-
previouslyDeniedBackground: boolean;
|
|
799
|
-
}
|
|
800
|
-
|
|
801
|
-
export interface RadarLocationPermissionStatusIOS {
|
|
802
|
-
status: LocationPermissionState;
|
|
803
|
-
locationManagerStatus: LocationManagerStatus;
|
|
804
|
-
backgroundPopupAvailable: boolean;
|
|
805
|
-
inForegroundPopup: boolean;
|
|
806
|
-
userRejectedBackgroundPermission: boolean;
|
|
807
|
-
}
|
|
808
|
-
|
|
809
|
-
export type RadarLocationPermissionStatus =
|
|
810
|
-
RadarLocationPermissionStatusAndroid | RadarLocationPermissionStatusIOS
|
|
811
|
-
|
|
812
|
-
export type LocationPermissionState =
|
|
813
|
-
| "NO_PERMISSION_GRANTED"
|
|
814
|
-
| "FOREGROUND_PERMISSION_GRANTED"
|
|
815
|
-
| "APPROXIMATE_PERMISSION_GRANTED"
|
|
816
|
-
| "FOREGROUND_PERMISSION_REJECTED_ONCE"
|
|
817
|
-
| "FOREGROUND_PERMISSION_REJECTED"
|
|
818
|
-
| "FOREGROUND_PERMISSION_PENDING"
|
|
819
|
-
| "BACKGROUND_PERMISSION_GRANTED"
|
|
820
|
-
| "BACKGROUND_PERMISSION_REJECTED"
|
|
821
|
-
| "BACKGROUND_PERMISSION_REJECTED_ONCE"
|
|
822
|
-
| "BACKGROUND_PERMISSION_PENDING"
|
|
823
|
-
| "PERMISSION_RESTRICTED"
|
|
824
|
-
| "UNKNOWN";
|
|
825
|
-
|
|
826
|
-
export type LocationManagerStatus =
|
|
827
|
-
| "NotDetermined"
|
|
828
|
-
| "Restricted"
|
|
829
|
-
| "Denied"
|
|
830
|
-
| "AuthorizedAlways"
|
|
831
|
-
| "AuthorizedWhenInUse"
|
|
832
|
-
| "Unknown";
|
package/src/index.native.ts
CHANGED
|
@@ -39,7 +39,6 @@ import {
|
|
|
39
39
|
RadarIPGeocodeCallback,
|
|
40
40
|
RadarTrackVerifiedOptions,
|
|
41
41
|
RadarTrackVerifiedCallback,
|
|
42
|
-
RadarLocationPermissionStatus,
|
|
43
42
|
} from "./@types/types";
|
|
44
43
|
|
|
45
44
|
if (
|
|
@@ -85,16 +84,10 @@ const setAnonymousTrackingEnabled = (enabled: boolean): void =>
|
|
|
85
84
|
const getPermissionsStatus = (): Promise<RadarPermissionsStatus> =>
|
|
86
85
|
NativeModules.RNRadar.getPermissionsStatus();
|
|
87
86
|
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
NativeModules.RNRadar.requestBackgroundLocationPermission();
|
|
93
|
-
|
|
94
|
-
const getLocationPermissionStatus = (): Promise<RadarLocationPermissionStatus> =>
|
|
95
|
-
NativeModules.RNRadar.getLocationPermissionStatus();
|
|
96
|
-
|
|
97
|
-
const openAppSettings = () => NativeModules.RNRadar.openAppSettings()
|
|
87
|
+
const requestPermissions = (
|
|
88
|
+
background: boolean
|
|
89
|
+
): Promise<RadarPermissionsStatus> =>
|
|
90
|
+
NativeModules.RNRadar.requestPermissions(background);
|
|
98
91
|
|
|
99
92
|
const getLocation = (
|
|
100
93
|
desiredAccuracy?: RadarTrackingOptionsDesiredAccuracy
|
|
@@ -115,10 +108,12 @@ const trackOnce = (
|
|
|
115
108
|
return NativeModules.RNRadar.trackOnce(backCompatibleOptions);
|
|
116
109
|
};
|
|
117
110
|
|
|
118
|
-
const trackVerified = (
|
|
111
|
+
const trackVerified = (
|
|
112
|
+
options?: RadarTrackVerifiedOptions
|
|
113
|
+
): Promise<RadarTrackVerifiedCallback> =>
|
|
119
114
|
NativeModules.RNRadar.trackVerified(options);
|
|
120
115
|
|
|
121
|
-
const getVerifiedLocationToken = (): Promise<RadarTrackVerifiedCallback> =>
|
|
116
|
+
const getVerifiedLocationToken = (): Promise<RadarTrackVerifiedCallback> =>
|
|
122
117
|
NativeModules.RNRadar.getVerifiedLocationToken();
|
|
123
118
|
|
|
124
119
|
const startTrackingEfficient = (): void =>
|
|
@@ -141,7 +136,8 @@ const mockTracking = (options: RadarMockTrackingOptions): void =>
|
|
|
141
136
|
|
|
142
137
|
const stopTracking = (): void => NativeModules.RNRadar.stopTracking();
|
|
143
138
|
|
|
144
|
-
const stopTrackingVerified = (): void =>
|
|
139
|
+
const stopTrackingVerified = (): void =>
|
|
140
|
+
NativeModules.RNRadar.stopTrackingVerified();
|
|
145
141
|
|
|
146
142
|
const getTrackingOptions = (): Promise<RadarTrackingOptions> =>
|
|
147
143
|
NativeModules.RNRadar.getTrackingOptions();
|
|
@@ -201,7 +197,9 @@ const autocomplete = (
|
|
|
201
197
|
const geocode = (options: RadarGeocodeOptions): Promise<RadarAddressCallback> =>
|
|
202
198
|
NativeModules.RNRadar.geocode(options);
|
|
203
199
|
|
|
204
|
-
const reverseGeocode = (
|
|
200
|
+
const reverseGeocode = (
|
|
201
|
+
options?: RadarReverseGeocodeOptions
|
|
202
|
+
): Promise<RadarAddressCallback> =>
|
|
205
203
|
NativeModules.RNRadar.reverseGeocode(options);
|
|
206
204
|
|
|
207
205
|
const ipGeocode = (): Promise<RadarIPGeocodeCallback> =>
|
|
@@ -222,10 +220,15 @@ const logConversion = (
|
|
|
222
220
|
const sendEvent = (name: string, metadata: RadarMetadata): void =>
|
|
223
221
|
NativeModules.RNRadar.sendEvent(name, metadata);
|
|
224
222
|
|
|
225
|
-
const on = (
|
|
226
|
-
|
|
223
|
+
const on = (
|
|
224
|
+
channel: RadarEventChannel,
|
|
225
|
+
callback: RadarListenerCallback
|
|
226
|
+
): void => eventEmitter.addListener(channel, callback);
|
|
227
227
|
|
|
228
|
-
const off = (
|
|
228
|
+
const off = (
|
|
229
|
+
channel: RadarEventChannel,
|
|
230
|
+
callback?: Function | undefined
|
|
231
|
+
): void => {
|
|
229
232
|
if (callback) {
|
|
230
233
|
// @ts-ignore
|
|
231
234
|
eventEmitter.removeListener(channel, callback);
|
|
@@ -251,10 +254,7 @@ const Radar: RadarNativeInterface = {
|
|
|
251
254
|
setAnonymousTrackingEnabled,
|
|
252
255
|
isUsingRemoteTrackingOptions,
|
|
253
256
|
getPermissionsStatus,
|
|
254
|
-
|
|
255
|
-
requestBackgroundLocationPermission,
|
|
256
|
-
getLocationPermissionStatus,
|
|
257
|
-
openAppSettings,
|
|
257
|
+
requestPermissions,
|
|
258
258
|
getLocation,
|
|
259
259
|
trackOnce,
|
|
260
260
|
trackVerified,
|