react-native-radar 4.0.0 → 4.1.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.
Files changed (80) hide show
  1. package/android/build.gradle +1 -1
  2. package/android/src/main/java/com/radar/RadarModuleImpl.java +110 -0
  3. package/android/src/newarch/java/com/radar/RadarModule.kt +45 -2
  4. package/android/src/oldarch/java/com/radar/RadarModule.java +56 -2
  5. package/dist/@types/RadarNativeInterface.d.ts +9 -2
  6. package/dist/@types/types.d.ts +38 -2
  7. package/dist/NativeRadar.d.ts +8 -1
  8. package/dist/index.native.js +35 -3
  9. package/dist/index.web.d.ts +6 -0
  10. package/dist/index.web.js +17 -0
  11. package/dist/version.d.ts +1 -1
  12. package/dist/version.js +1 -1
  13. package/ios/RNRadar.mm +155 -3
  14. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Headers/Radar.h +108 -0
  15. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Headers/RadarBeacon.h +10 -0
  16. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Headers/RadarCoordinate.h +1 -0
  17. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Headers/RadarGeofence.h +10 -0
  18. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Headers/RadarInitializeOptions.h +0 -1
  19. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Headers/RadarSDK-Swift.h +101 -7
  20. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Headers/RadarSDK.h +1 -1
  21. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Headers/RadarSDKFraudProtocol.h +26 -0
  22. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Headers/RadarSdkConfiguration.h +23 -28
  23. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Headers/RadarTrackingOptions.h +20 -1
  24. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Headers/RadarTrip.h +15 -0
  25. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Headers/RadarTripLeg.h +268 -0
  26. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Headers/RadarTripOptions.h +6 -0
  27. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Headers/RadarTripOrder.h +1 -1
  28. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Headers/RadarUser.h +2 -0
  29. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Info.plist +0 -0
  30. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Modules/RadarSDK.swiftmodule/arm64-apple-ios.abi.json +1702 -209
  31. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Modules/RadarSDK.swiftmodule/arm64-apple-ios.private.swiftinterface +34 -9
  32. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Modules/RadarSDK.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  33. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Modules/RadarSDK.swiftmodule/arm64-apple-ios.swiftinterface +34 -9
  34. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Modules/module.modulemap +0 -1
  35. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/RadarSDK +0 -0
  36. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Headers/Radar.h +108 -0
  37. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Headers/RadarBeacon.h +10 -0
  38. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Headers/RadarCoordinate.h +1 -0
  39. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Headers/RadarGeofence.h +10 -0
  40. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Headers/RadarInitializeOptions.h +0 -1
  41. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Headers/RadarSDK-Swift.h +204 -16
  42. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Headers/RadarSDK.h +1 -1
  43. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Headers/RadarSDKFraudProtocol.h +26 -0
  44. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Headers/RadarSdkConfiguration.h +23 -28
  45. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Headers/RadarTrackingOptions.h +20 -1
  46. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Headers/RadarTrip.h +15 -0
  47. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Headers/RadarTripLeg.h +268 -0
  48. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Headers/RadarTripOptions.h +6 -0
  49. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Headers/RadarTripOrder.h +1 -1
  50. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Headers/RadarUser.h +2 -0
  51. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Info.plist +0 -0
  52. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Modules/RadarSDK.swiftmodule/arm64-apple-ios-simulator.abi.json +1702 -209
  53. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Modules/RadarSDK.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +34 -9
  54. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Modules/RadarSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  55. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Modules/RadarSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface +34 -9
  56. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Modules/RadarSDK.swiftmodule/x86_64-apple-ios-simulator.abi.json +1702 -209
  57. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Modules/RadarSDK.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +34 -9
  58. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Modules/RadarSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  59. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Modules/RadarSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +34 -9
  60. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Modules/module.modulemap +0 -1
  61. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/RadarSDK +0 -0
  62. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/_CodeSignature/CodeDirectory +0 -0
  63. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/_CodeSignature/CodeResources +71 -60
  64. package/ios/RadarSDKMotion.xcframework/ios-arm64/RadarSDKMotion.framework/Headers/RadarSDKMotion.h +0 -2
  65. package/ios/RadarSDKMotion.xcframework/ios-arm64/RadarSDKMotion.framework/Info.plist +0 -0
  66. package/ios/RadarSDKMotion.xcframework/ios-arm64/RadarSDKMotion.framework/RadarSDKMotion +0 -0
  67. package/ios/RadarSDKMotion.xcframework/ios-arm64_x86_64-simulator/RadarSDKMotion.framework/Headers/RadarSDKMotion.h +0 -2
  68. package/ios/RadarSDKMotion.xcframework/ios-arm64_x86_64-simulator/RadarSDKMotion.framework/Info.plist +0 -0
  69. package/ios/RadarSDKMotion.xcframework/ios-arm64_x86_64-simulator/RadarSDKMotion.framework/RadarSDKMotion +0 -0
  70. package/ios/RadarSDKMotion.xcframework/ios-arm64_x86_64-simulator/RadarSDKMotion.framework/_CodeSignature/CodeDirectory +0 -0
  71. package/ios/RadarSDKMotion.xcframework/ios-arm64_x86_64-simulator/RadarSDKMotion.framework/_CodeSignature/CodeResources +3 -3
  72. package/package.json +1 -1
  73. package/src/@types/RadarNativeInterface.ts +11 -2
  74. package/src/@types/types.ts +56 -2
  75. package/src/NativeRadar.ts +8 -1
  76. package/src/index.native.ts +42 -3
  77. package/src/index.web.js +17 -0
  78. package/src/version.ts +1 -1
  79. package/ios/RadarSDK.xcframework/ios-arm64/RadarSDK.framework/Headers/Radar-Swift.h +0 -7
  80. package/ios/RadarSDK.xcframework/ios-arm64_x86_64-simulator/RadarSDK.framework/Headers/Radar-Swift.h +0 -7
package/ios/RNRadar.mm CHANGED
@@ -214,11 +214,49 @@ RCT_EXPORT_MODULE()
214
214
  #endif
215
215
  }
216
216
 
217
- RCT_EXPORT_METHOD(initialize:(NSString *)publishableKey fraud:(BOOL)fraud) {
217
+ RCT_EXPORT_METHOD(initialize:(NSString *)publishableKey fraud:(BOOL)fraud options:(NSDictionary *)options) {
218
218
  _publishableKey = publishableKey;
219
219
  [[NSUserDefaults standardUserDefaults] setObject:@"ReactNative" forKey:@"radar-xPlatformSDKType"];
220
- [[NSUserDefaults standardUserDefaults] setObject:@"4.0.0" forKey:@"radar-xPlatformSDKVersion"];
221
- [Radar initializeWithPublishableKey:publishableKey];
220
+ [[NSUserDefaults standardUserDefaults] setObject:@"4.1.0" forKey:@"radar-xPlatformSDKVersion"];
221
+
222
+ RadarInitializeOptions *radarOptions = [[RadarInitializeOptions alloc] init];
223
+ if (options != nil) {
224
+ id silentPushValue = options[@"silentPush"];
225
+ if (silentPushValue && silentPushValue != [NSNull null]) {
226
+ radarOptions.silentPush = [silentPushValue boolValue];
227
+ }
228
+ id autoLogValue = options[@"autoLogNotificationConversions"];
229
+ if (autoLogValue && autoLogValue != [NSNull null]) {
230
+ radarOptions.autoLogNotificationConversions = [autoLogValue boolValue];
231
+ }
232
+ id autoHandleValue = options[@"autoHandleNotificationDeepLinks"];
233
+ if (autoHandleValue && autoHandleValue != [NSNull null]) {
234
+ radarOptions.autoHandleNotificationDeepLinks = [autoHandleValue boolValue];
235
+ }
236
+ }
237
+ [Radar initializeWithPublishableKey:publishableKey options:radarOptions];
238
+ }
239
+
240
+ RCT_EXPORT_METHOD(initializeWithAuthToken:(NSString *)authToken fraud:(BOOL)fraud options:(NSDictionary *)options) {
241
+ _publishableKey = nil;
242
+ [[NSUserDefaults standardUserDefaults] setObject:@"ReactNative" forKey:@"radar-xPlatformSDKType"];
243
+ [[NSUserDefaults standardUserDefaults] setObject:@"4.1.0" forKey:@"radar-xPlatformSDKVersion"];
244
+ RadarInitializeOptions *radarOptions = [[RadarInitializeOptions alloc] init];
245
+ if (options != nil) {
246
+ id silentPushValue = options[@"silentPush"];
247
+ if (silentPushValue && silentPushValue != [NSNull null]) {
248
+ radarOptions.silentPush = [silentPushValue boolValue];
249
+ }
250
+ id autoLogValue = options[@"autoLogNotificationConversions"];
251
+ if (autoLogValue && autoLogValue != [NSNull null]) {
252
+ radarOptions.autoLogNotificationConversions = [autoLogValue boolValue];
253
+ }
254
+ id autoHandleValue = options[@"autoHandleNotificationDeepLinks"];
255
+ if (autoHandleValue && autoHandleValue != [NSNull null]) {
256
+ radarOptions.autoHandleNotificationDeepLinks = [autoHandleValue boolValue];
257
+ }
258
+ }
259
+ [Radar initializeWithAuthToken:authToken options:radarOptions];
222
260
  }
223
261
 
224
262
  RCT_EXPORT_METHOD(setLogLevel:(NSString *)level) {
@@ -814,6 +852,105 @@ RCT_EXPORT_METHOD(updateTrip:(NSDictionary *)optionsDict resolve:(RCTPromiseReso
814
852
  }];
815
853
  }
816
854
 
855
+ RCT_EXPORT_METHOD(updateTripLeg:(NSDictionary *)optionsDict resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
856
+ if (optionsDict == nil) {
857
+ if (reject) {
858
+ reject([Radar stringForStatus:RadarStatusErrorBadRequest], [Radar stringForStatus:RadarStatusErrorBadRequest], nil);
859
+ }
860
+ return;
861
+ }
862
+
863
+ NSString *legId = optionsDict[@"legId"];
864
+ NSString *statusStr = optionsDict[@"status"];
865
+
866
+ if (legId == nil || statusStr == nil) {
867
+ if (reject) {
868
+ reject([Radar stringForStatus:RadarStatusErrorBadRequest], [Radar stringForStatus:RadarStatusErrorBadRequest], nil);
869
+ }
870
+ return;
871
+ }
872
+
873
+ RadarTripLegStatus legStatus = [RadarTripLeg statusForString:statusStr];
874
+
875
+ __block RCTPromiseResolveBlock resolver = resolve;
876
+ __block RCTPromiseRejectBlock rejecter = reject;
877
+
878
+ RadarTripLegCompletionHandler completionHandler = ^(RadarStatus status, RadarTrip * _Nullable trip, RadarTripLeg * _Nullable leg, NSArray<RadarEvent *> * _Nullable events) {
879
+ if (status == RadarStatusSuccess && resolver) {
880
+ NSMutableDictionary *dict = [NSMutableDictionary new];
881
+ [dict setObject:[Radar stringForStatus:status] forKey:@"status"];
882
+ if (trip) {
883
+ [dict setObject:[trip dictionaryValue] forKey:@"trip"];
884
+ }
885
+ if (leg) {
886
+ [dict setObject:[leg dictionaryValue] forKey:@"leg"];
887
+ }
888
+ if (events) {
889
+ [dict setObject:[RadarEvent arrayForEvents:events] forKey:@"events"];
890
+ }
891
+ resolver(dict);
892
+ } else if (rejecter) {
893
+ rejecter([Radar stringForStatus:status], [Radar stringForStatus:status], nil);
894
+ }
895
+ resolver = nil;
896
+ rejecter = nil;
897
+ };
898
+
899
+ id tripIdValue = optionsDict[@"tripId"];
900
+ NSString *tripId = ([tripIdValue isKindOfClass:[NSString class]]) ? tripIdValue : nil;
901
+ if (tripId) {
902
+ [Radar updateTripLegWithTripId:tripId legId:legId status:legStatus completionHandler:completionHandler];
903
+ } else {
904
+ [Radar updateTripLegWithLegId:legId status:legStatus completionHandler:completionHandler];
905
+ }
906
+ }
907
+
908
+ RCT_EXPORT_METHOD(reorderTripLegs:(NSDictionary *)optionsDict resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
909
+ if (optionsDict == nil) {
910
+ if (reject) {
911
+ reject([Radar stringForStatus:RadarStatusErrorBadRequest], [Radar stringForStatus:RadarStatusErrorBadRequest], nil);
912
+ }
913
+ return;
914
+ }
915
+
916
+ NSArray<NSString *> *legIds = optionsDict[@"legIds"];
917
+ if (legIds == nil) {
918
+ if (reject) {
919
+ reject([Radar stringForStatus:RadarStatusErrorBadRequest], [Radar stringForStatus:RadarStatusErrorBadRequest], nil);
920
+ }
921
+ return;
922
+ }
923
+
924
+ __block RCTPromiseResolveBlock resolver = resolve;
925
+ __block RCTPromiseRejectBlock rejecter = reject;
926
+
927
+ RadarTripCompletionHandler completionHandler = ^(RadarStatus status, RadarTrip * _Nullable trip, NSArray<RadarEvent *> * _Nullable events) {
928
+ if (status == RadarStatusSuccess && resolver) {
929
+ NSMutableDictionary *dict = [NSMutableDictionary new];
930
+ [dict setObject:[Radar stringForStatus:status] forKey:@"status"];
931
+ if (trip) {
932
+ [dict setObject:[trip dictionaryValue] forKey:@"trip"];
933
+ }
934
+ if (events) {
935
+ [dict setObject:[RadarEvent arrayForEvents:events] forKey:@"events"];
936
+ }
937
+ resolver(dict);
938
+ } else if (rejecter) {
939
+ rejecter([Radar stringForStatus:status], [Radar stringForStatus:status], nil);
940
+ }
941
+ resolver = nil;
942
+ rejecter = nil;
943
+ };
944
+
945
+ id tripIdValue = optionsDict[@"tripId"];
946
+ NSString *tripId = ([tripIdValue isKindOfClass:[NSString class]]) ? tripIdValue : nil;
947
+ if (tripId) {
948
+ [Radar reorderTripLegsWithTripId:tripId legIds:legIds completionHandler:completionHandler];
949
+ } else {
950
+ [Radar reorderTripLegsWithLegIds:legIds completionHandler:completionHandler];
951
+ }
952
+ }
953
+
817
954
  RCT_EXPORT_METHOD(getContext:(NSDictionary *)locationDict resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
818
955
  CLLocation *location;
819
956
  if (locationDict != nil && [locationDict isKindOfClass:[NSDictionary class]]) {
@@ -1374,6 +1511,21 @@ RCT_EXPORT_METHOD(nativeSdkVersion:(RCTPromiseResolveBlock)resolve reject:(RCTPr
1374
1511
  resolve([Radar sdkVersion]);
1375
1512
  }
1376
1513
 
1514
+ RCT_EXPORT_METHOD(setPushNotificationToken:(NSString *)token) {
1515
+ // No-op on iOS - push notifications are configured via AppDelegate
1516
+ }
1517
+
1518
+ RCT_EXPORT_METHOD(setAppGroup:(NSString *)groupId) {
1519
+ [Radar setAppGroup:groupId];
1520
+ }
1521
+
1522
+ RCT_EXPORT_METHOD(setLocationExtensionToken:(NSString *)token) {
1523
+ [Radar setLocationExtensionToken:token];
1524
+ }
1525
+
1526
+ RCT_EXPORT_METHOD(isInitialized:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
1527
+ resolve(@(Radar.isInitialized));
1528
+ }
1377
1529
 
1378
1530
  #ifdef RCT_NEW_ARCH_ENABLED
1379
1531
  - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
@@ -21,6 +21,7 @@
21
21
  #import "RadarVerifiedLocationToken.h"
22
22
  #import "RadarUser.h"
23
23
  #import "RadarInitializeOptions.h"
24
+ #import "RadarTripLeg.h"
24
25
 
25
26
  NS_ASSUME_NONNULL_BEGIN
26
27
 
@@ -63,6 +64,8 @@ typedef NS_ENUM(NSInteger, RadarStatus) {
63
64
  RadarStatusErrorForbidden,
64
65
  /// Not found
65
66
  RadarStatusErrorNotFound,
67
+ /// Missing plugin
68
+ RadarStatusErrorPlugin,
66
69
  /// Too many requests (rate limit exceeded)
67
70
  RadarStatusErrorRateLimit,
68
71
  /// Internal server error
@@ -227,6 +230,15 @@ typedef void (^_Nullable RadarTrackVerifiedCompletionHandler)(RadarStatus status
227
230
  */
228
231
  typedef void (^_Nullable RadarTripCompletionHandler)(RadarStatus status, RadarTrip *_Nullable trip, NSArray<RadarEvent *> *_Nullable events);
229
232
 
233
+ /**
234
+ Called when a trip leg update succeeds, fails, or times out.
235
+
236
+ Receives the request status and, if successful, the trip, the updated leg, and an array of the events generated.
237
+
238
+ @see https://radar.com/documentation/sdk/ios
239
+ */
240
+ typedef void (^_Nullable RadarTripLegCompletionHandler)(RadarStatus status, RadarTrip *_Nullable trip, RadarTripLeg *_Nullable leg, NSArray<RadarEvent *> *_Nullable events);
241
+
230
242
  /**
231
243
  Called when a context request succeeds, fails, or times out.
232
244
 
@@ -332,6 +344,28 @@ typedef void (^_Nonnull RadarIndoorsScanCompletionHandler)(NSString *_Nullable r
332
344
  */
333
345
  + (void)initializeWithPublishableKey:(NSString *_Nonnull)publishableKey NS_SWIFT_NAME(initialize(publishableKey:));
334
346
 
347
+ /**
348
+ Initializes the Radar SDK.
349
+
350
+ @warning Call this method from the main thread in your `AppDelegate` class before calling any other Radar methods.
351
+
352
+ @param authToken Your auth token.
353
+ @param options Radar SDK initialization options.
354
+
355
+ @see https://radar.com/documentation/sdk/ios#initialize-sdk
356
+ */
357
+ + (void)initializeWithAuthToken:(NSString *_Nonnull)authToken options:(RadarInitializeOptions *_Nullable)options NS_SWIFT_NAME(initialize(authToken:options:));
358
+
359
+ /**
360
+ Initializes the Radar SDK.
361
+
362
+ @warning Call this method from the main thread in your `AppDelegate` class before calling any other Radar methods.
363
+
364
+ @param authToken Your auth token.
365
+ @see https://radar.com/documentation/sdk/ios#initialize-sdk
366
+ */
367
+ + (void)initializeWithAuthToken:(NSString *)authToken NS_SWIFT_NAME(initialize(authToken:));
368
+
335
369
  /**
336
370
  Initializes the Radar SDK.
337
371
 
@@ -790,6 +824,16 @@ typedef void (^_Nonnull RadarIndoorsScanCompletionHandler)(NSString *_Nullable r
790
824
  */
791
825
  + (RadarTripOptions *_Nullable)getTripOptions;
792
826
 
827
+ /**
828
+ Returns the current trip, including legs for multi-destination trips.
829
+ Use the legs' _id values when calling updateTripLeg.
830
+
831
+ @return The current trip, or nil if no trip is active.
832
+
833
+ @see https://radar.com/documentation/trip-tracking
834
+ */
835
+ + (RadarTrip *_Nullable)getTrip;
836
+
793
837
  /**
794
838
  Starts a trip.
795
839
 
@@ -868,6 +912,70 @@ typedef void (^_Nonnull RadarIndoorsScanCompletionHandler)(NSString *_Nullable r
868
912
  */
869
913
  + (void)cancelTripWithCompletionHandler:(RadarTripCompletionHandler _Nullable)completionHandler NS_SWIFT_NAME(cancelTrip(completionHandler:));
870
914
 
915
+ /**
916
+ Updates a trip leg status for multi-destination trips.
917
+
918
+ @param tripId The Radar ID of the trip (from RadarTrip._id).
919
+ @param legId The Radar ID of the leg (from RadarTripLeg._id).
920
+ @param status The new status for the leg.
921
+ @param completionHandler An optional completion handler.
922
+
923
+ @see https://radar.com/documentation/trip-tracking
924
+ */
925
+ + (void)updateTripLegWithTripId:(NSString *_Nonnull)tripId
926
+ legId:(NSString *_Nonnull)legId
927
+ status:(RadarTripLegStatus)status
928
+ completionHandler:(RadarTripLegCompletionHandler _Nullable)completionHandler NS_SWIFT_NAME(updateTripLeg(tripId:legId:status:completionHandler:));
929
+
930
+ /**
931
+ Updates a trip leg status for multi-destination trips, using the current trip's ID.
932
+
933
+ @param legId The Radar ID of the leg (from RadarTripLeg._id).
934
+ @param status The new status for the leg.
935
+ @param completionHandler An optional completion handler.
936
+
937
+ @see https://radar.com/documentation/trip-tracking
938
+ */
939
+ + (void)updateTripLegWithLegId:(NSString *_Nonnull)legId
940
+ status:(RadarTripLegStatus)status
941
+ completionHandler:(RadarTripLegCompletionHandler _Nullable)completionHandler NS_SWIFT_NAME(updateTripLeg(legId:status:completionHandler:));
942
+
943
+ /**
944
+ Updates the current trip leg status for multi-destination trips.
945
+ Uses the current trip's ID and currentLegId automatically.
946
+
947
+ @param status The new status for the current leg.
948
+ @param completionHandler An optional completion handler.
949
+
950
+ @see https://radar.com/documentation/trip-tracking
951
+ */
952
+ + (void)updateCurrentTripLegWithStatus:(RadarTripLegStatus)status
953
+ completionHandler:(RadarTripLegCompletionHandler _Nullable)completionHandler NS_SWIFT_NAME(updateCurrentTripLeg(status:completionHandler:));
954
+
955
+ /**
956
+ Reorders the legs of a multi-destination trip.
957
+
958
+ @param tripId The Radar ID of the trip (from RadarTrip._id).
959
+ @param legIds An array of leg IDs in the desired new order.
960
+ @param completionHandler An optional completion handler.
961
+
962
+ @see https://radar.com/documentation/trip-tracking
963
+ */
964
+ + (void)reorderTripLegsWithTripId:(NSString *_Nonnull)tripId
965
+ legIds:(NSArray<NSString *> *_Nonnull)legIds
966
+ completionHandler:(RadarTripCompletionHandler _Nullable)completionHandler NS_SWIFT_NAME(reorderTripLegs(tripId:legIds:completionHandler:));
967
+
968
+ /**
969
+ Reorders the legs of the current multi-destination trip.
970
+
971
+ @param legIds An array of leg IDs in the desired new order.
972
+ @param completionHandler An optional completion handler.
973
+
974
+ @see https://radar.com/documentation/trip-tracking
975
+ */
976
+ + (void)reorderTripLegsWithLegIds:(NSArray<NSString *> *_Nonnull)legIds
977
+ completionHandler:(RadarTripCompletionHandler _Nullable)completionHandler NS_SWIFT_NAME(reorderTripLegs(legIds:completionHandler:));
978
+
871
979
  #pragma mark - Context
872
980
 
873
981
  /**
@@ -69,6 +69,16 @@ NS_ASSUME_NONNULL_BEGIN
69
69
 
70
70
  + (NSArray<NSDictionary *> *_Nullable)arrayForBeacons:(NSArray<RadarBeacon *> *_Nullable)beacons;
71
71
  - (NSDictionary *_Nonnull)dictionaryValue;
72
+ - (instancetype _Nullable)initWithId:(NSString *_Nonnull)_id
73
+ description:(NSString *_Nullable)description
74
+ tag:(NSString *_Nonnull)tag
75
+ externalId:(NSString *_Nonnull)externalId
76
+ uuid:(NSString *_Nonnull)uuid
77
+ major:(NSString *_Nullable)major
78
+ minor:(NSString *_Nullable)minor
79
+ metadata:(NSDictionary *_Nullable)metadata
80
+ geometry:(RadarCoordinate *_Nonnull)geometry;
81
+
72
82
 
73
83
  @end
74
84
 
@@ -19,5 +19,6 @@
19
19
  @property (assign, nonatomic, readonly) CLLocationCoordinate2D coordinate;
20
20
 
21
21
  - (NSDictionary* _Nonnull)dictionaryValue;
22
+ - (instancetype _Nullable)initWithCoordinate:(CLLocationCoordinate2D)coordinate;
22
23
 
23
24
  @end
@@ -51,6 +51,16 @@
51
51
  */
52
52
  @property (nullable, copy, nonatomic, readonly) RadarOperatingHours *operatingHours;
53
53
 
54
+ /**
55
+ The optional dwell threshold for the geofence.
56
+ */
57
+ @property (nullable, strong, nonatomic, readonly) NSNumber *dwellThreshold;
58
+
59
+ /**
60
+ The optional stop detection value for the geofence.
61
+ */
62
+ @property (nullable, strong, nonatomic, readonly) NSNumber *geofenceStopDetection;
63
+
54
64
  + (NSArray<NSDictionary *> *_Nullable)arrayForGeofences:(NSArray<RadarGeofence *> *_Nullable)geofences;
55
65
  - (NSDictionary *_Nonnull)dictionaryValue;
56
66
 
@@ -19,4 +19,3 @@
19
19
  - (instancetype _Nonnull)initWithDict:(NSDictionary *_Nullable)dict;
20
20
 
21
21
  @end
22
-
@@ -1,6 +1,6 @@
1
1
  #if 0
2
2
  #elif defined(__arm64__) && __arm64__
3
- // Generated by Apple Swift version 6.2.3 (swiftlang-6.2.3.3.21 clang-1700.6.3.2)
3
+ // Generated by Apple Swift version 6.3 (swiftlang-6.3.0.123.5 clang-2100.0.123.102)
4
4
  #ifndef RADARSDK_SWIFT_H
5
5
  #define RADARSDK_SWIFT_H
6
6
  #pragma clang diagnostic push
@@ -26,7 +26,7 @@
26
26
  #pragma clang diagnostic ignored "-Wauto-import"
27
27
  #if defined(__OBJC__)
28
28
  #include <Foundation/Foundation.h>
29
- #endif
29
+ #endif // defined(__OBJC__)
30
30
  #if defined(__cplusplus)
31
31
  #include <cstdint>
32
32
  #include <cstddef>
@@ -195,13 +195,32 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
195
195
  # endif
196
196
  #endif
197
197
  #if !defined(SWIFT_ENUM)
198
- # define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
199
- # if __has_feature(generalized_swift_name)
200
- # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
198
+ # if (defined(__cplusplus) && __cplusplus >= 201103L) || (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || __has_feature(objc_fixed_enum)
199
+ # define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
200
+ # if __has_feature(generalized_swift_name)
201
+ # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
202
+ # else
203
+ # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)
204
+ # endif
201
205
  # else
206
+ # define SWIFT_ENUM(_type, _name, _extensibility) _type _name; enum
202
207
  # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)
203
208
  # endif
204
209
  #endif
210
+ #if !defined(SWIFT_ENUM_TAG)
211
+ # if (defined(__cplusplus) && __cplusplus >= 201103L) || (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || __has_feature(objc_fixed_enum)
212
+ # define SWIFT_ENUM_TAG enum
213
+ # else
214
+ # define SWIFT_ENUM_TAG
215
+ # endif
216
+ #endif
217
+ #if !defined(SWIFT_ENUM_FWD_DECL)
218
+ # if (defined(__cplusplus) && __cplusplus >= 201103L) || (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L) || __has_feature(objc_fixed_enum)
219
+ # define SWIFT_ENUM_FWD_DECL(_type, _name) enum _name : _type;
220
+ # else
221
+ # define SWIFT_ENUM_FWD_DECL(_type, _name) typedef _type _name;
222
+ # endif
223
+ #endif
205
224
  #if !defined(SWIFT_UNAVAILABLE)
206
225
  # define SWIFT_UNAVAILABLE __attribute__((unavailable))
207
226
  #endif
@@ -211,6 +230,9 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
211
230
  #if !defined(SWIFT_AVAILABILITY)
212
231
  # define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
213
232
  #endif
233
+ #if !defined(SWIFT_AVAILABILITY_DOMAIN)
234
+ # define SWIFT_AVAILABILITY_DOMAIN(dom, ...) __attribute__((availability(domain: dom, __VA_ARGS__)))
235
+ #endif
214
236
  #if !defined(SWIFT_WEAK_IMPORT)
215
237
  # define SWIFT_WEAK_IMPORT __attribute__((weak_import))
216
238
  #endif
@@ -276,6 +298,49 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
276
298
  # define SWIFT_IMPORT_STDLIB_SYMBOL
277
299
  #endif
278
300
  #endif
301
+ #if !__has_feature(nullability)
302
+ # define _Nonnull
303
+ # define _Nullable
304
+ # define _Null_unspecified
305
+ #elif !defined(__OBJC__)
306
+ # pragma clang diagnostic ignored "-Wnullability-extension"
307
+ #endif
308
+ #if !__has_feature(nullability_nullable_result)
309
+ # define _Nullable_result _Nullable
310
+ #endif
311
+ #if __has_feature(objc_modules)
312
+ #if __has_warning("-Watimport-in-framework-header")
313
+ #pragma clang diagnostic ignored "-Watimport-in-framework-header"
314
+ #endif
315
+ #endif
316
+
317
+ #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
318
+ #pragma clang diagnostic ignored "-Wduplicate-method-arg"
319
+ #if __has_warning("-Wpragma-clang-attribute")
320
+ # pragma clang diagnostic ignored "-Wpragma-clang-attribute"
321
+ #endif
322
+ #pragma clang diagnostic ignored "-Wunknown-pragmas"
323
+ #pragma clang diagnostic ignored "-Wnullability"
324
+ #pragma clang diagnostic ignored "-Wdollar-in-identifier-extension"
325
+ #pragma clang diagnostic ignored "-Wunsafe-buffer-usage"
326
+
327
+ #if __has_attribute(external_source_symbol)
328
+ # pragma push_macro("any")
329
+ # undef any
330
+ # pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="RadarSDK",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))
331
+ # pragma pop_macro("any")
332
+ #endif
333
+
334
+ #if defined(__cplusplus)
335
+ extern "C" {
336
+ #endif
337
+
338
+ #if defined(__cplusplus)
339
+ } // extern "C"
340
+ #endif
341
+ #if __has_attribute(external_source_symbol)
342
+ # pragma clang attribute pop
343
+ #endif
279
344
  #if defined(__OBJC__)
280
345
  #if __has_feature(objc_modules)
281
346
  #if __has_warning("-Watimport-in-framework-header")
@@ -283,11 +348,12 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
283
348
  #endif
284
349
  @import Foundation;
285
350
  @import ObjectiveC;
351
+ @import _LocationEssentials;
286
352
  #endif
287
353
 
288
354
  #import <RadarSDK/RadarSDK.h>
289
355
 
290
- #endif
356
+ #endif // defined(__OBJC__)
291
357
  #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
292
358
  #pragma clang diagnostic ignored "-Wduplicate-method-arg"
293
359
  #if __has_warning("-Wpragma-clang-attribute")
@@ -350,7 +416,35 @@ SWIFT_CLASS_NAMED("RadarLogger")
350
416
  - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
351
417
  @end
352
418
 
353
- #endif
419
+ @class CLLocation;
420
+ @class RadarTrackingOptions;
421
+ @class RadarUser;
422
+ @class CLCircularRegion;
423
+ @class RadarBeacon;
424
+ SWIFT_CLASS_NAMED("RadarSyncManager")
425
+ @interface RadarSyncManager : NSObject
426
+ + (void)startWithInterval:(NSTimeInterval)interval;
427
+ + (void)stop;
428
+ + (void)fetchSyncRegion;
429
+ + (BOOL)shouldTrackWithLocation:(CLLocation * _Nonnull)location options:(RadarTrackingOptions * _Nonnull)options SWIFT_WARN_UNUSED_RESULT;
430
+ + (BOOL)isNearSyncedRegionBoundaryWithLocation:(CLLocation * _Nonnull)location SWIFT_WARN_UNUSED_RESULT;
431
+ + (BOOL)isOutsideSyncedRegionWithLocation:(CLLocation * _Nonnull)location SWIFT_WARN_UNUSED_RESULT;
432
+ + (BOOL)isPoint:(CLLocation * _Nonnull)point insideCircleWithCenter:(CLLocationCoordinate2D)center radius:(double)radius SWIFT_WARN_UNUSED_RESULT;
433
+ + (BOOL)hasSyncedRegion SWIFT_WARN_UNUSED_RESULT;
434
+ + (BOOL)hasGeofenceStateChangedWithLocation:(CLLocation * _Nonnull)location SWIFT_WARN_UNUSED_RESULT;
435
+ + (BOOL)hasBeaconStateChangedWithRangedBeaconIds:(NSSet<NSString *> * _Nonnull)rangedBeaconIds SWIFT_WARN_UNUSED_RESULT;
436
+ + (BOOL)hasPlaceStateChangedWithLocation:(CLLocation * _Nonnull)location SWIFT_WARN_UNUSED_RESULT;
437
+ + (void)reconcileSyncStateWithUser:(RadarUser * _Nonnull)user;
438
+ + (void)saveBeaconStateWithBeaconIds:(NSArray<NSString *> * _Nonnull)beaconIds;
439
+ + (void)rollbackSyncState;
440
+ + (void)markDwellFired:(NSString * _Nonnull)geofenceId;
441
+ + (CLCircularRegion * _Nullable)getSyncedRegion SWIFT_WARN_UNUSED_RESULT;
442
+ + (NSDictionary<NSString *, id> * _Nullable)getSyncedStateJSON SWIFT_WARN_UNUSED_RESULT;
443
+ + (NSArray<RadarBeacon *> * _Nonnull)getObjCBeaconsFor:(CLLocation * _Nonnull)location SWIFT_WARN_UNUSED_RESULT;
444
+ - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
445
+ @end
446
+
447
+ #endif // defined(__OBJC__)
354
448
  #if __has_attribute(external_source_symbol)
355
449
  # pragma clang attribute pop
356
450
  #endif
@@ -33,6 +33,7 @@ FOUNDATION_EXPORT const unsigned char RadarSDKVersionString[];
33
33
  #import "RadarRoutes.h"
34
34
  #import "RadarTrackingOptions.h"
35
35
  #import "RadarTrip.h"
36
+ #import "RadarTripLeg.h"
36
37
  #import "RadarTripOptions.h"
37
38
  #import "RadarTripOrder.h"
38
39
  #import "RadarUser.h"
@@ -41,5 +42,4 @@ FOUNDATION_EXPORT const unsigned char RadarSDKVersionString[];
41
42
  #import "RadarSdkConfiguration.h"
42
43
  #import "RadarInAppMessage.h"
43
44
  #import "RadarInAppMessageDelegate.h"
44
- #import "Radar-Swift.h"
45
45
  #import "RadarIndoorsProtocol.h"
@@ -0,0 +1,26 @@
1
+ //
2
+ // RadarSDKFraudProtocol.h
3
+ // RadarSDK
4
+ //
5
+ // Copyright © 2025 Radar Labs, Inc. All rights reserved.
6
+ //
7
+
8
+ #import <Foundation/Foundation.h>
9
+ #import <CoreLocation/CoreLocation.h>
10
+ #import "Radar.h"
11
+
12
+ NS_ASSUME_NONNULL_BEGIN
13
+
14
+ typedef void (^RadarFraudPayloadCallback)(NSDictionary<NSString *, id> *_Nullable result);
15
+
16
+ @protocol RadarSDKFraudProtocol<NSObject>
17
+
18
+ + (instancetype)sharedInstance;
19
+
20
+ - (void)initializeWithOptions:(NSDictionary<NSString *, id> *)options;
21
+
22
+ - (void)getFraudPayloadWithOptions:(NSDictionary<NSString *, id> *)options completionHandler:(RadarFraudPayloadCallback)completionHandler;
23
+
24
+ @end
25
+
26
+ NS_ASSUME_NONNULL_END
@@ -16,38 +16,33 @@ NS_ASSUME_NONNULL_BEGIN
16
16
  @see https://radar.com/documentation/sdk/ios
17
17
  */
18
18
  @interface RadarSdkConfiguration : NSObject
19
-
20
- @property (nonatomic, assign) RadarLogLevel logLevel;
21
-
22
- @property (nonatomic, assign) BOOL startTrackingOnInitialize;
23
-
24
- @property (nonatomic, assign) BOOL trackOnceOnAppOpen;
25
-
26
- @property (nonatomic, assign) BOOL usePersistence;
27
-
28
- @property (nonatomic, assign) BOOL extendFlushReplays;
29
-
30
- @property (nonatomic, assign) BOOL useLogPersistence;
31
-
32
- @property (nonatomic, assign) BOOL useRadarModifiedBeacon;
33
-
34
- @property (nonatomic, assign) BOOL useOpenedAppConversion;
35
-
36
- @property (nonatomic, assign) BOOL useForegroundLocationUpdatedAtMsDiff;
37
-
38
- @property (nonatomic, assign) BOOL useNotificationDiff;
39
-
40
- @property (nonatomic, assign) BOOL syncAfterSetUser;
41
-
42
- /**
43
- Initializes a new RadarSdkConfiguration object with given value.
44
- */
19
+ - (RadarLogLevel)logLevel;
20
+ - (BOOL)startTrackingOnInitialize;
21
+ - (BOOL)trackOnceOnAppOpen;
22
+ - (BOOL)usePersistence;
23
+ - (BOOL)extendFlushReplays;
24
+ - (BOOL)useLogPersistence;
25
+ - (BOOL)useRadarModifiedBeacon;
26
+ - (BOOL)useOpenedAppConversion;
27
+ - (BOOL)useForegroundLocationUpdatedAtMsDiff;
28
+ - (BOOL)useNotificationDiff;
29
+ - (BOOL)syncAfterSetUser;
30
+ - (BOOL)useNotificationDiffV2;
31
+ - (BOOL)useSyncRegion;
32
+ - (NSInteger)defaultGeofenceDwellThreshold;
33
+ - (BOOL)bufferGeofenceEntries;
34
+ - (BOOL)bufferGeofenceExits;
35
+ - (BOOL)stopDetection;
45
36
  - (instancetype)initWithDict:(NSDictionary *_Nullable)dict;
37
+ - (NSDictionary *)dictionaryValue;
38
+ @end
46
39
 
47
40
  /**
48
- Returns a dictionary representation of the object.
41
+ Represents server-side sdk configuration.
42
+
43
+ @see https://radar.com/documentation/sdk/ios
49
44
  */
50
- - (NSDictionary *)dictionaryValue;
45
+ @interface RadarSdkConfiguration_ObjC : NSObject
51
46
 
52
47
  + (void)updateSdkConfigurationFromServer;
53
48