Skip to content

Commit 63f57af

Browse files
authored
fix(android): unsubscribe click listener when Flutter engine detaches (#1140)
1 parent 64aa5bc commit 63f57af

2 files changed

Lines changed: 9 additions & 1 deletion

File tree

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,12 @@ public void onNotificationPermissionChange(boolean permission) {
227227
invokeMethodOnUiThread("OneSignal#onNotificationPermissionDidChange", hash);
228228
}
229229

230+
void onDetachedFromEngine() {
231+
// Unsubscribe so clicks while the engine is dead get queued by the native SDK
232+
// instead of dispatched on a detached channel.
233+
OneSignal.getNotifications().removeClickListener(this);
234+
}
235+
230236
private void lifecycleInit(Result result) {
231237
OneSignal.getNotifications().removeForegroundLifecycleListener(this);
232238
OneSignal.getNotifications().addForegroundLifecycleListener(this);

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,9 @@ public void onDetachedFromEngine(@NonNull FlutterPlugin.FlutterPluginBinding bin
4848
onDetachedFromEngine();
4949
}
5050

51-
private void onDetachedFromEngine() {}
51+
private void onDetachedFromEngine() {
52+
OneSignalNotifications.getSharedInstance().onDetachedFromEngine();
53+
}
5254

5355
@Override
5456
public void onAttachedToActivity(@NonNull ActivityPluginBinding binding) {

0 commit comments

Comments
 (0)