Skip to content

Commit a97f119

Browse files
committed
clean up remove handlers logic
1 parent adc2006 commit a97f119

2 files changed

Lines changed: 32 additions & 21 deletions

File tree

android/src/main/java/com/onesignal/rnonesignalandroid/RNOneSignal.java

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -178,19 +178,22 @@ private void removeObservers() {
178178
}
179179

180180
private void removeHandlers() {
181-
if (!oneSignalInitDone) {
182-
Logging.debug("OneSignal React-Native SDK not initialized yet. Could not remove handlers.", null);
183-
return;
181+
if (hasAddedInAppMessageClickListener) {
182+
OneSignal.getInAppMessages().removeClickListener(rnInAppClickListener);
183+
hasAddedInAppMessageClickListener = false;
184+
}
185+
if (hasAddedInAppMessageLifecycleListener) {
186+
OneSignal.getInAppMessages().removeLifecycleListener(rnInAppLifecycleListener);
187+
hasAddedInAppMessageLifecycleListener = false;
188+
}
189+
if (hasAddedNotificationClickListener) {
190+
OneSignal.getNotifications().removeClickListener(rnNotificationClickListener);
191+
hasAddedNotificationClickListener = false;
192+
}
193+
if (hasAddedNotificationForegroundListener) {
194+
OneSignal.getNotifications().removeForegroundLifecycleListener(this);
195+
hasAddedNotificationForegroundListener = false;
184196
}
185-
186-
OneSignal.getInAppMessages().removeClickListener(rnInAppClickListener);
187-
hasAddedInAppMessageClickListener = false;
188-
OneSignal.getInAppMessages().removeLifecycleListener(rnInAppLifecycleListener);
189-
hasAddedInAppMessageLifecycleListener = false;
190-
OneSignal.getNotifications().removeClickListener(rnNotificationClickListener);
191-
hasAddedNotificationClickListener = false;
192-
OneSignal.getNotifications().removeForegroundLifecycleListener(this);
193-
hasAddedNotificationForegroundListener = false;
194197
}
195198

196199
private void sendEvent(String eventName, Object params) {

ios/RCTOneSignal/RCTOneSignalEventEmitter.m

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -602,15 +602,23 @@ - (void)removeObservers {
602602
}
603603

604604
- (void)removeHandlers {
605-
[OneSignal.InAppMessages removeClickListener:[RCTOneSignal sharedInstance]];
606-
_hasAddedInAppMessageClickListener = false;
607-
[OneSignal.InAppMessages
608-
removeLifecycleListener:[RCTOneSignal sharedInstance]];
609-
_hasAddedInAppMessageLifecycleListener = false;
610-
[OneSignal.Notifications removeClickListener:[RCTOneSignal sharedInstance]];
611-
_hasAddedNotificationClickListener = false;
612-
[OneSignal.Notifications removeForegroundLifecycleListener:self];
613-
_hasAddedNotificationForegroundLifecycleListener = false;
605+
if (_hasAddedInAppMessageClickListener) {
606+
[OneSignal.InAppMessages removeClickListener:[RCTOneSignal sharedInstance]];
607+
_hasAddedInAppMessageClickListener = false;
608+
}
609+
if (_hasAddedInAppMessageLifecycleListener) {
610+
[OneSignal.InAppMessages
611+
removeLifecycleListener:[RCTOneSignal sharedInstance]];
612+
_hasAddedInAppMessageLifecycleListener = false;
613+
}
614+
if (_hasAddedNotificationClickListener) {
615+
[OneSignal.Notifications removeClickListener:[RCTOneSignal sharedInstance]];
616+
_hasAddedNotificationClickListener = false;
617+
}
618+
if (_hasAddedNotificationForegroundLifecycleListener) {
619+
[OneSignal.Notifications removeForegroundLifecycleListener:self];
620+
_hasAddedNotificationForegroundLifecycleListener = false;
621+
}
614622
}
615623

616624
- (void)removeUserStateObserver {

0 commit comments

Comments
 (0)