react-native-radar 3.5.11 → 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.
- package/android/build.gradle +2 -2
- package/android/src/main/java/io/radar/react/RNRadarModule.java +44 -18
- package/android/src/main/java/io/radar/react/RNRadarReceiver.java +3 -1
- package/ios/Cartfile.resolved +1 -1
- package/ios/RNRadar.m +31 -16
- package/js/index.native.js +7 -7
- package/package.json +1 -1
- package/react-native-radar.podspec +1 -1
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.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.
|
|
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
|
-
|
|
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
|
|
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.
|
|
1128
|
+
Radar.RadarLogConversionCallback callback = new Radar.RadarLogConversionCallback() {
|
|
1103
1129
|
@Override
|
|
1104
|
-
public void onComplete(@NonNull Radar.RadarStatus status, @Nullable
|
|
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 (
|
|
1110
|
-
map.putMap("
|
|
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
|
}
|
package/ios/Cartfile.resolved
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
github "radarlabs/radar-sdk-ios" "3.
|
|
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(
|
|
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
|
-
|
|
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 (
|
|
981
|
-
[dict setObject:[
|
|
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
|
package/js/index.native.js
CHANGED
|
@@ -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
|
|
174
|
-
NativeModules.RNRadar.
|
|
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