Skip to content

Commit 9260ead

Browse files
authored
add validate address and timezone type (#356)
* add timeZone type to RadarAddress * add validateAddress call * fix scheduled arrival at in responses * bump version to 3.18.3
1 parent 94f1ded commit 9260ead

File tree

12 files changed

+133
-25
lines changed

12 files changed

+133
-25
lines changed

android/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ android {
1818
minSdkVersion 16
1919
targetSdkVersion 31
2020
versionCode 1
21-
versionName '3.18.2'
21+
versionName '3.18.3'
2222
}
2323
lintOptions {
2424
abortOnError false
@@ -45,6 +45,6 @@ repositories {
4545

4646
dependencies {
4747
api 'com.facebook.react:react-native:+'
48-
api 'io.radar:sdk:3.18.3'
48+
api 'io.radar:sdk:3.18.5'
4949
}
5050

android/src/main/java/io/radar/react/RNRadarModule.java

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public void initialize(String publishableKey, boolean fraud) {
9696
this.fraud = fraud;
9797
SharedPreferences.Editor editor = getReactApplicationContext().getSharedPreferences("RadarSDK", Context.MODE_PRIVATE).edit();
9898
editor.putString("x_platform_sdk_type", "ReactNative");
99-
editor.putString("x_platform_sdk_version", "3.18.2");
99+
editor.putString("x_platform_sdk_version", "3.18.3");
100100
editor.apply();
101101
if (fraud) {
102102
Radar.initialize(getReactApplicationContext(), publishableKey, receiver, Radar.RadarLocationServicesProvider.GOOGLE, fraud);
@@ -1113,6 +1113,28 @@ public void onComplete(@NonNull Radar.RadarStatus status, @Nullable RadarAddress
11131113
});
11141114
}
11151115

1116+
@ReactMethod
1117+
public void validateAddress(ReadableMap addressMap, final Promise promise) {
1118+
RadarAddress address = RadarAddress.fromJson(RNRadarUtils.jsonForMap(addressMap));
1119+
Radar.validateAddress(address, new RadarValidateAddressCallback {
1120+
@Override
1121+
onComplete(@NonNull Radar.RadarStatus status, @Nullable RadarAddress address, @Nullable RadarAddressVerificationStatus verificationStatus) {
1122+
if (status == Radar.RadarStatus.SUCCESS && ) {
1123+
map.putString("status", status.toString());
1124+
if (address != null) {
1125+
map.putMap("address", RNRadarUtils.mapForJson(address.toJson()));
1126+
}
1127+
if (verificationStatus != null) {
1128+
map.putString("verificationStatus", verificationStatus.toString());
1129+
}
1130+
promise.resolve(map);
1131+
} else {
1132+
promise.reject(status.toString, status.toString());
1133+
}
1134+
}
1135+
});
1136+
}
1137+
11161138
@ReactMethod
11171139
public void getDistance(ReadableMap optionsMap, final Promise promise) {
11181140
if (promise == null) {

example/App.tsx

Lines changed: 42 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,8 @@ export default function App() {
3838
};
3939

4040
const stringify = (obj) => JSON.stringify(obj, null, 2);
41-
42-
Radar.initialize("prj_test_pk_", true);
43-
41+
Radar.initialize("prj_test_pk_0000000000000000000000000000000000000000", true);
42+
4443
useEffect(() => {
4544
Radar.setLogLevel("info");
4645

@@ -311,7 +310,7 @@ export default function App() {
311310
location: {
312311
latitude: 40.783826,
313312
longitude: -73.975363,
314-
},
313+
}
315314
})
316315
.then((result) => {
317316
handlePopulateText("reverseGeocode:" + stringify(result));
@@ -335,6 +334,28 @@ export default function App() {
335334
}}
336335
/>
337336

337+
<ExampleButton
338+
title="validateAddress"
339+
onPress={() => {
340+
Radar.validateAddress({
341+
latitude: 0,
342+
longitude: 0,
343+
city: "New York",
344+
stateCode: "NY",
345+
postalCode: "10003",
346+
countryCode: "US",
347+
street: "Broadway",
348+
number: "841",
349+
})
350+
.then((result) => {
351+
handlePopulateText("validateAddress:" + stringify(result));
352+
})
353+
.catch((err) => {
354+
handlePopulateText("validateAddress:" + err);
355+
});
356+
}}
357+
/>
358+
338359
<ExampleButton
339360
title="getDistance"
340361
onPress={() => {
@@ -407,6 +428,9 @@ export default function App() {
407428
scheduledArrivalAt: new Date(
408429
"2023-10-10T12:20:30Z"
409430
).getTime(),
431+
metadata: {
432+
"test-trip-meta": "test-trip-data"
433+
}
410434
},
411435
})
412436
.then((result) => {
@@ -419,7 +443,7 @@ export default function App() {
419443
/>
420444

421445
<ExampleButton
422-
title="startTrip"
446+
title="startTrip with TrackingOptions"
423447
onPress={() => {
424448
Radar.startTrip({
425449
tripOptions: {
@@ -524,6 +548,19 @@ export default function App() {
524548
});
525549
}}
526550
/>
551+
552+
<ExampleButton
553+
title="getVerifiedLocationToken"
554+
onPress={() => {
555+
Radar.getVerifiedLocationToken()
556+
.then((result) => {
557+
handlePopulateText("getVerifiedLocationToken:" + stringify(result));
558+
})
559+
.catch((err) => {
560+
handlePopulateText("getVerifiedLocationToken:" + err);
561+
});
562+
}}
563+
/>
527564
</ScrollView>
528565
</View>
529566
</View>

ios/Cartfile.resolved

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
github "radarlabs/radar-sdk-ios" "3.18.3"
1+
github "radarlabs/radar-sdk-ios" "3.18.4"

ios/RNRadar.m

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ - (void)didUpdateToken:(RadarVerifiedLocationToken *)token {
102102

103103
RCT_EXPORT_METHOD(initialize:(NSString *)publishableKey fraud:(BOOL)fraud) {
104104
[[NSUserDefaults standardUserDefaults] setObject:@"ReactNative" forKey:@"radar-xPlatformSDKType"];
105-
[[NSUserDefaults standardUserDefaults] setObject:@"3.18.2" forKey:@"radar-xPlatformSDKVersion"];
105+
[[NSUserDefaults standardUserDefaults] setObject:@"3.18.3" forKey:@"radar-xPlatformSDKVersion"];
106106
[Radar initializeWithPublishableKey:publishableKey];
107107
}
108108

@@ -968,6 +968,33 @@ - (void)didUpdateToken:(RadarVerifiedLocationToken *)token {
968968
}];
969969
}
970970

971+
RCT_EXPORT_METHOD(validateAddress:(NSDictionary *)addressDict resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
972+
__block RCTPromiseResolveBlock resolver = resolve;
973+
__block RCTPromiseRejectBlock rejecter = reject;
974+
975+
RadarAddress *address = [RadarAddress addressFromObject:addressDict];
976+
977+
if (address == nil) {
978+
reject([Radar stringForStatus:RadarStatusErrorBadRequest], [Radar stringForStatus:RadarStatusErrorBadRequest], nil);
979+
}
980+
981+
[Radar validateAddress:address completionHandler:^(RadarStatus status, RadarAddress * _Nullable address, RadarAddressVerificationStatus verificationStatus) {
982+
if (status == RadarStatusSuccess && resolver) {
983+
NSMutableDictionary *dict = [NSMutableDictionary new];
984+
[dict setObject:[Radar stringForStatus:status] forKey:@"status"];
985+
if (address) {
986+
[dict setObject:[address dictionaryValue] forKey:@"address"];
987+
}
988+
dict[@"verificationStatus"] = [Radar stringForVerificationStatus: verificationStatus];
989+
resolver(dict);
990+
} else if (rejecter) {
991+
rejecter([Radar stringForStatus:status], [Radar stringForStatus:status], nil);
992+
}
993+
resolver = nil;
994+
rejecter = nil;
995+
}];
996+
}
997+
971998
RCT_EXPORT_METHOD(getDistance:(NSDictionary *)optionsDict resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
972999
if (optionsDict == nil) {
9731000
if (reject) {

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"description": "React Native module for Radar, the leading geofencing and location tracking platform",
44
"homepage": "https://radar.com",
55
"license": "Apache-2.0",
6-
"version": "3.18.2",
6+
"version": "3.18.3",
77
"main": "dist/index.js",
88
"files": [
99
"/android",

plugin/src/withRadarIOS.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ export const withRadarIOS: ConfigPlugin<RadarPluginProps> = (config, args) => {
5252
const contents = await fs.readFile(filePath, 'utf-8');
5353

5454
// Check if the pod declaration already exists
55-
if (contents.indexOf("pod 'RadarSDKMotion', '3.18.3'") === -1) {
55+
const RadarSDKMotionVersion = '3.18.3'
56+
if (contents.indexOf(`pod 'RadarSDKMotion', ${RadarSDKMotionVersion}`) === -1) {
5657
// Find the target block
5758
const targetRegex = /target '(\w+)' do/g;
5859
const match = targetRegex.exec(contents);

react-native-radar.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@ Pod::Spec.new do |s|
1515
s.platform = :ios, "10.0"
1616

1717
s.dependency "React"
18-
s.dependency "RadarSDK", "~> 3.18.3"
18+
s.dependency "RadarSDK", "~> 3.18.4"
1919
end

src/@types/RadarNativeInterface.ts

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,20 @@
11
import {
22
Location,
3+
RadarAddress,
4+
RadarAddressCallback,
35
RadarAutocompleteOptions,
46
RadarContextCallback,
5-
RadarAddressCallback,
67
RadarEventChannel,
78
RadarGeocodeOptions,
89
RadarGetDistanceOptions,
10+
RadarGetMatrixOptions,
11+
RadarIPGeocodeCallback,
12+
RadarListenerCallback,
913
RadarLocationCallback,
1014
RadarLogConversionCallback,
1115
RadarLogConversionOptions,
1216
RadarLogLevel,
17+
RadarMetadata,
1318
RadarMockTrackingOptions,
1419
RadarNotificationOptions,
1520
RadarPermissionsStatus,
@@ -22,20 +27,17 @@ import {
2227
RadarSearchPlacesOptions,
2328
RadarStartTripOptions,
2429
RadarTrackCallback,
25-
RadarTrackOnceOptions,
26-
RadarTrackVerifiedCallback,
2730
RadarTrackingOptions,
2831
RadarTrackingOptionsDesiredAccuracy,
2932
RadarTrackingOptionsForegroundService,
33+
RadarTrackOnceOptions,
34+
RadarTrackVerifiedCallback,
3035
RadarTrackVerifiedOptions,
3136
RadarTripCallback,
3237
RadarTripOptions,
3338
RadarUpdateTripOptions,
39+
RadarValidateAddressCallback,
3440
RadarVerifiedTrackingOptions,
35-
RadarListenerCallback,
36-
RadarGetMatrixOptions,
37-
RadarMetadata,
38-
RadarIPGeocodeCallback,
3941
} from "./types";
4042

4143
export interface RadarNativeInterface {
@@ -93,11 +95,13 @@ export interface RadarNativeInterface {
9395
geocode: (options: RadarGeocodeOptions) => Promise<RadarAddressCallback>;
9496
reverseGeocode: (options?: RadarReverseGeocodeOptions) => Promise<RadarAddressCallback>;
9597
ipGeocode: () => Promise<RadarIPGeocodeCallback>;
98+
validateAddress: (address: RadarAddress) => Promise<RadarValidateAddressCallback>;
9699
getDistance: (option: RadarGetDistanceOptions) => Promise<RadarRouteCallback>;
97100
getMatrix: (option: RadarGetMatrixOptions) => Promise<RadarRouteMatrix>;
98101
logConversion: (
99102
options: RadarLogConversionOptions
100103
) => Promise<RadarLogConversionCallback>;
104+
101105
sendEvent: (name: string, metadata: RadarMetadata) => void;
102106
on: (channel: RadarEventChannel, callback: RadarListenerCallback) => void;
103107
off: (channel: RadarEventChannel, callback?: Function | undefined) => void;

0 commit comments

Comments
 (0)