Skip to content

Commit 62c0e75

Browse files
authored
Fix : Duplicate messages can occur when two campaigns are triggered by different events (#9138)
* [fixed] Duplicate messages can occur when two campaigns are triggered by different events in In-App Messaging (#9070).
1 parent 3752c2f commit 62c0e75

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

FirebaseInAppMessaging/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# 2021-12 -- v8.11.0
22
- [fixed] InApp message is shown every new session (#8907).
3+
- [fixed] Duplicate messages can occur when two campaigns are triggered by different events in In-App Messaging (#9070).
34

45
# 2021-8 -- v8.6.0
56
- [changed] Replaced conditionally-compiled APIs with `API_UNAVAILABLE` annotations on unsupported platforms (#8480).

FirebaseInAppMessaging/Sources/Flows/FIRIAMDisplayExecutor.m

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -616,6 +616,8 @@ - (void)checkAndDisplayNextContextualMessageForAnalyticsEvent:(NSString *)eventN
616616
- (void)displayForMessage:(FIRIAMMessageDefinition *)message
617617
triggerType:(FIRInAppMessagingDisplayTriggerType)triggerType {
618618
_currentMsgBeingDisplayed = message;
619+
self.isMsgBeingDisplayed = YES;
620+
619621
[message.renderData.contentData
620622
loadImageDataWithBlock:^(NSData *_Nullable standardImageRawData,
621623
NSData *_Nullable landscapeImageRawData, NSError *_Nullable error) {
@@ -633,6 +635,7 @@ - (void)displayForMessage:(FIRIAMMessageDefinition *)message
633635
triggerType:triggerType];
634636
// short-circuit to display error handling
635637
[self displayErrorForMessage:erroredMessage error:error];
638+
self.isMsgBeingDisplayed = NO;
636639
return;
637640
} else {
638641
if (standardImageRawData) {
@@ -658,11 +661,11 @@ - (void)displayForMessage:(FIRIAMMessageDefinition *)message
658661
if (self.suppressMessageDisplay) {
659662
FIRLogDebug(kFIRLoggerInAppMessaging, @"I-IAM400042",
660663
@"Message display suppressed by developer at message display time.");
664+
self.isMsgBeingDisplayed = NO;
661665
return;
662666
}
663667

664668
self.impressionRecorded = NO;
665-
self.isMsgBeingDisplayed = YES;
666669

667670
FIRInAppMessagingDisplayMessage *displayMessage =
668671
[self displayMessageWithMessageDefinition:message

0 commit comments

Comments
 (0)