react-native-radar 3.5.10 → 3.7.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.5.10'
21
+ versionName '3.7.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.5.10'
48
+ api 'io.radar:sdk:3.7.2'
49
49
  }
@@ -47,9 +47,29 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
47
47
  private static final int PERMISSIONS_REQUEST_CODE = 20160525; // random request code (Radar's birthday!)
48
48
  private Promise mPermissionsRequestPromise;
49
49
 
50
+ private RNRadarReceiver receiver;
51
+ private int listenerCount = 0;
52
+
50
53
  public RNRadarModule(ReactApplicationContext reactContext) {
51
54
  super(reactContext);
52
- Radar.setReceiver(new RNRadarReceiver());
55
+ receiver = new RNRadarReceiver();
56
+ }
57
+
58
+ @ReactMethod
59
+ public void addListener(String eventName) {
60
+ if (listenerCount == 0) {
61
+ receiver.hasListeners = true;
62
+ }
63
+
64
+ listenerCount += 1;
65
+ }
66
+
67
+ @ReactMethod
68
+ public void removeListeners(Integer count) {
69
+ listenerCount -= count;
70
+ if (listenerCount == 0) {
71
+ receiver.hasListeners = false;
72
+ }
53
73
  }
54
74
 
55
75
  @Override
@@ -60,6 +80,7 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
60
80
  @ReactMethod
61
81
  public void initialize(String publishableKey) {
62
82
  Radar.initialize(getReactApplicationContext(), publishableKey);
83
+ Radar.setReceiver(receiver);
63
84
  }
64
85
 
65
86
  @ReactMethod
@@ -127,11 +148,6 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
127
148
  Radar.setAnonymousTrackingEnabled(enabled);
128
149
  }
129
150
 
130
- @ReactMethod
131
- public void setAdIdEnabled(boolean enabled) {
132
- Radar.setAdIdEnabled(enabled);
133
- }
134
-
135
151
  @ReactMethod
136
152
  public void getPermissionsStatus(final Promise promise) {
137
153
  if (promise == null) {
@@ -1093,27 +1109,31 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
1093
1109
  }
1094
1110
 
1095
1111
  @ReactMethod
1096
- public void sendEvent(String customType, ReadableMap metadata, final Promise promise) throws JSONException {
1112
+ public void logConversion(ReadableMap optionsMap, final Promise promise) throws JSONException {
1097
1113
  if (promise == null) {
1098
1114
  return;
1099
1115
  }
1116
+
1117
+ if (!optionsMap.hasKey("name")) {
1118
+ promise.reject(Radar.RadarStatus.ERROR_BAD_REQUEST.toString(), Radar.RadarStatus.ERROR_BAD_REQUEST.toString());
1119
+
1120
+ return;
1121
+ }
1122
+
1123
+ String name = optionsMap.getString("name");
1124
+ Double revenue = optionsMap.hasKey("revenue") ? new Double(optionsMap.getDouble("revenue")) : null;
1125
+ ReadableMap metadata = optionsMap.hasKey("metadata") ? optionsMap.getMap("metadata") : null;
1100
1126
 
1101
1127
  JSONObject metadataObj = RNRadarUtils.jsonForMap(metadata);
1102
- Radar.sendEvent(customType, metadataObj, new Radar.RadarSendEventCallback() {
1128
+ Radar.RadarLogConversionCallback callback = new Radar.RadarLogConversionCallback() {
1103
1129
  @Override
1104
- public void onComplete(@NonNull Radar.RadarStatus status, @Nullable Location location, @Nullable RadarEvent[] events, @Nullable RadarUser user) {
1130
+ public void onComplete(@NonNull Radar.RadarStatus status, @Nullable RadarEvent event) {
1105
1131
  try {
1106
1132
  if (status == Radar.RadarStatus.SUCCESS) {
1107
1133
  WritableMap map = Arguments.createMap();
1108
1134
  map.putString("status", status.toString());
1109
- if (location != null) {
1110
- map.putMap("location", RNRadarUtils.mapForJson(Radar.jsonForLocation(location)));
1111
- }
1112
- if (events != null) {
1113
- map.putArray("events", RNRadarUtils.arrayForJson(RadarEvent.toJson(events)));
1114
- }
1115
- if (user != null) {
1116
- map.putMap("user", RNRadarUtils.mapForJson(user.toJson()));
1135
+ if (event != null) {
1136
+ map.putMap("event", RNRadarUtils.mapForJson(event.toJson()));
1117
1137
  }
1118
1138
  promise.resolve(map);
1119
1139
  } else {
@@ -1124,7 +1144,13 @@ public class RNRadarModule extends ReactContextBaseJavaModule implements Permiss
1124
1144
  promise.reject(Radar.RadarStatus.ERROR_SERVER.toString(), Radar.RadarStatus.ERROR_SERVER.toString());
1125
1145
  }
1126
1146
  }
1127
- });
1147
+ };
1148
+
1149
+ if (revenue != null) {
1150
+ Radar.logConversion(name, revenue, metadataObj, callback);
1151
+ } else {
1152
+ Radar.logConversion(name, metadataObj, callback);
1153
+ }
1128
1154
  }
1129
1155
 
1130
1156
  }
@@ -12,6 +12,7 @@ import com.facebook.react.ReactInstanceManager;
12
12
  import com.facebook.react.ReactNativeHost;
13
13
  import com.facebook.react.bridge.Arguments;
14
14
  import com.facebook.react.bridge.ReactContext;
15
+ import com.facebook.react.bridge.ReactMethod;
15
16
  import com.facebook.react.bridge.WritableMap;
16
17
  import com.facebook.react.modules.core.DeviceEventManagerModule;
17
18
 
@@ -25,11 +26,12 @@ public class RNRadarReceiver extends RadarReceiver {
25
26
 
26
27
  private ReactNativeHost reactNativeHost;
27
28
  private static final String TAG = "RNRadarReceiver";
29
+ protected boolean hasListeners = false;
28
30
 
29
31
  private void sendEvent(final String eventName, final Object data) {
30
32
  final ReactInstanceManager reactInstanceManager = reactNativeHost.getReactInstanceManager();
31
33
  ReactContext reactContext = reactInstanceManager.getCurrentReactContext();
32
- if (reactContext != null) {
34
+ if (reactContext != null && hasListeners) {
33
35
  reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit(eventName, data);
34
36
  }
35
37
  }
@@ -1 +1 @@
1
- github "radarlabs/radar-sdk-ios" "3.5.10"
1
+ github "radarlabs/radar-sdk-ios" "3.7.3"
package/ios/RNRadar.m CHANGED
@@ -139,10 +139,6 @@ RCT_EXPORT_METHOD(setAnonymousTrackingEnabled:(BOOL)enabled) {
139
139
  [Radar setAnonymousTrackingEnabled:enabled];
140
140
  }
141
141
 
142
- RCT_EXPORT_METHOD(setAdIdEnabled:(BOOL)enabled) {
143
- [Radar setAdIdEnabled:enabled];
144
- }
145
-
146
142
  RCT_REMAP_METHOD(getPermissionsStatus, getPermissionsStatusWithResolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
147
143
  CLAuthorizationStatus status = [CLLocationManager authorizationStatus];
148
144
  NSString *statusStr;
@@ -969,22 +965,35 @@ RCT_EXPORT_METHOD(getMatrix:(NSDictionary *)optionsDict resolve:(RCTPromiseResol
969
965
  }];
970
966
  }
971
967
 
972
- RCT_EXPORT_METHOD(sendEvent:(NSString*) customType metadata:(NSDictionary *)metadata resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
968
+ RCT_EXPORT_METHOD(logConversion:(NSDictionary *)optionsDict resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
969
+ if (optionsDict == nil) {
970
+ if (reject) {
971
+ reject([Radar stringForStatus:RadarStatusErrorBadRequest], [Radar stringForStatus:RadarStatusErrorBadRequest], nil);
972
+ }
973
+
974
+ return;
975
+ }
976
+
977
+ NSString *name = optionsDict[@"name"];
978
+ NSNumber *revenue = optionsDict[@"revenue"];
979
+ NSDictionary *metadata = optionsDict[@"metadata"];
980
+ if (name == nil) {
981
+ if (reject) {
982
+ reject([Radar stringForStatus:RadarStatusErrorBadRequest], [Radar stringForStatus:RadarStatusErrorBadRequest], nil);
983
+ }
984
+
985
+ return;
986
+ }
987
+
973
988
  __block RCTPromiseResolveBlock resolver = resolve;
974
989
  __block RCTPromiseRejectBlock rejecter = reject;
975
-
976
- [Radar sendEvent:customType withMetadata:metadata completionHandler:^(RadarStatus status, CLLocation * _Nullable location, NSArray<RadarEvent *> * _Nullable events, RadarUser * _Nullable user) {
990
+
991
+ RadarLogConversionCompletionHandler completionHandler = ^(RadarStatus status, RadarEvent * _Nullable event) {
977
992
  if (status == RadarStatusSuccess && resolver) {
978
993
  NSMutableDictionary *dict = [NSMutableDictionary new];
979
994
  [dict setObject:[Radar stringForStatus:status] forKey:@"status"];
980
- if (location) {
981
- [dict setObject:[Radar dictionaryForLocation:location] forKey:@"location"];
982
- }
983
- if (events) {
984
- [dict setObject:[RadarEvent arrayForEvents:events] forKey:@"events"];
985
- }
986
- if (user) {
987
- [dict setObject:[user dictionaryValue] forKey:@"user"];
995
+ if (event) {
996
+ [dict setObject:[event dictionaryValue] forKey:@"event"];
988
997
  }
989
998
  resolver(dict);
990
999
  } else if (rejecter) {
@@ -992,6 +1001,12 @@ RCT_EXPORT_METHOD(sendEvent:(NSString*) customType metadata:(NSDictionary *)meta
992
1001
  }
993
1002
  resolver = nil;
994
1003
  rejecter = nil;
995
- }];
1004
+ };
1005
+
1006
+ if (revenue) {
1007
+ [Radar logConversionWithName:name metadata:metadata completionHandler:completionHandler];
1008
+ } else {
1009
+ [Radar logConversionWithName:name revenue:revenue metadata:metadata completionHandler:completionHandler];
1010
+ }
996
1011
  }
997
1012
  @end
@@ -42,10 +42,6 @@ const setAnonymousTrackingEnabled = (enabled) => (
42
42
  NativeModules.RNRadar.setAnonymousTrackingEnabled(enabled)
43
43
  )
44
44
 
45
- const setAdIdEnabled = (enabled) => (
46
- NativeModules.RNRadar.setAdIdEnabled(enabled)
47
- )
48
-
49
45
  const getPermissionsStatus = () => (
50
46
  NativeModules.RNRadar.getPermissionsStatus()
51
47
  );
@@ -170,8 +166,12 @@ const getMatrix = options => (
170
166
  NativeModules.RNRadar.getMatrix(options)
171
167
  );
172
168
 
173
- const sendEvent = (customType, metadata) => (
174
- NativeModules.RNRadar.sendEvent(customType, metadata)
169
+ const logConversion = options => (
170
+ NativeModules.RNRadar.logConversion(options)
171
+ )
172
+
173
+ const sendEvent = (name, metadata) => (
174
+ NativeModules.RNRadar.sendEvent(name, metadata)
175
175
  )
176
176
 
177
177
  const on = (event, callback) => (
@@ -196,7 +196,6 @@ const Radar = {
196
196
  setMetadata,
197
197
  getMetadata,
198
198
  setAnonymousTrackingEnabled,
199
- setAdIdEnabled,
200
199
  getPermissionsStatus,
201
200
  requestPermissions,
202
201
  getLocation,
@@ -226,6 +225,7 @@ const Radar = {
226
225
  ipGeocode,
227
226
  getDistance,
228
227
  getMatrix,
228
+ logConversion,
229
229
  sendEvent,
230
230
  on,
231
231
  off,
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.5.10",
6
+ "version": "3.7.2",
7
7
  "main": "js/index.js",
8
8
  "files": [
9
9
  "android",
@@ -58,7 +58,8 @@
58
58
  "url": "https://github.com/radarlabs/react-native-radar.git"
59
59
  },
60
60
  "dependencies": {
61
- "radar-sdk-js": "^3.5.0",
62
- "@react-native-community/netinfo": "^7.1.3"
61
+ "@babel/runtime": "^7.21.0",
62
+ "@react-native-community/netinfo": "^7.1.3",
63
+ "radar-sdk-js": "^3.6.0"
63
64
  }
64
65
  }
@@ -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.5.10"
18
+ s.dependency "RadarSDK", "~> 3.7.3"
19
19
  end