Skip to content

Commit 9fa2c48

Browse files
committed
calling willDismiss and didDismiss
1 parent eab0204 commit 9fa2c48

File tree

3 files changed

+15
-5
lines changed

3 files changed

+15
-5
lines changed

iOS_SDK/OneSignalSDK/Source/OSInAppMessageViewController.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ NS_ASSUME_NONNULL_BEGIN
3838

3939
- (void)messageViewDidSelectAction:(OSInAppMessageInternal *)message withAction:(OSInAppMessageAction *)action;
4040
- (void)messageViewDidDisplayPage:(OSInAppMessageInternal *)message withPageId:(NSString *)pageId;
41-
- (void)messageViewControllerWasDismissed;
41+
- (void)messageViewControllerWillDismiss:(OSInAppMessageInternal *)message;
42+
- (void)messageViewControllerWasDismissed:(OSInAppMessageInternal *)message displayed:(BOOL)displayed;
4243
- (void)webViewContentFinishedLoading:(OSInAppMessageInternal *)message;
4344
- (void)messageIsNotActive:(OSInAppMessageInternal *)message;
4445
- (void)messageWillDisplay:(OSInAppMessageInternal *)message;

iOS_SDK/OneSignalSDK/Source/OSInAppMessageViewController.m

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -431,10 +431,12 @@ - (void)dismissCurrentInAppMessage:(BOOL)up withVelocity:(double)velocity {
431431
// and we should bypass dismissal adjustments and animations and skip straight to the OSMessagingController callback for dismissing
432432
if (!self.didPageRenderingComplete) {
433433
[self dismissViewControllerAnimated:false completion:nil];
434-
[self.delegate messageViewControllerWasDismissed];
434+
[self.delegate messageViewControllerWasDismissed:self.message displayed:NO];
435435
return;
436436
}
437437

438+
[self.delegate messageViewControllerWillDismiss:self.message];
439+
438440
// Inactivate the current Y constraints
439441
self.finalYConstraint.active = false;
440442
self.initialYConstraint.active = false;
@@ -473,7 +475,7 @@ - (void)dismissCurrentInAppMessage:(BOOL)up withVelocity:(double)velocity {
473475
return;
474476

475477
self.didPageRenderingComplete = false;
476-
[self.delegate messageViewControllerWasDismissed];
478+
[self.delegate messageViewControllerWasDismissed:self.message displayed:YES];
477479
}];
478480
}
479481

@@ -754,7 +756,7 @@ - (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id <UIV
754756

755757
#pragma mark OSInAppMessageViewDelegate Methods
756758
- (void)messageViewFailedToLoadMessageContent {
757-
[self.delegate messageViewControllerWasDismissed];
759+
[self.delegate messageViewControllerWasDismissed:self.message displayed:NO];
758760
}
759761

760762
- (void)messageViewDidFailToProcessAction {

iOS_SDK/OneSignalSDK/Source/OSMessagingController.m

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -572,14 +572,17 @@ - (id)getTriggerValueForKey:(NSString *)key {
572572
}
573573

574574
#pragma mark OSInAppMessageViewControllerDelegate Methods
575-
- (void)messageViewControllerWasDismissed {
575+
- (void)messageViewControllerWasDismissed:(OSInAppMessageInternal *)message displayed:(BOOL)displayed {
576576
@synchronized (self.messageDisplayQueue) {
577577
[OneSignal onesignal_Log:ONE_S_LL_VERBOSE message:@"Dismissing IAM and preparing to show next IAM"];
578578
// Remove DIRECT influence due to ClickHandler of ClickAction outcomes
579579
[OneSignal.sessionManager onDirectInfluenceFromIAMClickFinished];
580580

581581
// Add current dismissed messageId to seenInAppMessages set and save it to NSUserDefaults
582582
if (self.isInAppMessageShowing) {
583+
if (displayed) {
584+
[self onDidDismissInAppMessage:message];
585+
}
583586
OSInAppMessageInternal *showingIAM = self.messageDisplayQueue.firstObject;
584587
[self.seenInAppMessages addObject:showingIAM.messageId];
585588
[OneSignalUserDefaults.initStandard saveSetForKey:OS_IAM_SEEN_SET_KEY withValue:self.seenInAppMessages];
@@ -601,6 +604,10 @@ - (void)messageViewControllerWasDismissed {
601604
}
602605
}
603606

607+
- (void)messageViewControllerWillDismiss:(OSInAppMessageInternal *)message {
608+
[self onWillDismissInAppMessage:message];
609+
}
610+
604611
- (void)evaluateMessageDisplayQueue {
605612
[OneSignal onesignal_Log:ONE_S_LL_VERBOSE message:@"Evaluating message display queue"];
606613
// No IAMs are showing currently

0 commit comments

Comments
 (0)