Skip to content

Commit 90a2b68

Browse files
committed
fix: complete lifecycleInit Future on Android
The lifecycleInit() methods in Android were not completing their Futures, which can cause await calls to hang indefinitely. This fix adds the Result parameter and calls replySuccess() to properly complete the Future, matching the iOS implementation.
1 parent eca3fcc commit 90a2b68

4 files changed

Lines changed: 12 additions & 8 deletions

File tree

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ else if (call.method.contentEquals("OneSignal#arePaused"))
4848
else if (call.method.contentEquals("OneSignal#paused"))
4949
this.paused(call, result);
5050
else if (call.method.contentEquals("OneSignal#lifecycleInit"))
51-
this.lifecycleInit();
51+
this.lifecycleInit(result);
5252
else
5353
replyNotImplemented(result);
5454
}
@@ -90,9 +90,10 @@ private void paused(MethodCall call, Result result) {
9090
replySuccess(result, null);
9191
}
9292

93-
public void lifecycleInit() {
93+
public void lifecycleInit(Result result) {
9494
OneSignal.getInAppMessages().addLifecycleListener(this);
9595
OneSignal.getInAppMessages().addClickListener(this);
96+
replySuccess(result, null);
9697
}
9798

9899
@Override

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ else if (call.method.contentEquals("OneSignal#displayNotification"))
8787
else if (call.method.contentEquals("OneSignal#preventDefault"))
8888
this.preventDefault(call, result);
8989
else if (call.method.contentEquals("OneSignal#lifecycleInit"))
90-
this.lifecycleInit();
90+
this.lifecycleInit(result);
9191
else if (call.method.contentEquals("OneSignal#proceedWithWillDisplay"))
9292
this.proceedWithWillDisplay(call, result);
9393
else if (call.method.contentEquals("OneSignal#addNativeClickListener"))
@@ -210,9 +210,10 @@ public void onNotificationPermissionChange(boolean permission) {
210210
invokeMethodOnUiThread("OneSignal#onNotificationPermissionDidChange", hash);
211211
}
212212

213-
private void lifecycleInit() {
213+
private void lifecycleInit(Result result) {
214214
OneSignal.getNotifications().addForegroundLifecycleListener(this);
215215
OneSignal.getNotifications().addPermissionObserver(this);
216+
replySuccess(result, null);
216217
}
217218

218219
private void registerClickListener() {

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ else if (call.method.contentEquals("OneSignal#pushSubscriptionToken"))
3636
else if (call.method.contentEquals("OneSignal#pushSubscriptionOptedIn"))
3737
replySuccess(result, OneSignal.getUser().getPushSubscription().getOptedIn());
3838
else if (call.method.contentEquals("OneSignal#lifecycleInit"))
39-
this.lifecycleInit();
39+
this.lifecycleInit(result);
4040
else
4141
replyNotImplemented(result);
4242
}
@@ -50,8 +50,9 @@ private void optOut(MethodCall call, Result reply) {
5050
replySuccess(reply, null);
5151
}
5252

53-
private void lifecycleInit() {
53+
private void lifecycleInit(Result result) {
5454
OneSignal.getUser().getPushSubscription().addObserver(this);
55+
replySuccess(result, null);
5556
}
5657

5758
@Override

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ else if (call.method.contentEquals("OneSignal#removeTags"))
5353
else if (call.method.contentEquals("OneSignal#getTags"))
5454
this.getTags(call, result);
5555
else if (call.method.contentEquals("OneSignal#lifecycleInit"))
56-
this.lifecycleInit();
56+
this.lifecycleInit(result);
5757
else
5858
replyNotImplemented(result);
5959
}
@@ -67,8 +67,9 @@ private void setLanguage(MethodCall call, Result result) {
6767
replySuccess(result, null);
6868
}
6969

70-
private void lifecycleInit() {
70+
private void lifecycleInit(Result result) {
7171
OneSignal.getUser().addObserver(this);
72+
replySuccess(result, null);
7273
}
7374

7475
private void getOnesignalId(MethodCall call, Result result) {

0 commit comments

Comments
 (0)