Skip to content

Commit

Permalink
trackVerified (#226)
Browse files Browse the repository at this point in the history
* trackVerified working save for 'error_forbidden' on android

* Remove tmp file

* more logging

* Revert "more logging"

This reverts commit 0b199e8.

* bump iOS SDK version

* update package-lock.json, Cartfile.resolved

---------

Co-authored-by: Nick Patrick <[email protected]>
  • Loading branch information
lmeier and nickpatrick authored Apr 18, 2023
1 parent 9c99965 commit 73c04cd
Show file tree
Hide file tree
Showing 8 changed files with 77 additions and 5 deletions.
34 changes: 34 additions & 0 deletions android/src/main/java/io/radar/react/RNRadarModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -321,6 +321,40 @@ public void onComplete(@NonNull Radar.RadarStatus status, @Nullable Location loc
}
}

@ReactMethod
public void trackVerified(final Promise promise) {
Radar.trackVerified(new Radar.RadarTrackCallback() {
@Override
public void onComplete(@NonNull Radar.RadarStatus status, @Nullable Location location, @Nullable RadarEvent[] events, @Nullable RadarUser user) {
if (promise == null) {
return;
}

try {
if (status == Radar.RadarStatus.SUCCESS) {
WritableMap map = Arguments.createMap();
map.putString("status", status.toString());
if (location != null) {
map.putMap("location", RNRadarUtils.mapForJson(Radar.jsonForLocation(location)));
}
if (events != null) {
map.putArray("events", RNRadarUtils.arrayForJson(RadarEvent.toJson(events)));
}
if (user != null) {
map.putMap("user", RNRadarUtils.mapForJson(user.toJson()));
}
promise.resolve(map);
} else {
promise.reject(status.toString(), status.toString());
}
} catch (JSONException e) {
Log.e(TAG, "JSONException", e);
promise.reject(Radar.RadarStatus.ERROR_SERVER.toString(), Radar.RadarStatus.ERROR_SERVER.toString());
}
}
});
}

@ReactMethod
public void startTrackingEfficient() {
Radar.startTracking(RadarTrackingOptions.EFFICIENT);
Expand Down
2 changes: 1 addition & 1 deletion ios/Cartfile.resolved
Original file line number Diff line number Diff line change
@@ -1 +1 @@
github "radarlabs/radar-sdk-ios" "3.7.3"
github "radarlabs/radar-sdk-ios" "3.7.7"
28 changes: 28 additions & 0 deletions ios/RNRadar.m
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,34 @@ - (void)didLogMessage:(NSString *)message {
}
}

RCT_EXPORT_METHOD(trackVerified:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) {
__block RCTPromiseResolveBlock resolver = resolve;
__block RCTPromiseRejectBlock rejecter = reject;

RadarTrackCompletionHandler completionHandler = ^(RadarStatus status, CLLocation * _Nullable location, NSArray<RadarEvent *> * _Nullable events, RadarUser * _Nullable user) {
if (status == RadarStatusSuccess && resolver) {
NSMutableDictionary *dict = [NSMutableDictionary new];
[dict setObject:[Radar stringForStatus:status] forKey:@"status"];
if (location) {
[dict setObject:[Radar dictionaryForLocation:location] forKey:@"location"];
}
if (events) {
[dict setObject:[RadarEvent arrayForEvents:events] forKey:@"events"];
}
if (user) {
[dict setObject:[user dictionaryValue] forKey:@"user"];
}
resolver(dict);
} else if (rejecter) {
rejecter([Radar stringForStatus:status], [Radar stringForStatus:status], nil);
}
resolver = nil;
rejecter = nil;
};

[Radar trackVerifiedWithCompletionHandler:completionHandler];
}


RCT_EXPORT_METHOD(startTrackingEfficient) {
[Radar startTrackingWithOptions:RadarTrackingOptions.presetEfficient];
Expand Down
5 changes: 5 additions & 0 deletions js/index.native.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,10 @@ const trackOnce = options => {
return NativeModules.RNRadar.trackOnce(backCompatibleOptions)
};

const trackVerified = () => (
NativeModules.RNRadar.trackVerified()
);

const startTrackingEfficient = () => (
NativeModules.RNRadar.startTrackingEfficient()
);
Expand Down Expand Up @@ -200,6 +204,7 @@ const Radar = {
requestPermissions,
getLocation,
trackOnce,
trackVerified,
startTrackingEfficient,
startTrackingResponsive,
startTrackingContinuous,
Expand Down
5 changes: 5 additions & 0 deletions js/index.web.js
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,10 @@ const trackOnce = options => {
});
};

const trackVerified = () => {
// not implemented
};

const startTrackingEfficient = () => {
// not implemented
};
Expand Down Expand Up @@ -371,6 +375,7 @@ const Radar = {
requestPermissions,
getLocation,
trackOnce,
trackVerified,
startTrackingEfficient,
startTrackingResponsive,
startTrackingContinuous,
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "React Native module for Radar, the leading geofencing and location tracking platform",
"homepage": "https://radar.com",
"license": "Apache-2.0",
"version": "3.7.2",
"version": "3.7.3",
"main": "js/index.js",
"files": [
"android",
Expand Down
2 changes: 1 addition & 1 deletion react-native-radar.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ Pod::Spec.new do |s|
s.platform = :ios, "10.0"

s.dependency "React"
s.dependency "RadarSDK", "~> 3.7.3"
s.dependency "RadarSDK", "~> 3.7.7"
end

0 comments on commit 73c04cd

Please sign in to comment.