react-native-radar 3.20.4 → 3.21.0-beta.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/Radar.podspec +22 -0
- package/android/build.gradle +77 -35
- package/android/gradle.properties +5 -1
- package/android/src/main/AndroidManifest.xml +1 -3
- package/android/src/main/java/{io/radar/react/RNRadarModule.java → com/radar/RadarModuleImpl.java} +131 -258
- package/android/src/main/java/com/radar/RadarPackage.kt +35 -0
- package/android/src/main/java/{io/radar/react/RNRadarUtils.java → com/radar/RadarUtils.java} +3 -2
- package/android/src/newarch/java/com/radar/RadarModule.kt +381 -0
- package/android/src/oldarch/java/com/radar/RadarModule.java +416 -0
- package/android/src/{main/java/io/radar/react/RNRadarReceiver.java → oldarch/java/com/radar/RadarOldArchReceiver.java} +8 -8
- package/android/src/{main/java/io/radar/react/RNRadarVerifiedReceiver.java → oldarch/java/com/radar/RadarOldArchVerifiedReceiver.java} +4 -4
- package/app.plugin.js +1 -1
- package/dist/@types/RadarNativeInterface.d.ts +17 -7
- package/dist/@types/types.d.ts +4 -3
- package/dist/NativeRadar.d.ts +86 -0
- package/dist/NativeRadar.js +4 -0
- package/dist/helpers.d.ts +2 -2
- package/dist/helpers.js +6 -6
- package/dist/index.native.d.ts +4 -1
- package/dist/index.native.js +402 -141
- package/dist/index.web.js +2 -2
- package/dist/ui/autocomplete.js +17 -7
- package/dist/ui/map.js +18 -8
- package/dist/version.d.ts +1 -0
- package/dist/version.js +6 -0
- package/ios/RNRadar.h +11 -2
- package/ios/{RNRadar.m → RNRadar.mm} +77 -39
- package/package.json +65 -32
- package/plugin/build/withRadar.d.ts +2 -4
- package/plugin/build/withRadar.js +9 -10
- package/plugin/build/withRadarAndroid.d.ts +2 -3
- package/plugin/build/withRadarAndroid.js +11 -14
- package/plugin/build/withRadarIOS.d.ts +1 -2
- package/plugin/build/withRadarIOS.js +8 -11
- package/react-native.config.js +10 -0
- package/src/@types/RadarNativeInterface.ts +127 -0
- package/src/@types/types.ts +808 -0
- package/src/NativeRadar.ts +95 -0
- package/src/helpers.js +11 -0
- package/src/index.native.ts +419 -0
- package/src/index.tsx +22 -0
- package/src/index.web.js +528 -0
- package/src/ui/autocomplete.jsx +324 -0
- package/src/ui/back.png +0 -0
- package/src/ui/close.png +0 -0
- package/src/ui/images.js +5 -0
- package/src/ui/map-logo.png +0 -0
- package/src/ui/map.jsx +122 -0
- package/src/ui/marker.png +0 -0
- package/src/ui/radar-logo.png +0 -0
- package/src/ui/search.png +0 -0
- package/src/ui/styles.js +125 -0
- package/src/version.ts +3 -0
- package/android/build.gradle.template +0 -49
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +0 -6
- package/android/gradlew +0 -160
- package/android/gradlew.bat +0 -90
- package/android/proguard-rules.pro +0 -4
- package/android/src/main/java/io/radar/react/RNRadarPackage.java +0 -29
- package/ios/Cartfile.private +0 -1
- package/ios/Cartfile.resolved +0 -1
- package/ios/Cartfile.resolved.template +0 -1
- package/ios/RNRadar.xcodeproj/project.pbxproj +0 -521
- package/ios/RNRadar.xcodeproj/xcshareddata/xcschemes/RNRadar.xcscheme +0 -76
- package/plugin/build/index.d.ts +0 -3
- package/plugin/build/index.js +0 -6
- package/react-native-radar.podspec +0 -19
|
@@ -0,0 +1,416 @@
|
|
|
1
|
+
package com.radar;
|
|
2
|
+
import android.Manifest;
|
|
3
|
+
import android.app.Activity;
|
|
4
|
+
import android.content.Context;
|
|
5
|
+
import android.content.SharedPreferences;
|
|
6
|
+
import android.content.pm.PackageManager;
|
|
7
|
+
import android.location.Location;
|
|
8
|
+
import android.os.Build;
|
|
9
|
+
import android.util.Log;
|
|
10
|
+
|
|
11
|
+
import androidx.annotation.NonNull;
|
|
12
|
+
import androidx.annotation.Nullable;
|
|
13
|
+
import androidx.core.app.ActivityCompat;
|
|
14
|
+
|
|
15
|
+
import com.facebook.react.bridge.Arguments;
|
|
16
|
+
import com.facebook.react.bridge.Promise;
|
|
17
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
18
|
+
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
|
19
|
+
import com.facebook.react.bridge.ReactMethod;
|
|
20
|
+
import com.facebook.react.bridge.ReadableArray;
|
|
21
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
22
|
+
import com.facebook.react.bridge.WritableMap;
|
|
23
|
+
import com.facebook.react.modules.core.PermissionAwareActivity;
|
|
24
|
+
import com.facebook.react.modules.core.PermissionListener;
|
|
25
|
+
import io.radar.sdk.Radar;
|
|
26
|
+
import io.radar.sdk.RadarTrackingOptions;
|
|
27
|
+
import io.radar.sdk.RadarTrackingOptions.RadarTrackingOptionsForegroundService;
|
|
28
|
+
import io.radar.sdk.RadarTripOptions;
|
|
29
|
+
import io.radar.sdk.RadarVerifiedReceiver;
|
|
30
|
+
import io.radar.sdk.model.RadarAddress;
|
|
31
|
+
import io.radar.sdk.model.RadarContext;
|
|
32
|
+
import io.radar.sdk.model.RadarEvent;
|
|
33
|
+
import io.radar.sdk.model.RadarGeofence;
|
|
34
|
+
import io.radar.sdk.model.RadarPlace;
|
|
35
|
+
import io.radar.sdk.model.RadarRouteMatrix;
|
|
36
|
+
import io.radar.sdk.model.RadarRoutes;
|
|
37
|
+
import io.radar.sdk.model.RadarTrip;
|
|
38
|
+
import io.radar.sdk.model.RadarUser;
|
|
39
|
+
import io.radar.sdk.model.RadarVerifiedLocationToken;
|
|
40
|
+
import io.radar.sdk.RadarNotificationOptions;
|
|
41
|
+
|
|
42
|
+
import org.json.JSONException;
|
|
43
|
+
import org.json.JSONObject;
|
|
44
|
+
|
|
45
|
+
import java.util.EnumSet;
|
|
46
|
+
import java.util.Map;
|
|
47
|
+
|
|
48
|
+
public class RadarModule extends ReactContextBaseJavaModule implements PermissionListener {
|
|
49
|
+
|
|
50
|
+
public static final String NAME = "RNRadar";
|
|
51
|
+
private static final String TAG = "RadarModule";
|
|
52
|
+
private static final int PERMISSIONS_REQUEST_CODE = 20160525; // random request code (Radar's birthday!)
|
|
53
|
+
private Promise mPermissionsRequestPromise;
|
|
54
|
+
|
|
55
|
+
private RadarOldArchReceiver receiver;
|
|
56
|
+
private RadarOldArchVerifiedReceiver verifiedReceiver;
|
|
57
|
+
private int listenerCount = 0;
|
|
58
|
+
private boolean fraud = false;
|
|
59
|
+
private RadarModuleImpl radarModuleImpl;
|
|
60
|
+
|
|
61
|
+
public RadarModule(ReactApplicationContext reactContext) {
|
|
62
|
+
super(reactContext);
|
|
63
|
+
receiver = new RadarOldArchReceiver();
|
|
64
|
+
verifiedReceiver = new RadarOldArchVerifiedReceiver();
|
|
65
|
+
radarModuleImpl = new RadarModuleImpl();
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
@ReactMethod
|
|
69
|
+
public void addListener(String eventName) {
|
|
70
|
+
if (listenerCount == 0) {
|
|
71
|
+
if (fraud) {
|
|
72
|
+
verifiedReceiver.hasListeners = true;
|
|
73
|
+
}
|
|
74
|
+
receiver.hasListeners = true;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
listenerCount += 1;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
@ReactMethod
|
|
81
|
+
public void removeListeners(Integer count) {
|
|
82
|
+
listenerCount -= count;
|
|
83
|
+
if (listenerCount == 0) {
|
|
84
|
+
if (fraud) {
|
|
85
|
+
verifiedReceiver.hasListeners = false;
|
|
86
|
+
}
|
|
87
|
+
receiver.hasListeners = false;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
@Override
|
|
92
|
+
public String getName() {
|
|
93
|
+
return "RNRadar";
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
@ReactMethod
|
|
97
|
+
public void initialize(String publishableKey, boolean fraud) {
|
|
98
|
+
this.fraud = fraud;
|
|
99
|
+
SharedPreferences.Editor editor = getReactApplicationContext().getSharedPreferences("RadarSDK", Context.MODE_PRIVATE).edit();
|
|
100
|
+
editor.putString("x_platform_sdk_type", "ReactNative");
|
|
101
|
+
editor.putString("x_platform_sdk_version", "3.21.0-beta.2");
|
|
102
|
+
editor.apply();
|
|
103
|
+
if (fraud) {
|
|
104
|
+
Radar.initialize(getReactApplicationContext(), publishableKey, receiver, Radar.RadarLocationServicesProvider.GOOGLE, fraud);
|
|
105
|
+
Radar.setVerifiedReceiver(verifiedReceiver);
|
|
106
|
+
} else {
|
|
107
|
+
Radar.initialize(getReactApplicationContext(), publishableKey);
|
|
108
|
+
Radar.setReceiver(receiver);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
@ReactMethod
|
|
113
|
+
public void setLogLevel(String level) {
|
|
114
|
+
radarModuleImpl.setLogLevel(level);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
@ReactMethod
|
|
118
|
+
public void setUserId(String userId) {
|
|
119
|
+
radarModuleImpl.setUserId(userId);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
@ReactMethod
|
|
123
|
+
public void getUserId(final Promise promise) {
|
|
124
|
+
radarModuleImpl.getUserId(promise);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
@ReactMethod
|
|
128
|
+
public void setDescription(String description) {
|
|
129
|
+
radarModuleImpl.setDescription(description);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
@ReactMethod
|
|
133
|
+
public void getDescription(final Promise promise) {
|
|
134
|
+
radarModuleImpl.getDescription(promise);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
@ReactMethod
|
|
138
|
+
public void nativeSdkVersion(final Promise promise) {
|
|
139
|
+
radarModuleImpl.nativeSdkVersion(promise);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
@ReactMethod
|
|
143
|
+
public void setMetadata(ReadableMap metadataMap) throws JSONException {
|
|
144
|
+
radarModuleImpl.setMetadata(metadataMap);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
@ReactMethod
|
|
148
|
+
public void getMetadata(final Promise promise) throws JSONException {
|
|
149
|
+
radarModuleImpl.getMetadata(promise);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
@ReactMethod
|
|
153
|
+
public void setAnonymousTrackingEnabled(boolean enabled) {
|
|
154
|
+
radarModuleImpl.setAnonymousTrackingEnabled(enabled);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
@ReactMethod
|
|
158
|
+
public void getPermissionsStatus(final Promise promise) {
|
|
159
|
+
if (promise == null) {
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
Activity activity = getCurrentActivity();
|
|
164
|
+
|
|
165
|
+
if (activity == null) {
|
|
166
|
+
promise.resolve("UNKNOWN");
|
|
167
|
+
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
boolean foreground = ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED ||
|
|
172
|
+
ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED;
|
|
173
|
+
boolean background = foreground;
|
|
174
|
+
boolean denied = ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.ACCESS_FINE_LOCATION);
|
|
175
|
+
|
|
176
|
+
if (Build.VERSION.SDK_INT >= 29) {
|
|
177
|
+
background = ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_BACKGROUND_LOCATION) == PackageManager.PERMISSION_GRANTED;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
if (background) {
|
|
181
|
+
promise.resolve("GRANTED_BACKGROUND");
|
|
182
|
+
} else if (foreground) {
|
|
183
|
+
promise.resolve("GRANTED_FOREGROUND");
|
|
184
|
+
} else if (denied) {
|
|
185
|
+
promise.resolve("DENIED");
|
|
186
|
+
} else {
|
|
187
|
+
promise.resolve("NOT_DETERMINED");
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
@Override
|
|
192
|
+
public boolean onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
|
|
193
|
+
if (requestCode == PERMISSIONS_REQUEST_CODE && mPermissionsRequestPromise != null) {
|
|
194
|
+
getPermissionsStatus(mPermissionsRequestPromise);
|
|
195
|
+
mPermissionsRequestPromise = null;
|
|
196
|
+
}
|
|
197
|
+
return true;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
@ReactMethod
|
|
202
|
+
public void requestPermissions(boolean background, final Promise promise) {
|
|
203
|
+
PermissionAwareActivity activity = (PermissionAwareActivity)getCurrentActivity();
|
|
204
|
+
mPermissionsRequestPromise = promise;
|
|
205
|
+
if (activity != null) {
|
|
206
|
+
if (Build.VERSION.SDK_INT >= 23) {
|
|
207
|
+
if (background && Build.VERSION.SDK_INT >= 29) {
|
|
208
|
+
activity.requestPermissions(new String[] { Manifest.permission.ACCESS_BACKGROUND_LOCATION }, PERMISSIONS_REQUEST_CODE, this);
|
|
209
|
+
} else {
|
|
210
|
+
activity.requestPermissions(new String[] { Manifest.permission.ACCESS_FINE_LOCATION }, PERMISSIONS_REQUEST_CODE, this);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
@ReactMethod
|
|
217
|
+
public void getLocation(String desiredAccuracy, final Promise promise) {
|
|
218
|
+
radarModuleImpl.getLocation(desiredAccuracy, promise);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
@ReactMethod
|
|
222
|
+
public void trackOnce(ReadableMap optionsMap, final Promise promise) {
|
|
223
|
+
radarModuleImpl.trackOnce(optionsMap, promise);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
@ReactMethod
|
|
227
|
+
public void trackVerified(ReadableMap optionsMap, final Promise promise) {
|
|
228
|
+
radarModuleImpl.trackVerified(optionsMap, promise);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
@ReactMethod
|
|
232
|
+
public void isTrackingVerified(final Promise promise) {
|
|
233
|
+
radarModuleImpl.isTrackingVerified(promise);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
@ReactMethod
|
|
237
|
+
public void setProduct(String product) {
|
|
238
|
+
radarModuleImpl.setProduct(product);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
@ReactMethod
|
|
242
|
+
public void getVerifiedLocationToken(final Promise promise) {
|
|
243
|
+
radarModuleImpl.getVerifiedLocationToken(promise);
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
@ReactMethod
|
|
247
|
+
public void clearVerifiedLocationToken() {
|
|
248
|
+
radarModuleImpl.clearVerifiedLocationToken();
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
@ReactMethod
|
|
252
|
+
public void startTrackingEfficient() {
|
|
253
|
+
radarModuleImpl.startTrackingEfficient();
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
@ReactMethod
|
|
257
|
+
public void startTrackingResponsive() {
|
|
258
|
+
radarModuleImpl.startTrackingResponsive();
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
@ReactMethod
|
|
262
|
+
public void startTrackingContinuous() {
|
|
263
|
+
radarModuleImpl.startTrackingContinuous();
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
@ReactMethod
|
|
267
|
+
public void startTrackingCustom(ReadableMap optionsMap) {
|
|
268
|
+
radarModuleImpl.startTrackingCustom(optionsMap);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
@ReactMethod
|
|
272
|
+
public void startTrackingVerified(ReadableMap optionsMap) {
|
|
273
|
+
radarModuleImpl.startTrackingVerified(optionsMap);
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
@ReactMethod
|
|
277
|
+
public void mockTracking(ReadableMap optionsMap) {
|
|
278
|
+
radarModuleImpl.mockTracking(optionsMap);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
@ReactMethod
|
|
282
|
+
public void stopTracking() {
|
|
283
|
+
radarModuleImpl.stopTracking();
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
@ReactMethod
|
|
287
|
+
public void stopTrackingVerified() {
|
|
288
|
+
radarModuleImpl.stopTrackingVerified();
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
@ReactMethod
|
|
292
|
+
public void isTracking(final Promise promise) {
|
|
293
|
+
radarModuleImpl.isTracking(promise);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
@ReactMethod
|
|
297
|
+
public void getTrackingOptions(final Promise promise) {
|
|
298
|
+
radarModuleImpl.getTrackingOptions(promise);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
@ReactMethod
|
|
302
|
+
public void isUsingRemoteTrackingOptions(final Promise promise) {
|
|
303
|
+
radarModuleImpl.isUsingRemoteTrackingOptions(promise);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
@ReactMethod
|
|
307
|
+
public void setForegroundServiceOptions(ReadableMap optionsMap) {
|
|
308
|
+
radarModuleImpl.setForegroundServiceOptions(optionsMap);
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
@ReactMethod
|
|
312
|
+
public void setNotificationOptions(ReadableMap optionsMap) {
|
|
313
|
+
radarModuleImpl.setNotificationOptions(optionsMap);
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
@ReactMethod
|
|
317
|
+
public void acceptEvent(String eventId, String verifiedPlaceId) {
|
|
318
|
+
Radar.acceptEvent(eventId, verifiedPlaceId);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
@ReactMethod
|
|
322
|
+
public void rejectEvent(String eventId) {
|
|
323
|
+
Radar.rejectEvent(eventId);
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
@ReactMethod
|
|
327
|
+
public void getTripOptions(final Promise promise) {
|
|
328
|
+
radarModuleImpl.getTripOptions(promise);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
@ReactMethod
|
|
332
|
+
public void startTrip(ReadableMap optionsMap, final Promise promise) {
|
|
333
|
+
radarModuleImpl.startTrip(optionsMap, promise);
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
@ReactMethod
|
|
337
|
+
public void completeTrip(final Promise promise) {
|
|
338
|
+
radarModuleImpl.completeTrip(promise);
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
@ReactMethod
|
|
342
|
+
public void cancelTrip(final Promise promise) {
|
|
343
|
+
radarModuleImpl.cancelTrip(promise);
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
@ReactMethod
|
|
347
|
+
public void updateTrip(ReadableMap optionsMap, final Promise promise) {
|
|
348
|
+
radarModuleImpl.updateTrip(optionsMap, promise);
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
@ReactMethod
|
|
352
|
+
public void getContext(@Nullable ReadableMap locationMap, final Promise promise) {
|
|
353
|
+
radarModuleImpl.getContext(locationMap, promise);
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
@ReactMethod
|
|
357
|
+
public void searchPlaces(ReadableMap optionsMap, final Promise promise) {
|
|
358
|
+
radarModuleImpl.searchPlaces(optionsMap, promise);
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
@ReactMethod
|
|
362
|
+
public void searchGeofences(ReadableMap optionsMap, final Promise promise) {
|
|
363
|
+
radarModuleImpl.searchGeofences(optionsMap, promise);
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
@ReactMethod
|
|
367
|
+
public void autocomplete(ReadableMap optionsMap, final Promise promise) {
|
|
368
|
+
radarModuleImpl.autocomplete(optionsMap, promise);
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
@ReactMethod
|
|
372
|
+
public void geocode(ReadableMap optionsMap, final Promise promise) {
|
|
373
|
+
radarModuleImpl.geocode(optionsMap, promise);
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
@ReactMethod
|
|
377
|
+
public void reverseGeocode(ReadableMap optionsMap, final Promise promise) {
|
|
378
|
+
radarModuleImpl.reverseGeocode(optionsMap, promise);
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
@ReactMethod
|
|
382
|
+
public void ipGeocode(final Promise promise) {
|
|
383
|
+
radarModuleImpl.ipGeocode(promise);
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
@ReactMethod
|
|
387
|
+
public void validateAddress(ReadableMap addressMap, final Promise promise) {
|
|
388
|
+
radarModuleImpl.validateAddress(addressMap, promise);
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
@ReactMethod
|
|
392
|
+
public void getDistance(ReadableMap optionsMap, final Promise promise) {
|
|
393
|
+
radarModuleImpl.getDistance(optionsMap, promise);
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
@ReactMethod
|
|
397
|
+
public void getMatrix(ReadableMap optionsMap, final Promise promise) {
|
|
398
|
+
radarModuleImpl.getMatrix(optionsMap, promise);
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
@ReactMethod
|
|
402
|
+
public void logConversion(ReadableMap optionsMap, final Promise promise) throws JSONException {
|
|
403
|
+
radarModuleImpl.logConversion(optionsMap, promise);
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
@ReactMethod
|
|
407
|
+
public void getHost(final Promise promise) {
|
|
408
|
+
radarModuleImpl.getHost(promise);
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
@ReactMethod
|
|
412
|
+
public void getPublishableKey(final Promise promise) {
|
|
413
|
+
radarModuleImpl.getPublishableKey(promise);
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package
|
|
1
|
+
package com.radar;
|
|
2
2
|
|
|
3
3
|
import android.content.Context;
|
|
4
4
|
import android.location.Location;
|
|
@@ -22,10 +22,10 @@ import io.radar.sdk.model.RadarEvent;
|
|
|
22
22
|
import io.radar.sdk.model.RadarUser;
|
|
23
23
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
24
24
|
|
|
25
|
-
public class
|
|
25
|
+
public class RadarOldArchReceiver extends RadarReceiver {
|
|
26
26
|
|
|
27
27
|
private ReactNativeHost reactNativeHost;
|
|
28
|
-
private static final String TAG = "
|
|
28
|
+
private static final String TAG = "RadarOldArchReceiver";
|
|
29
29
|
protected boolean hasListeners = false;
|
|
30
30
|
|
|
31
31
|
private void sendEvent(final String eventName, final Object data) {
|
|
@@ -43,9 +43,9 @@ public class RNRadarReceiver extends RadarReceiver {
|
|
|
43
43
|
reactNativeHost = reactApplication.getReactNativeHost();
|
|
44
44
|
|
|
45
45
|
WritableMap map = Arguments.createMap();
|
|
46
|
-
map.putArray("events",
|
|
46
|
+
map.putArray("events", RadarUtils.arrayForJson(RadarEvent.toJson(events)));
|
|
47
47
|
if (user != null) {
|
|
48
|
-
map.putMap("user",
|
|
48
|
+
map.putMap("user", RadarUtils.mapForJson(user.toJson()));
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
sendEvent("events", map);
|
|
@@ -61,8 +61,8 @@ public class RNRadarReceiver extends RadarReceiver {
|
|
|
61
61
|
reactNativeHost = reactApplication.getReactNativeHost();
|
|
62
62
|
|
|
63
63
|
WritableMap map = Arguments.createMap();
|
|
64
|
-
map.putMap("location",
|
|
65
|
-
map.putMap("user",
|
|
64
|
+
map.putMap("location", RadarUtils.mapForJson(Radar.jsonForLocation(location)));
|
|
65
|
+
map.putMap("user", RadarUtils.mapForJson(user.toJson()));
|
|
66
66
|
|
|
67
67
|
sendEvent("location", map);
|
|
68
68
|
} catch (Exception e) {
|
|
@@ -77,7 +77,7 @@ public class RNRadarReceiver extends RadarReceiver {
|
|
|
77
77
|
reactNativeHost = reactApplication.getReactNativeHost();
|
|
78
78
|
|
|
79
79
|
WritableMap map = Arguments.createMap();
|
|
80
|
-
map.putMap("location",
|
|
80
|
+
map.putMap("location", RadarUtils.mapForJson(Radar.jsonForLocation(location)));
|
|
81
81
|
map.putBoolean("stopped", stopped);
|
|
82
82
|
map.putString("source", source.toString());
|
|
83
83
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package
|
|
1
|
+
package com.radar;
|
|
2
2
|
|
|
3
3
|
import android.content.Context;
|
|
4
4
|
import android.util.Log;
|
|
@@ -18,10 +18,10 @@ import io.radar.sdk.Radar;
|
|
|
18
18
|
import io.radar.sdk.RadarVerifiedReceiver;
|
|
19
19
|
import io.radar.sdk.model.RadarVerifiedLocationToken;
|
|
20
20
|
|
|
21
|
-
public class
|
|
21
|
+
public class RadarOldArchVerifiedReceiver extends RadarVerifiedReceiver {
|
|
22
22
|
|
|
23
23
|
private ReactNativeHost reactNativeHost;
|
|
24
|
-
private static final String TAG = "
|
|
24
|
+
private static final String TAG = "RadarOldArchVerifiedReceiver";
|
|
25
25
|
protected boolean hasListeners = false;
|
|
26
26
|
|
|
27
27
|
private void sendEvent(final String eventName, final Object data) {
|
|
@@ -38,7 +38,7 @@ public class RNRadarVerifiedReceiver extends RadarVerifiedReceiver {
|
|
|
38
38
|
ReactApplication reactApplication = ((ReactApplication)context.getApplicationContext());
|
|
39
39
|
reactNativeHost = reactApplication.getReactNativeHost();
|
|
40
40
|
|
|
41
|
-
sendEvent("token",
|
|
41
|
+
sendEvent("token", RadarUtils.mapForJson(token.toJson()));
|
|
42
42
|
} catch (Exception e) {
|
|
43
43
|
Log.e(TAG, "Exception", e);
|
|
44
44
|
}
|
package/app.plugin.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
module.exports = require('./plugin/build');
|
|
1
|
+
module.exports = require('./plugin/build/withRadar');
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { RadarPermissionsStatus, RadarTrackCallback, RadarTrackOnceOptions, RadarLocationUpdateCallback, RadarClientLocationUpdateCallback, RadarErrorCallback, RadarLogUpdateCallback, RadarEventUpdateCallback, RadarTokenUpdateCallback, RadarLogLevel, RadarMetadata, RadarTrackingOptionsDesiredAccuracy, RadarLocationCallback, RadarTrackVerifiedCallback, RadarTrackVerifiedOptions, RadarTrackingOptions, RadarVerifiedTrackingOptions, RadarMockTrackingOptions, RadarTrackingOptionsForegroundService, RadarNotificationOptions, RadarTripOptions, RadarStartTripOptions, RadarTripCallback, RadarUpdateTripOptions, RadarContextCallback, RadarSearchPlacesOptions, RadarSearchPlacesCallback, RadarSearchGeofencesCallback, RadarSearchGeofencesOptions, RadarAutocompleteOptions, RadarAddressCallback, RadarReverseGeocodeOptions, RadarGeocodeOptions, RadarValidateAddressCallback, RadarIPGeocodeCallback, RadarAddress, RadarLogConversionOptions, RadarGetDistanceOptions, RadarRouteCallback, RadarGetMatrixOptions, RadarLogConversionCallback, RadarRouteMatrix } from "./types";
|
|
2
2
|
export interface RadarNativeInterface {
|
|
3
3
|
initialize: (publishableKey: string, fraud?: boolean) => void;
|
|
4
4
|
setLogLevel: (level: RadarLogLevel) => void;
|
|
@@ -8,13 +8,11 @@ export interface RadarNativeInterface {
|
|
|
8
8
|
getDescription: () => Promise<string>;
|
|
9
9
|
setMetadata: (metadata: RadarMetadata) => void;
|
|
10
10
|
getMetadata: () => Promise<RadarMetadata>;
|
|
11
|
-
setProduct(product: string): void;
|
|
12
|
-
getProduct: () => Promise<string>;
|
|
13
11
|
setAnonymousTrackingEnabled: (enabled: boolean) => void;
|
|
14
12
|
getPermissionsStatus: () => Promise<RadarPermissionsStatus>;
|
|
15
13
|
requestPermissions: (background: boolean) => Promise<RadarPermissionsStatus>;
|
|
16
14
|
getLocation: (desiredAccuracy?: RadarTrackingOptionsDesiredAccuracy) => Promise<RadarLocationCallback>;
|
|
17
|
-
trackOnce: (options?: RadarTrackOnceOptions
|
|
15
|
+
trackOnce: (options?: RadarTrackOnceOptions) => Promise<RadarTrackCallback>;
|
|
18
16
|
trackVerified: (options?: RadarTrackVerifiedOptions) => Promise<RadarTrackVerifiedCallback>;
|
|
19
17
|
getVerifiedLocationToken: () => Promise<RadarTrackVerifiedCallback>;
|
|
20
18
|
clearVerifiedLocationToken: () => void;
|
|
@@ -24,6 +22,7 @@ export interface RadarNativeInterface {
|
|
|
24
22
|
startTrackingCustom: (options: RadarTrackingOptions) => void;
|
|
25
23
|
startTrackingVerified: (options?: RadarVerifiedTrackingOptions) => void;
|
|
26
24
|
isTrackingVerified: () => Promise<boolean>;
|
|
25
|
+
setProduct(product: string): void;
|
|
27
26
|
mockTracking: (options: RadarMockTrackingOptions) => void;
|
|
28
27
|
stopTracking: () => void;
|
|
29
28
|
stopTrackingVerified: () => void;
|
|
@@ -50,9 +49,20 @@ export interface RadarNativeInterface {
|
|
|
50
49
|
getDistance: (option: RadarGetDistanceOptions) => Promise<RadarRouteCallback>;
|
|
51
50
|
getMatrix: (option: RadarGetMatrixOptions) => Promise<RadarRouteMatrix>;
|
|
52
51
|
logConversion: (options: RadarLogConversionOptions) => Promise<RadarLogConversionCallback>;
|
|
53
|
-
sendEvent: (name: string, metadata: RadarMetadata) => void;
|
|
54
|
-
on: (channel: RadarEventChannel, callback: RadarListenerCallback) => void;
|
|
55
|
-
off: (channel: RadarEventChannel, callback?: Function | undefined) => void;
|
|
56
52
|
nativeSdkVersion: () => Promise<string>;
|
|
57
53
|
rnSdkVersion: () => string;
|
|
54
|
+
onLocationUpdate: (callback: RadarLocationUpdateCallback) => void;
|
|
55
|
+
clearLocationUpdate: () => void;
|
|
56
|
+
onClientLocationUpdate: (callback: RadarClientLocationUpdateCallback) => void;
|
|
57
|
+
clearClientLocationUpdate: () => void;
|
|
58
|
+
onError: (callback: RadarErrorCallback) => void;
|
|
59
|
+
clearError: () => void;
|
|
60
|
+
onLog: (callback: RadarLogUpdateCallback) => void;
|
|
61
|
+
clearLog: () => void;
|
|
62
|
+
onEventUpdate: (callback: RadarEventUpdateCallback) => void;
|
|
63
|
+
clearEventUpdate: () => void;
|
|
64
|
+
onTokenUpdate: (callback: RadarTokenUpdateCallback) => void;
|
|
65
|
+
clearTokenUpdate: () => void;
|
|
66
|
+
getHost: () => Promise<string>;
|
|
67
|
+
getPublishableKey: () => Promise<string>;
|
|
58
68
|
}
|
package/dist/@types/types.d.ts
CHANGED
|
@@ -7,8 +7,6 @@ export interface RadarTrackOnceOptions {
|
|
|
7
7
|
export interface RadarTrackVerifiedOptions {
|
|
8
8
|
beacons?: boolean;
|
|
9
9
|
desiredAccuracy?: RadarTrackingOptionsDesiredAccuracy;
|
|
10
|
-
reason?: string;
|
|
11
|
-
transactionId?: string;
|
|
12
10
|
}
|
|
13
11
|
/**
|
|
14
12
|
* Options for tracking the user's location.
|
|
@@ -248,7 +246,10 @@ export interface RadarErrorCallback {
|
|
|
248
246
|
export interface RadarLogUpdateCallback {
|
|
249
247
|
(status: string): void;
|
|
250
248
|
}
|
|
251
|
-
export
|
|
249
|
+
export interface RadarTokenUpdateCallback {
|
|
250
|
+
(token: Object): void;
|
|
251
|
+
}
|
|
252
|
+
export type RadarListenerCallback = RadarEventUpdateCallback | RadarLocationUpdateCallback | RadarClientLocationUpdateCallback | RadarErrorCallback | RadarLogUpdateCallback | RadarTokenUpdateCallback;
|
|
252
253
|
export type RadarPermissionsStatus = "GRANTED_FOREGROUND" | "GRANTED_BACKGROUND" | "DENIED" | "NOT_DETERMINED" | "UNKNOWN";
|
|
253
254
|
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";
|
|
254
255
|
export type RadarEventChannel = "clientLocation" | "location" | "error" | "events" | "log" | "token";
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type { TurboModule } from 'react-native';
|
|
2
|
+
import type { EventEmitter } from 'react-native/Libraries/Types/CodegenTypes';
|
|
3
|
+
export type LocationEmitter = {
|
|
4
|
+
location: Object;
|
|
5
|
+
user: Object;
|
|
6
|
+
};
|
|
7
|
+
export type ClientLocationEmitter = {
|
|
8
|
+
location: Object;
|
|
9
|
+
stopped: boolean;
|
|
10
|
+
source: string;
|
|
11
|
+
};
|
|
12
|
+
export type ErrorEmitter = {
|
|
13
|
+
status: string;
|
|
14
|
+
};
|
|
15
|
+
export type LogEmitter = {
|
|
16
|
+
message: string;
|
|
17
|
+
};
|
|
18
|
+
export type EventsEmitter = {
|
|
19
|
+
events: Array<Object>;
|
|
20
|
+
user: Object;
|
|
21
|
+
};
|
|
22
|
+
export type TokenEmitter = {
|
|
23
|
+
token: Object;
|
|
24
|
+
};
|
|
25
|
+
export interface Spec extends TurboModule {
|
|
26
|
+
initialize(publishableKey: string, fraud: boolean): void;
|
|
27
|
+
requestPermissions(background: boolean): Promise<string>;
|
|
28
|
+
getPermissionsStatus(): Promise<string>;
|
|
29
|
+
trackOnce(trackOnceOptions: Object | null): Promise<Object>;
|
|
30
|
+
setLogLevel(level: string): void;
|
|
31
|
+
setUserId(userId: string): void;
|
|
32
|
+
getUserId(): Promise<string>;
|
|
33
|
+
setDescription(description: string): void;
|
|
34
|
+
getDescription(): Promise<string>;
|
|
35
|
+
setMetadata(metadata: Object): void;
|
|
36
|
+
getMetadata(): Promise<Object>;
|
|
37
|
+
setAnonymousTrackingEnabled(enabled: boolean): void;
|
|
38
|
+
getLocation(desiredAccuracy: string | null): Promise<Object>;
|
|
39
|
+
trackVerified(trackVerifiedOptions: Object | null): Promise<Object>;
|
|
40
|
+
getVerifiedLocationToken(): Promise<Object>;
|
|
41
|
+
clearVerifiedLocationToken(): void;
|
|
42
|
+
startTrackingEfficient(): void;
|
|
43
|
+
startTrackingResponsive(): void;
|
|
44
|
+
startTrackingContinuous(): void;
|
|
45
|
+
startTrackingCustom(options: Object): void;
|
|
46
|
+
startTrackingVerified(options: Object | null): void;
|
|
47
|
+
isTrackingVerified(): Promise<boolean>;
|
|
48
|
+
setProduct(product: string): void;
|
|
49
|
+
mockTracking(options: Object): void;
|
|
50
|
+
stopTracking(): void;
|
|
51
|
+
stopTrackingVerified(): void;
|
|
52
|
+
getTrackingOptions(): Promise<Object>;
|
|
53
|
+
isUsingRemoteTrackingOptions(): Promise<boolean>;
|
|
54
|
+
isTracking(): Promise<boolean>;
|
|
55
|
+
setForegroundServiceOptions(options: Object): void;
|
|
56
|
+
setNotificationOptions(options: Object): void;
|
|
57
|
+
getTripOptions(): Promise<Object>;
|
|
58
|
+
startTrip(options: Object): Promise<Object>;
|
|
59
|
+
completeTrip(): Promise<Object>;
|
|
60
|
+
cancelTrip(): Promise<Object>;
|
|
61
|
+
updateTrip(options: Object): Promise<Object>;
|
|
62
|
+
acceptEvent(eventId: string, verifiedPlaceId: string): void;
|
|
63
|
+
rejectEvent(eventId: string): void;
|
|
64
|
+
getContext(location: Object): Promise<Object>;
|
|
65
|
+
searchPlaces(options: Object): Promise<Object>;
|
|
66
|
+
searchGeofences(options: Object): Promise<Object>;
|
|
67
|
+
autocomplete(options: Object): Promise<Object>;
|
|
68
|
+
geocode(options: Object): Promise<Object>;
|
|
69
|
+
reverseGeocode(options: Object): Promise<Object>;
|
|
70
|
+
ipGeocode(): Promise<Object>;
|
|
71
|
+
validateAddress(address: Object): Promise<Object>;
|
|
72
|
+
getDistance(options: Object): Promise<Object>;
|
|
73
|
+
getMatrix(options: Object): Promise<Object>;
|
|
74
|
+
logConversion(options: Object): Promise<Object>;
|
|
75
|
+
nativeSdkVersion(): Promise<string>;
|
|
76
|
+
getHost(): Promise<string>;
|
|
77
|
+
getPublishableKey(): Promise<string>;
|
|
78
|
+
readonly locationEmitter: EventEmitter<LocationEmitter>;
|
|
79
|
+
readonly clientLocationEmitter: EventEmitter<ClientLocationEmitter>;
|
|
80
|
+
readonly errorEmitter: EventEmitter<ErrorEmitter>;
|
|
81
|
+
readonly logEmitter: EventEmitter<LogEmitter>;
|
|
82
|
+
readonly eventsEmitter: EventEmitter<EventsEmitter>;
|
|
83
|
+
readonly tokenEmitter: EventEmitter<TokenEmitter>;
|
|
84
|
+
}
|
|
85
|
+
declare const _default: Spec;
|
|
86
|
+
export default _default;
|
package/dist/helpers.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export function getHost():
|
|
2
|
-
export function getPublishableKey():
|
|
1
|
+
export function getHost(): Promise<string>;
|
|
2
|
+
export function getPublishableKey(): Promise<string>;
|