Skip to content

Commit

Permalink
add getVerifiedLocationToken function (#68)
Browse files Browse the repository at this point in the history
* add getVerifiedLocationToken function

* bump version

* add versionName for android
  • Loading branch information
ShiCheng-Lu authored Oct 4, 2024
1 parent dc3fe2b commit d86a70d
Show file tree
Hide file tree
Showing 9 changed files with 78 additions and 12 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
# 3.12.0

- Bump iOS version from 3.17.0 to 3.18.2
- Bump Android version from 3.17.0 to 3.18.1
- Add `getVerifiedLocationToken`

# 3.11.0

- Bump iOS version from 3.15.0 to 3.17.0
Expand Down
4 changes: 3 additions & 1 deletion android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,16 @@ android {
defaultConfig {
minSdkVersion 16
targetSdkVersion 31
versionCode 1
versionName '3.12.0'
}
lintOptions {
disable 'InvalidPackage'
}
}

dependencies {
implementation 'io.radar:sdk:3.17.0'
implementation 'io.radar:sdk:3.18.1'
implementation 'com.google.android.gms:play-services-location:21.0.1'
implementation 'com.google.code.gson:gson:2.8.6'
}
30 changes: 29 additions & 1 deletion android/src/main/java/io/radar/flutter/RadarFlutterPlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,9 @@ public void onMethodCall(@NonNull MethodCall call, @NonNull final Result result)
case "trackVerified":
trackVerified(call, result);
break;
case "getVerifiedLocationToken":
getVerifiedLocationToken(result);
break;
case "validateAddress":
validateAddress(call, result);
break;
Expand All @@ -291,7 +294,7 @@ private static void initialize(MethodCall call, Result result) {
String publishableKey = call.argument("publishableKey");
SharedPreferences.Editor editor = mContext.getSharedPreferences("RadarSDK", Context.MODE_PRIVATE).edit();
editor.putString("x_platform_sdk_type", "Flutter");
editor.putString("x_platform_sdk_version", "3.11.0");
editor.putString("x_platform_sdk_version", "3.12.0");
editor.apply();
Radar.initialize(mContext, publishableKey);
Radar.setReceiver(new RadarFlutterReceiver(channel));
Expand Down Expand Up @@ -1182,6 +1185,31 @@ public void run() {
Radar.trackVerified(beacons, callback);
}

public static void getVerifiedLocationToken(Result result) {
Radar.RadarTrackVerifiedCallback callback = new Radar.RadarTrackVerifiedCallback() {
@Override
public void onComplete(final Radar.RadarStatus status, final RadarVerifiedLocationToken token) {
runOnMainThread(new Runnable() {
@Override
public void run() {
try {
JSONObject obj = new JSONObject();
obj.put("status", status.toString());
obj.put("token", token.toJson());

HashMap<String, Object> map = new Gson().fromJson(obj.toString(), HashMap.class);
result.success(map);
} catch (Exception e) {
result.error(e.toString(), e.getMessage(), e.getMessage());
}
}
});
}
};

Radar.getVerifiedLocationToken(callback);
}

private static void isUsingRemoteTrackingOptions(Result result) {
Boolean isRemoteTracking = Radar.isUsingRemoteTrackingOptions();
result.success(isRemoteTracking);
Expand Down
4 changes: 2 additions & 2 deletions example/android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
compileSdkVersion 31
compileSdkVersion 34

lintOptions {
disable 'InvalidPackage'
Expand All @@ -49,7 +49,7 @@ android {
}

dependencies {
implementation 'io.radar:sdk:3.17.0'
implementation 'io.radar:sdk:3.18.1'
implementation "com.google.android.play:integrity:1.2.0"
}
}
Expand Down
9 changes: 8 additions & 1 deletion example/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -433,7 +433,14 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver {
},
child: Text('trackVerified()'),
),

ElevatedButton(
style: raisedButtonStyle,
onPressed: () async {
var resp = await Radar.getVerifiedLocationToken();
print("getVerifiedLocationToken: $resp");
},
child: Text('getVerifiedLocationToken()'),
),
ElevatedButton(
style: raisedButtonStyle,
onPressed: () async {
Expand Down
23 changes: 19 additions & 4 deletions ios/Classes/RadarFlutterPlugin.m
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,9 @@ - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result {
} else if ([@"setForegroundServiceOptions" isEqualToString:call.method]) {
// do nothing
} else if ([@"trackVerified" isEqualToString:call.method]) {
[self trackVerified:call withResult:result];
[self trackVerified:call withResult:result];
} else if ([@"getVerifiedLocationToken" isEqualToString:call.method]) {
[self getVerifiedLocationToken:result];
} else if ([@"isUsingRemoteTrackingOptions" isEqualToString:call.method]) {
[self isUsingRemoteTrackingOptions:call withResult:result];
} else if ([@"validateAddress" isEqualToString:call.method]) {
Expand All @@ -140,7 +142,7 @@ - (void)initialize:(FlutterMethodCall *)call withResult:(FlutterResult)result {

NSString *publishableKey = argsDict[@"publishableKey"];
[[NSUserDefaults standardUserDefaults] setObject:@"Flutter" forKey:@"radar-xPlatformSDKType"];
[[NSUserDefaults standardUserDefaults] setObject:@"3.11.0" forKey:@"radar-xPlatformSDKVersion"];
[[NSUserDefaults standardUserDefaults] setObject:@"3.12.0" forKey:@"radar-xPlatformSDKVersion"];
[Radar initializeWithPublishableKey:publishableKey];
result(nil);
}
Expand Down Expand Up @@ -986,6 +988,19 @@ - (void)trackVerified:(FlutterMethodCall *)call withResult:(FlutterResult)result
[Radar trackVerifiedWithBeacons:beacons completionHandler:completionHandler];
}

- (void)getVerifiedLocationToken:(FlutterResult)result {
RadarTrackVerifiedCompletionHandler completionHandler = ^(RadarStatus status, RadarVerifiedLocationToken* token) {
if (status == RadarStatusSuccess) {
NSMutableDictionary *dict = [NSMutableDictionary new];
[dict setObject:[Radar stringForStatus:status] forKey:@"status"];
[dict setObject:[token dictionaryValue] forKey:@"token"];
result(dict);
}
};

[Radar getVerifiedLocationToken:completionHandler];
}

- (void)validateAddress:(FlutterMethodCall *)call withResult:(FlutterResult)result {
RadarValidateAddressCompletionHandler completionHandler = ^(RadarStatus status, RadarAddress * _Nullable address, RadarAddressVerificationStatus verificationStatus) {
NSMutableDictionary *dict = [NSMutableDictionary new];
Expand Down Expand Up @@ -1044,8 +1059,8 @@ - (void)didLogMessage:(NSString *)message {
}
}

- (void)didUpdateToken:(NSString *)token {
NSDictionary *dict = @{@"token": token};
- (void)didUpdateToken:(RadarVerifiedLocationToken *)token {
NSDictionary *dict = @{@"token": [token dictionaryValue]};
NSArray* args = @[@0, dict];
if (self.channel != nil) {
[self.channel invokeMethod:@"token" arguments:args];
Expand Down
4 changes: 2 additions & 2 deletions ios/flutter_radar.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'flutter_radar'
s.version = '3.11.0'
s.version = '3.12.0'
s.summary = 'Flutter package for Radar, the leading geofencing and location tracking platform'
s.description = 'Flutter package for Radar, the leading geofencing and location tracking platform'
s.homepage = 'http://example.com'
Expand All @@ -10,7 +10,7 @@ Pod::Spec.new do |s|
s.source_files = 'Classes/**/*'
s.public_header_files = 'Classes/**/*.h'
s.dependency 'Flutter'
s.dependency 'RadarSDK', '3.17.0'
s.dependency 'RadarSDK', '3.18.2'
s.platform = :ios, '10.0'
s.static_framework = true

Expand Down
8 changes: 8 additions & 0 deletions lib/flutter_radar.dart
Original file line number Diff line number Diff line change
Expand Up @@ -505,6 +505,14 @@ class Radar {
}
}

static Future<Map?> getVerifiedLocationToken() async {
try {
return await _channel.invokeMethod('getVerifiedLocationToken');
} on PlatformException catch (e) {
print(e);
}
}

static Future<bool?> isUsingRemoteTrackingOptions() async {
return await _channel.invokeMethod('isUsingRemoteTrackingOptions');
}
Expand Down
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: flutter_radar
description: Flutter package for Radar, the leading geofencing and location tracking platform
version: 3.11.0
version: 3.12.0
homepage: https://github.com/radarlabs/flutter-radar

environment:
Expand Down

0 comments on commit d86a70d

Please sign in to comment.