Skip to content

Commit c34fc63

Browse files
committed
Ignore the second JS dismiss event
The JS dismiss event is being sent to the SDK twice. Make sure we don't dismiss twice or the second IAM in the queue will be dismissed before it is displayed
1 parent 9641884 commit c34fc63

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

iOS_SDK/OneSignalSDK/OneSignalInAppMessages/Controller/OSMessagingController.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -738,7 +738,7 @@ - (void)messageViewControllerWasDismissed:(OSInAppMessageInternal *)message disp
738738
[self persistInAppMessageForRedisplay:showingIAM];
739739
}
740740
// Reset the IAM viewController to prepare for next IAM if one exists
741-
[self cleanUpInAppWindow];
741+
self.viewController = nil;
742742
// Reset time since last IAM
743743
[self setAndPersistTimeSinceLastMessage];
744744

iOS_SDK/OneSignalSDK/OneSignalInAppMessages/UI/OSInAppMessageViewController.m

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,12 +95,15 @@ @interface OSInAppMessageViewController ()
9595

9696
@implementation OSInAppMessageViewController
9797

98+
OSInAppMessageInternal *_dismissingMessage = nil;
99+
98100
- (instancetype _Nonnull)initWithMessage:(OSInAppMessageInternal *)inAppMessage delegate:(id<OSInAppMessageViewControllerDelegate>)delegate {
99101
if (self = [super init]) {
100102
self.message = inAppMessage;
101103
self.delegate = delegate;
102104
self.useHeightMargin = YES;
103105
self.useWidthMargin = YES;
106+
_dismissingMessage = nil;
104107
}
105108

106109
return self;
@@ -490,6 +493,10 @@ - (void)dismissCurrentInAppMessage:(BOOL)up withVelocity:(double)velocity {
490493
[self.delegate messageViewControllerWasDismissed:self.message displayed:NO];
491494
return;
492495
}
496+
497+
if (_dismissingMessage == self.message) {
498+
return;
499+
}
493500

494501
[self.delegate messageViewControllerWillDismiss:self.message];
495502

@@ -521,7 +528,7 @@ - (void)dismissCurrentInAppMessage:(BOOL)up withVelocity:(double)velocity {
521528
animationOption = UIViewAnimationOptionCurveEaseIn;
522529
dismissAnimationDuration = MIN_DISMISSAL_ANIMATION_DURATION;
523530
}
524-
531+
_dismissingMessage = self.message;
525532
[UIView animateWithDuration:dismissAnimationDuration delay:0.0f options:animationOption animations:^{
526533
self.view.backgroundColor = [UIColor clearColor];
527534
self.view.alpha = 0.0f;

0 commit comments

Comments
 (0)