react-native-radar 3.9.1 → 3.9.2

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.9.1'
21
+ versionName '3.9.2'
22
22
  }
23
23
  lintOptions {
24
24
  abortOnError false
@@ -45,5 +45,5 @@ repositories {
45
45
 
46
46
  dependencies {
47
47
  api 'com.facebook.react:react-native:+'
48
- api 'io.radar:sdk:3.9.1'
48
+ api 'io.radar:sdk:3.9.8'
49
49
  }
@@ -25,6 +25,7 @@ import io.radar.sdk.Radar;
25
25
  import io.radar.sdk.RadarTrackingOptions;
26
26
  import io.radar.sdk.RadarTrackingOptions.RadarTrackingOptionsForegroundService;
27
27
  import io.radar.sdk.RadarTripOptions;
28
+ import io.radar.sdk.RadarVerifiedReceiver;
28
29
  import io.radar.sdk.model.RadarAddress;
29
30
  import io.radar.sdk.model.RadarContext;
30
31
  import io.radar.sdk.model.RadarEvent;
@@ -49,16 +50,22 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
49
50
  private Promise mPermissionsRequestPromise;
50
51
 
51
52
  private RNRadarReceiver receiver;
53
+ private RNRadarVerifiedReceiver verifiedReceiver;
52
54
  private int listenerCount = 0;
55
+ private boolean fraud = false;
53
56
 
54
57
  public RNRadarModule(ReactApplicationContext reactContext) {
55
58
  super(reactContext);
56
59
  receiver = new RNRadarReceiver();
60
+ verifiedReceiver = new RNRadarVerifiedReceiver();
57
61
  }
58
62
 
59
63
  @ReactMethod
60
64
  public void addListener(String eventName) {
61
65
  if (listenerCount == 0) {
66
+ if (fraud) {
67
+ verifiedReceiver.hasListeners = true;
68
+ }
62
69
  receiver.hasListeners = true;
63
70
  }
64
71
 
@@ -69,6 +76,9 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
69
76
  public void removeListeners(Integer count) {
70
77
  listenerCount -= count;
71
78
  if (listenerCount == 0) {
79
+ if (fraud) {
80
+ verifiedReceiver.hasListeners = false;
81
+ }
72
82
  receiver.hasListeners = false;
73
83
  }
74
84
  }
@@ -80,8 +90,15 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
80
90
 
81
91
  @ReactMethod
82
92
  public void initialize(String publishableKey, boolean fraud) {
93
+ this.fraud = fraud;
94
+ SharedPreferences.Editor editor = getReactApplicationContext().getSharedPreferences("RadarSDK", Context.MODE_PRIVATE).edit();
95
+ editor.putString("x_platform_sdk_type", "ReactNative");
96
+ editor.putString("x_platform_sdk_version", "3.9.2");
97
+ editor.apply();
98
+
83
99
  if (fraud) {
84
100
  Radar.initialize(getReactApplicationContext(), publishableKey, receiver, Radar.RadarLocationServicesProvider.GOOGLE, fraud);
101
+ Radar.setVerifiedReceiver(verifiedReceiver);
85
102
  } else {
86
103
  Radar.initialize(getReactApplicationContext(), publishableKey);
87
104
  Radar.setReceiver(receiver);
@@ -359,8 +376,17 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
359
376
  }
360
377
 
361
378
  @ReactMethod
362
- public void trackVerified(final Promise promise) {
363
- Radar.trackVerified(new Radar.RadarTrackCallback() {
379
+ public void trackVerified(ReadableMap optionsMap, final Promise promise) {
380
+
381
+ boolean beaconsTrackingOption = false;
382
+
383
+ if (optionsMap != null) {
384
+ if (optionsMap.hasKey("beacons")) {
385
+ beaconsTrackingOption = optionsMap.getBoolean("beacons");
386
+ }
387
+ }
388
+
389
+ Radar.RadarTrackCallback trackCallback = new Radar.RadarTrackCallback() {
364
390
  @Override
365
391
  public void onComplete(@NonNull Radar.RadarStatus status, @Nullable Location location, @Nullable RadarEvent[] events, @Nullable RadarUser user) {
366
392
  if (promise == null) {
@@ -389,12 +415,23 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
389
415
  promise.reject(Radar.RadarStatus.ERROR_SERVER.toString(), Radar.RadarStatus.ERROR_SERVER.toString());
390
416
  }
391
417
  }
392
- });
418
+ };
419
+
420
+ Radar.trackVerified(beaconsTrackingOption, trackCallback);
393
421
  }
394
422
 
395
423
  @ReactMethod
396
- public void trackVerifiedToken(final Promise promise) {
397
- Radar.trackVerifiedToken(new Radar.RadarTrackTokenCallback() {
424
+ public void trackVerifiedToken(ReadableMap optionsMap, final Promise promise) {
425
+
426
+ boolean beaconsTrackingOption = false;
427
+
428
+ if (optionsMap != null) {
429
+ if (optionsMap.hasKey("beacons")) {
430
+ beaconsTrackingOption = optionsMap.getBoolean("beacons");
431
+ }
432
+ }
433
+
434
+ Radar.RadarTrackTokenCallback trackTokenCallback = new Radar.RadarTrackTokenCallback() {
398
435
  @Override
399
436
  public void onComplete(@NonNull Radar.RadarStatus status, @Nullable String token) {
400
437
  if (promise == null) {
@@ -417,7 +454,9 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
417
454
  promise.reject(Radar.RadarStatus.ERROR_SERVER.toString(), Radar.RadarStatus.ERROR_SERVER.toString());
418
455
  }
419
456
  }
420
- });
457
+ };
458
+
459
+ Radar.trackVerifiedToken(beaconsTrackingOption, trackTokenCallback);
421
460
  }
422
461
 
423
462
  @ReactMethod
@@ -446,6 +485,21 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
446
485
  }
447
486
  }
448
487
 
488
+ @ReactMethod
489
+ public void startTrackingVerified(ReadableMap optionsMap) {
490
+ boolean token = false;
491
+ boolean beacons = false;
492
+ int interval = 1;
493
+
494
+ if (optionsMap != null) {
495
+ token = optionsMap.hasKey("token") ? optionsMap.getBoolean("token") : token;
496
+ beacons = optionsMap.hasKey("beacons") ? optionsMap.getBoolean("beacons") : beacons;
497
+ interval = optionsMap.hasKey("interval") ? optionsMap.getInt("interval") : interval;
498
+ }
499
+
500
+ Radar.startTrackingVerified(token, interval, beacons);
501
+ }
502
+
449
503
  @ReactMethod
450
504
  public void mockTracking(ReadableMap optionsMap) {
451
505
  ReadableMap originMap = optionsMap.getMap("origin");
@@ -0,0 +1,46 @@
1
+ package io.radar.react;
2
+
3
+ import android.content.Context;
4
+ import android.util.Log;
5
+
6
+ import androidx.annotation.NonNull;
7
+
8
+ import com.facebook.react.ReactApplication;
9
+ import com.facebook.react.ReactInstanceManager;
10
+ import com.facebook.react.ReactNativeHost;
11
+ import com.facebook.react.bridge.Arguments;
12
+ import com.facebook.react.bridge.ReactContext;
13
+ import com.facebook.react.bridge.ReactMethod;
14
+ import com.facebook.react.bridge.WritableMap;
15
+ import com.facebook.react.modules.core.DeviceEventManagerModule;
16
+
17
+ import io.radar.sdk.Radar;
18
+ import io.radar.sdk.RadarVerifiedReceiver;
19
+
20
+ public class RNRadarVerifiedReceiver extends RadarVerifiedReceiver {
21
+
22
+ private ReactNativeHost reactNativeHost;
23
+ private static final String TAG = "RNRadarVerifiedReceiver";
24
+ protected boolean hasListeners = false;
25
+
26
+ private void sendEvent(final String eventName, final Object data) {
27
+ final ReactInstanceManager reactInstanceManager = reactNativeHost.getReactInstanceManager();
28
+ ReactContext reactContext = reactInstanceManager.getCurrentReactContext();
29
+ if (reactContext != null && hasListeners) {
30
+ reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit(eventName, data);
31
+ }
32
+ }
33
+
34
+ @Override
35
+ public void onTokenUpdated(@NonNull Context context, @NonNull String token) {
36
+ try {
37
+ ReactApplication reactApplication = ((ReactApplication)context.getApplicationContext());
38
+ reactNativeHost = reactApplication.getReactNativeHost();
39
+
40
+ sendEvent("token", token);
41
+ } catch (Exception e) {
42
+ Log.e(TAG, "Exception", e);
43
+ }
44
+ }
45
+
46
+ }
@@ -1 +1 @@
1
- github "radarlabs/radar-sdk-ios" "3.9.3"
1
+ github "radarlabs/radar-sdk-ios" "3.9.12"
package/ios/RNRadar.h CHANGED
@@ -3,6 +3,6 @@
3
3
  #import <React/RCTBridgeModule.h>
4
4
  #import <React/RCTEventEmitter.h>
5
5
 
6
- @interface RNRadar : RCTEventEmitter <RadarDelegate, RCTBridgeModule, CLLocationManagerDelegate>
6
+ @interface RNRadar : RCTEventEmitter <RadarDelegate, RadarVerifiedDelegate, RCTBridgeModule, CLLocationManagerDelegate>
7
7
 
8
8
  @end
package/ios/RNRadar.m CHANGED
@@ -16,6 +16,7 @@ RCT_EXPORT_MODULE();
16
16
  self = [super init];
17
17
  if (self) {
18
18
  [Radar setDelegate:self];
19
+ [Radar setVerifiedDelegate:self];
19
20
  locationManager = [CLLocationManager new];
20
21
  locationManager.delegate = self;
21
22
  }
@@ -38,7 +39,7 @@ RCT_EXPORT_MODULE();
38
39
  }
39
40
 
40
41
  - (NSArray<NSString *> *)supportedEvents {
41
- return @[@"events", @"location", @"clientLocation", @"error", @"log"];
42
+ return @[@"events", @"location", @"clientLocation", @"error", @"log", @"token"];
42
43
  }
43
44
 
44
45
  - (void)startObserving {
@@ -91,7 +92,15 @@ RCT_EXPORT_MODULE();
91
92
  }
92
93
  }
93
94
 
95
+ - (void)didUpdateToken:(NSString *)token {
96
+ if (hasListeners) {
97
+ [self sendEventWithName:@"token" body:token];
98
+ }
99
+ }
100
+
94
101
  RCT_EXPORT_METHOD(initialize:(NSString *)publishableKey fraud:(BOOL)fraud) {
102
+ [[NSUserDefaults standardUserDefaults] setObject:@"ReactNative" forKey:@"radar-xPlatformSDKType"];
103
+ [[NSUserDefaults standardUserDefaults] setObject:@"3.9.2" forKey:@"radar-xPlatformSDKVersion"];
95
104
  [Radar initializeWithPublishableKey:publishableKey];
96
105
  }
97
106
 
@@ -231,7 +240,7 @@ RCT_EXPORT_METHOD(getLocation:(NSString *)desiredAccuracy resolve:(RCTPromiseRes
231
240
 
232
241
  RCT_EXPORT_METHOD(trackOnce:(NSDictionary *)optionsDict resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
233
242
  RadarTrackingOptionsDesiredAccuracy desiredAccuracy;
234
- BOOL beaconsTrackingOption = NO;
243
+ BOOL beacons = NO;
235
244
  desiredAccuracy = RadarTrackingOptionsDesiredAccuracyMedium;
236
245
 
237
246
  __block RCTPromiseResolveBlock resolver = resolve;
@@ -285,21 +294,28 @@ RCT_EXPORT_METHOD(trackOnce:(NSDictionary *)optionsDict resolve:(RCTPromiseResol
285
294
  }
286
295
  }
287
296
 
288
- BOOL beacons = optionsDict[@"beacons"];
289
-
290
- if (beacons) {
291
- beaconsTrackingOption = beacons;
297
+ NSNumber *beaconsNumber = optionsDict[@"beacons"];
298
+ if (beaconsNumber != nil && [beaconsNumber isKindOfClass:[NSNumber class]]) {
299
+ beacons = [beaconsNumber boolValue];
292
300
  }
293
301
 
294
- [Radar trackOnceWithDesiredAccuracy:desiredAccuracy beacons:beaconsTrackingOption completionHandler:completionHandler];
302
+ [Radar trackOnceWithDesiredAccuracy:desiredAccuracy beacons:beacons completionHandler:completionHandler];
295
303
  }
296
304
  }
297
305
 
298
- RCT_EXPORT_METHOD(trackVerified:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
299
- __block RCTPromiseResolveBlock resolver = resolve;
300
- __block RCTPromiseRejectBlock rejecter = reject;
306
+ RCT_EXPORT_METHOD(trackVerified:(NSDictionary *)optionsDict resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
307
+ BOOL beacons = NO;
308
+ if (optionsDict != nil) {
309
+ NSNumber *beaconsNumber = optionsDict[@"beacons"];
310
+ if (beaconsNumber != nil && [beaconsNumber isKindOfClass:[NSNumber class]]) {
311
+ beacons = [beaconsNumber boolValue];
312
+ }
313
+ }
301
314
 
302
- RadarTrackCompletionHandler completionHandler = ^(RadarStatus status, CLLocation * _Nullable location, NSArray<RadarEvent *> * _Nullable events, RadarUser * _Nullable user) {
315
+ __block RCTPromiseResolveBlock resolver = resolve;
316
+ __block RCTPromiseRejectBlock rejecter = reject;
317
+
318
+ RadarTrackCompletionHandler completionHandler = ^(RadarStatus status, CLLocation * _Nullable location, NSArray<RadarEvent *> * _Nullable events, RadarUser * _Nullable user) {
303
319
  if (status == RadarStatusSuccess && resolver) {
304
320
  NSMutableDictionary *dict = [NSMutableDictionary new];
305
321
  [dict setObject:[Radar stringForStatus:status] forKey:@"status"];
@@ -318,16 +334,24 @@ RCT_EXPORT_METHOD(trackVerified:(RCTPromiseResolveBlock)resolve reject:(RCTPromi
318
334
  }
319
335
  resolver = nil;
320
336
  rejecter = nil;
321
- };
337
+ };
322
338
 
323
- [Radar trackVerifiedWithCompletionHandler:completionHandler];
339
+ [Radar trackVerifiedWithBeacons:beacons completionHandler:completionHandler];
324
340
  }
325
341
 
326
- RCT_EXPORT_METHOD(trackVerifiedToken:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
327
- __block RCTPromiseResolveBlock resolver = resolve;
328
- __block RCTPromiseRejectBlock rejecter = reject;
342
+ RCT_EXPORT_METHOD(trackVerifiedToken:(NSDictionary *)optionsDict resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
343
+ BOOL beacons = NO;
344
+ if (optionsDict != nil) {
345
+ NSNumber *beaconsNumber = optionsDict[@"beacons"];
346
+ if (beaconsNumber != nil && [beaconsNumber isKindOfClass:[NSNumber class]]) {
347
+ beacons = [beaconsNumber boolValue];
348
+ }
349
+ }
350
+
351
+ __block RCTPromiseResolveBlock resolver = resolve;
352
+ __block RCTPromiseRejectBlock rejecter = reject;
329
353
 
330
- RadarTrackTokenCompletionHandler completionHandler = ^(RadarStatus status, NSString * _Nullable token) {
354
+ RadarTrackTokenCompletionHandler completionHandler = ^(RadarStatus status, NSString * _Nullable token) {
331
355
  if (status == RadarStatusSuccess && resolver) {
332
356
  NSMutableDictionary *dict = [NSMutableDictionary new];
333
357
  [dict setObject:[Radar stringForStatus:status] forKey:@"status"];
@@ -340,9 +364,9 @@ RCT_EXPORT_METHOD(trackVerifiedToken:(RCTPromiseResolveBlock)resolve reject:(RCT
340
364
  }
341
365
  resolver = nil;
342
366
  rejecter = nil;
343
- };
367
+ };
344
368
 
345
- [Radar trackVerifiedTokenWithCompletionHandler:completionHandler];
369
+ [Radar trackVerifiedTokenWithBeacons:beacons completionHandler:completionHandler];
346
370
  }
347
371
 
348
372
  RCT_EXPORT_METHOD(startTrackingEfficient) {
@@ -362,6 +386,29 @@ RCT_EXPORT_METHOD(startTrackingCustom:(NSDictionary *)optionsDict) {
362
386
  [Radar startTrackingWithOptions:options];
363
387
  }
364
388
 
389
+ RCT_EXPORT_METHOD(startTrackingVerified:(NSDictionary *)optionsDict) {
390
+ BOOL token = NO;
391
+ BOOL beacons = NO;
392
+ double interval = 1;
393
+
394
+ if (optionsDict != nil) {
395
+ NSNumber *tokenNumber = optionsDict[@"token"];
396
+ if (tokenNumber != nil && [tokenNumber isKindOfClass:[NSNumber class]]) {
397
+ token = [tokenNumber boolValue];
398
+ }
399
+ NSNumber *beaconsNumber = optionsDict[@"beacons"];
400
+ if (beaconsNumber != nil && [beaconsNumber isKindOfClass:[NSNumber class]]) {
401
+ beacons = [beaconsNumber boolValue];
402
+ }
403
+ NSNumber *intervalNumber = optionsDict[@"interval"];
404
+ if (intervalNumber != nil && [intervalNumber isKindOfClass:[NSNumber class]]) {
405
+ interval = [intervalNumber doubleValue];
406
+ }
407
+ }
408
+
409
+ [Radar startTrackingVerified:token interval:interval beacons:beacons];
410
+ }
411
+
365
412
  RCT_EXPORT_METHOD(mockTracking:(NSDictionary *)optionsDict) {
366
413
  if (optionsDict == nil) {
367
414
  return;
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.9.1",
6
+ "version": "3.9.2",
7
7
  "main": "js/index.js",
8
8
  "files": [
9
9
  "android",
@@ -15,5 +15,5 @@ Pod::Spec.new do |s|
15
15
  s.platform = :ios, "10.0"
16
16
 
17
17
  s.dependency "React"
18
- s.dependency "RadarSDK", "~> 3.9.3"
18
+ s.dependency "RadarSDK", "~> 3.9.12"
19
19
  end