diff --git a/android/src/main/java/com/onesignal/rnonesignalandroid/RNOneSignal.java b/android/src/main/java/com/onesignal/rnonesignalandroid/RNOneSignal.java index 2b5c8ea7..9abde946 100644 --- a/android/src/main/java/com/onesignal/rnonesignalandroid/RNOneSignal.java +++ b/android/src/main/java/com/onesignal/rnonesignalandroid/RNOneSignal.java @@ -172,12 +172,15 @@ public void onClick(INotificationClickEvent event) { }; private void removeObservers() { + if(!oneSignalInitDone) { + Logging.debug("OneSignal React-Native SDK not initialized yet. Could not remove observers.", null); + return; + } + this.removePermissionObserver(); this.removePushSubscriptionObserver(); this.removeUserStateObserver(); - } - private void removeHandlers() { if (hasAddedInAppMessageClickListener) { OneSignal.getInAppMessages().removeClickListener(rnInAppClickListener); hasAddedInAppMessageClickListener = false; @@ -212,7 +215,6 @@ public RNOneSignal(ReactApplicationContext reactContext) { // Clean up previous instance if it exists (handles reload scenario) if (currentInstance != null && currentInstance != this) { - currentInstance.removeHandlers(); currentInstance.removeObservers(); } currentInstance = this; @@ -226,7 +228,6 @@ public String getName() { @Override public void onHostDestroy() { - removeHandlers(); removeObservers(); } @@ -238,7 +239,6 @@ public void onHostResume() {} @Override public void onCatalystInstanceDestroy() { - removeHandlers(); removeObservers(); } @@ -254,8 +254,6 @@ public void initialize(String appId) { return; } - oneSignalInitDone = true; - if (context == null) { // in some cases, especially when react-native-navigation is installed, // the activity can be null, so we can initialize with the context instead @@ -263,6 +261,7 @@ public void initialize(String appId) { } OneSignal.initWithContext(context, appId); + oneSignalInitDone = true; } @ReactMethod