Skip to content

Commit f9c206e

Browse files
committed
Add public getters for external id and onesignal id
1 parent 4d6e527 commit f9c206e

File tree

4 files changed

+63
-0
lines changed

4 files changed

+63
-0
lines changed

android/src/main/java/com/onesignal/flutter/OneSignalUser.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ static void registerWith(BinaryMessenger messenger) {
3232
public void onMethodCall(MethodCall call, Result result) {
3333
if (call.method.contentEquals("OneSignal#setLanguage"))
3434
this.setLanguage(call, result);
35+
else if (call.method.contentEquals("OneSignal#getOnesignalId"))
36+
this.getOnesignalId(call, result);
37+
else if (call.method.contentEquals("OneSignal#getExternalId"))
38+
this.getExternalId(call, result);
3539
else if (call.method.contentEquals("OneSignal#addAliases"))
3640
this.addAliases(call, result);
3741
else if (call.method.contentEquals("OneSignal#removeAliases"))
@@ -63,6 +67,22 @@ private void setLanguage(MethodCall call, Result result) {
6367
replySuccess(result, null);
6468
}
6569

70+
private void getOnesignalId(MethodCall call, Result result) {
71+
String onesignalId = OneSignal.getUser().getOnesignalId();
72+
if (onesignalId.isEmpty()) {
73+
onesignalId = null;
74+
}
75+
replySuccess(result, onesignalId);
76+
}
77+
78+
private void getExternalId(MethodCall call, Result result) {
79+
String externalId = OneSignal.getUser().getExternalId();
80+
if (externalId.isEmpty()) {
81+
externalId = null;
82+
}
83+
replySuccess(result, externalId);
84+
}
85+
6686
private void addAliases(MethodCall call, Result result) {
6787
// call.arguments is being casted to a Map<String, Object> so a try-catch with
6888
// a ClassCastException will be thrown

example/lib/main.dart

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,11 @@ class _MyAppState extends State<MyApp> {
193193
OneSignal.Location.setShared(true);
194194
}
195195

196+
void _handleGetExternalId() async {
197+
var externalId = await OneSignal.User.getExternalId();
198+
print('External ID: $externalId');
199+
}
200+
196201
void _handleLogin() {
197202
print("Setting external user ID");
198203
if (_externalUserId == null) return;
@@ -205,6 +210,11 @@ class _MyAppState extends State<MyApp> {
205210
OneSignal.User.removeAlias("fb_id");
206211
}
207212

213+
void _handleGetOnesignalId() async {
214+
var onesignalId = await OneSignal.User.getOnesignalId();
215+
print('OneSignal ID: $onesignalId');
216+
}
217+
208218
oneSignalInAppMessagingTriggerExamples() async {
209219
/// Example addTrigger call for IAM
210220
/// This will add 1 trigger so if there are any IAM satisfying it, it
@@ -365,6 +375,10 @@ class _MyAppState extends State<MyApp> {
365375
height: 8.0,
366376
)
367377
]),
378+
new TableRow(children: [
379+
new OneSignalButton("Get External User ID",
380+
_handleGetExternalId, !_enableConsentButton)
381+
]),
368382
new TableRow(children: [
369383
new OneSignalButton("Set External User ID", _handleLogin,
370384
!_enableConsentButton)
@@ -373,6 +387,10 @@ class _MyAppState extends State<MyApp> {
373387
new OneSignalButton("Remove External User ID",
374388
_handleLogout, !_enableConsentButton)
375389
]),
390+
new TableRow(children: [
391+
new OneSignalButton("Get OneSignal ID",
392+
_handleGetOnesignalId, !_enableConsentButton)
393+
]),
376394
new TableRow(children: [
377395
new TextField(
378396
textAlign: TextAlign.center,

ios/Classes/OSFlutterUser.m

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ + (void)registerWithRegistrar:(NSObject<FlutterPluginRegistrar>*)registrar {
4747
- (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result {
4848
if ([@"OneSignal#setLanguage" isEqualToString:call.method])
4949
[self setLanguage:call withResult:result];
50+
else if ([@"OneSignal#getOnesignalId" isEqualToString:call.method])
51+
[self getOnesignalId:call withResult:result];
52+
else if ([@"OneSignal#getExternalId" isEqualToString:call.method])
53+
[self getExternalId:call withResult:result];
5054
else if ([@"OneSignal#addAliases" isEqualToString:call.method])
5155
[self addAliases:call withResult:result];
5256
else if ([@"OneSignal#removeAliases" isEqualToString:call.method])
@@ -132,4 +136,11 @@ - (void)removeSms:(FlutterMethodCall *)call withResult:(FlutterResult)result {
132136
result(nil);
133137
}
134138

139+
- (void)getOnesignalId:(FlutterMethodCall *)call withResult:(FlutterResult)result {
140+
result(OneSignal.User.onesignalId);
141+
}
142+
143+
- (void)getExternalId:(FlutterMethodCall *)call withResult:(FlutterResult)result {
144+
result(OneSignal.User.externalId);
145+
}
135146
@end

lib/src/user.dart

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,4 +111,18 @@ class OneSignalUser {
111111
Future<void> removeSms(String smsNumber) async {
112112
return await _channel.invokeMethod("OneSignal#removeSms", smsNumber);
113113
}
114+
115+
/// Returns the nullable External ID for the current user.
116+
Future<String?> getExternalId() async {
117+
final String? externalId =
118+
await _channel.invokeMethod("OneSignal#getExternalId");
119+
return externalId;
120+
}
121+
122+
/// Returns the nullable OneSignal ID for the current user.
123+
Future<String?> getOnesignalId() async {
124+
final String? onesignalId =
125+
await _channel.invokeMethod("OneSignal#getOnesignalId");
126+
return onesignalId;
127+
}
114128
}

0 commit comments

Comments
 (0)