Skip to content

Commit ab818f8

Browse files
author
rohandandavati
authored
Revert "Revert data bundles merge (#4820)" (#4922)
This reverts commit 630167b.
1 parent edab89b commit ab818f8

10 files changed

+242
-26
lines changed

FirebaseInAppMessaging/Sources/Data/FIRIAMFetchResponseParser.m

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -335,14 +335,20 @@ - (FIRIAMMessageDefinition *)convertToMessageDefinitionWithMessageDict:(NSDictio
335335
messageName:messageName
336336
contentData:msgData
337337
renderingEffect:renderEffect];
338-
338+
NSDictionary *dataBundle = nil;
339+
id dataBundleNode = messageNode[@"dataBundle"];
340+
if ([dataBundleNode isKindOfClass:[NSDictionary class]]) {
341+
dataBundle = dataBundleNode;
342+
}
339343
if (isTestMessage) {
340344
return [[FIRIAMMessageDefinition alloc] initTestMessageWithRenderData:renderData];
341345
} else {
342346
return [[FIRIAMMessageDefinition alloc] initWithRenderData:renderData
343347
startTime:startTimeInSeconds
344348
endTime:endTimeInSeconds
345-
triggerDefinition:triggersDefinition];
349+
triggerDefinition:triggersDefinition
350+
appData:dataBundle
351+
isTestMessage:NO];
346352
}
347353
} @catch (NSException *e) {
348354
FIRLogWarning(kFIRLoggerInAppMessaging, @"I-IAM900006",

FirebaseInAppMessaging/Sources/Data/FIRIAMMessageDefinition.m

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,23 +36,39 @@ @implementation FIRIAMMessageDefinition
3636
- (instancetype)initWithRenderData:(FIRIAMMessageRenderData *)renderData
3737
startTime:(NSTimeInterval)startTime
3838
endTime:(NSTimeInterval)endTime
39-
triggerDefinition:(NSArray<FIRIAMDisplayTriggerDefinition *> *)renderTriggers {
39+
triggerDefinition:(NSArray<FIRIAMDisplayTriggerDefinition *> *)renderTriggers
40+
appData:(nullable NSDictionary *)appData
41+
isTestMessage:(BOOL)isTestMessage {
4042
if (self = [super init]) {
4143
_renderData = renderData;
4244
_renderTriggers = renderTriggers;
4345
_startTime = startTime;
4446
_endTime = endTime;
45-
_isTestMessage = NO;
47+
_isTestMessage = isTestMessage;
48+
_appData = [appData copy];
4649
}
4750
return self;
4851
}
4952

53+
- (instancetype)initWithRenderData:(FIRIAMMessageRenderData *)renderData
54+
startTime:(NSTimeInterval)startTime
55+
endTime:(NSTimeInterval)endTime
56+
triggerDefinition:(NSArray<FIRIAMDisplayTriggerDefinition *> *)renderTriggers {
57+
return [self initWithRenderData:renderData
58+
startTime:startTime
59+
endTime:endTime
60+
triggerDefinition:renderTriggers
61+
appData:nil
62+
isTestMessage:NO];
63+
}
64+
5065
- (instancetype)initTestMessageWithRenderData:(FIRIAMMessageRenderData *)renderData {
51-
if (self = [super init]) {
52-
_renderData = renderData;
53-
_isTestMessage = YES;
54-
}
55-
return self;
66+
return [self initWithRenderData:renderData
67+
startTime:0
68+
endTime:0
69+
triggerDefinition:@[]
70+
appData:nil
71+
isTestMessage:YES];
5672
}
5773

5874
- (BOOL)messageHasExpired {

FirebaseInAppMessaging/Sources/Flows/FIRIAMDisplayExecutor.m

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -445,7 +445,8 @@ - (void)checkAndDisplayNextContextualMessageForAnalyticsEvent:(NSString *)eventN
445445
portraitImageData:portraitImageData
446446
backgroundColor:renderData.renderingEffectSettings.displayBGColor
447447
primaryActionButton:primaryActionButton
448-
primaryActionURL:definition.renderData.contentData.actionURL];
448+
primaryActionURL:definition.renderData.contentData.actionURL
449+
appData:definition.appData];
449450

450451
cardMessage.body = body;
451452
cardMessage.landscapeImageData = landscapeImageData;
@@ -474,7 +475,8 @@ - (void)checkAndDisplayNextContextualMessageForAnalyticsEvent:(NSString *)eventN
474475
textColor:definition.renderData.renderingEffectSettings.textColor
475476
backgroundColor:definition.renderData.renderingEffectSettings.displayBGColor
476477
imageData:imageData
477-
actionURL:definition.renderData.contentData.actionURL];
478+
actionURL:definition.renderData.contentData.actionURL
479+
appData:definition.appData];
478480
#pragma clang diagnostic pop
479481

480482
return bannerMessage;
@@ -492,7 +494,8 @@ - (void)checkAndDisplayNextContextualMessageForAnalyticsEvent:(NSString *)eventN
492494
renderAsTestMessage:definition.isTestMessage
493495
triggerType:triggerType
494496
imageData:imageData
495-
actionURL:definition.renderData.contentData.actionURL];
497+
actionURL:definition.renderData.contentData.actionURL
498+
appData:definition.appData];
496499
#pragma clang diagnostic pop
497500

498501
return imageOnlyMessage;
@@ -533,7 +536,8 @@ - (void)checkAndDisplayNextContextualMessageForAnalyticsEvent:(NSString *)eventN
533536
backgroundColor:renderData.renderingEffectSettings.displayBGColor
534537
imageData:imageData
535538
actionButton:actionButton
536-
actionURL:definition.renderData.contentData.actionURL];
539+
actionURL:definition.renderData.contentData.actionURL
540+
appData:definition.appData];
537541
#pragma clang diagnostic pop
538542

539543
return modalViewMessage;

FirebaseInAppMessaging/Sources/Private/Data/FIRIAMMessageDefinition.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,21 @@ NS_ASSUME_NONNULL_BEGIN
3535
/// A flag for client-side testing messages
3636
@property(nonatomic, readonly) BOOL isTestMessage;
3737

38+
/// Additional key-value pairs that can be optionally sent along with the FIAM
39+
@property(nonatomic, nullable, readonly) NSDictionary *appData;
40+
3841
- (instancetype)init NS_UNAVAILABLE;
3942

4043
/**
4144
* Create a regular message definition.
4245
*/
46+
- (instancetype)initWithRenderData:(FIRIAMMessageRenderData *)renderData
47+
startTime:(NSTimeInterval)startTime
48+
endTime:(NSTimeInterval)endTime
49+
triggerDefinition:(NSArray<FIRIAMDisplayTriggerDefinition *> *)renderTriggers
50+
appData:appData
51+
isTestMessage:(BOOL)isTestMessage NS_DESIGNATED_INITIALIZER;
52+
4353
- (instancetype)initWithRenderData:(FIRIAMMessageRenderData *)renderData
4454
startTime:(NSTimeInterval)startTime
4555
endTime:(NSTimeInterval)endTime

FirebaseInAppMessaging/Sources/Public/FIRInAppMessagingRendering.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,11 @@ NS_SWIFT_NAME(InAppMessagingDisplayMessage)
164164
*/
165165
@property(nonatomic, readonly) FIRInAppMessagingDisplayTriggerType triggerType;
166166

167+
/**
168+
* Extra key-value dictionary data that can be sent along with the message
169+
*/
170+
@property(nonatomic, nullable, readonly) NSDictionary *appData;
171+
167172
/// Unavailable.
168173
- (instancetype)init NS_UNAVAILABLE;
169174

FirebaseInAppMessaging/Sources/RenderingObjects/FIRInAppMessagingRenderingDataClasses.m

Lines changed: 136 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,26 @@
2020

2121
@implementation FIRInAppMessagingDisplayMessage
2222

23+
- (instancetype)initWithMessageID:(NSString *)messageID
24+
campaignName:(NSString *)campaignName
25+
renderAsTestMessage:(BOOL)renderAsTestMessage
26+
messageType:(FIRInAppMessagingDisplayMessageType)messageType
27+
triggerType:(FIRInAppMessagingDisplayTriggerType)triggerType
28+
appData:(NSDictionary *)appData {
29+
if (self = [super init]) {
30+
#pragma clang diagnostic push
31+
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
32+
_campaignInfo = [[FIRInAppMessagingCampaignInfo alloc] initWithMessageID:messageID
33+
campaignName:campaignName
34+
renderAsTestMessage:renderAsTestMessage];
35+
#pragma clang diagnostic pop
36+
_type = messageType;
37+
_triggerType = triggerType;
38+
_appData = [appData copy];
39+
}
40+
return self;
41+
}
42+
2343
- (instancetype)initWithMessageID:(NSString *)messageID
2444
campaignName:(NSString *)campaignName
2545
renderAsTestMessage:(BOOL)renderAsTestMessage
@@ -31,9 +51,11 @@ - (instancetype)initWithMessageID:(NSString *)messageID
3151
renderAsTestMessage:renderAsTestMessage];
3252
_type = messageType;
3353
_triggerType = triggerType;
54+
_appData = nil;
3455
}
3556
return self;
3657
}
58+
3759
@end
3860

3961
@implementation FIRInAppMessagingCardDisplay
@@ -54,6 +76,36 @@ - (void)setSecondaryActionURL:(NSURL *_Nullable)secondaryActionURL {
5476
_secondaryActionURL = secondaryActionURL;
5577
}
5678

79+
- (instancetype)initWithMessageID:(NSString *)messageID
80+
campaignName:(NSString *)campaignName
81+
renderAsTestMessage:(BOOL)renderAsTestMessage
82+
triggerType:(FIRInAppMessagingDisplayTriggerType)triggerType
83+
titleText:(NSString *)title
84+
textColor:(UIColor *)textColor
85+
portraitImageData:(FIRInAppMessagingImageData *)portraitImageData
86+
backgroundColor:(UIColor *)backgroundColor
87+
primaryActionButton:(FIRInAppMessagingActionButton *)primaryActionButton
88+
primaryActionURL:(NSURL *)primaryActionURL
89+
appData:(NSDictionary *)appData {
90+
#pragma clang diagnostic push
91+
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
92+
if (self = [super initWithMessageID:messageID
93+
campaignName:campaignName
94+
renderAsTestMessage:renderAsTestMessage
95+
messageType:FIRInAppMessagingDisplayMessageTypeCard
96+
triggerType:triggerType
97+
appData:appData]) {
98+
#pragma clang diagnostic pop
99+
_title = title;
100+
_textColor = textColor;
101+
_portraitImageData = portraitImageData;
102+
_displayBackgroundColor = backgroundColor;
103+
_primaryActionButton = primaryActionButton;
104+
_primaryActionURL = primaryActionURL;
105+
}
106+
return self;
107+
}
108+
57109
- (instancetype)initWithMessageID:(NSString *)messageID
58110
campaignName:(NSString *)campaignName
59111
renderAsTestMessage:(BOOL)renderAsTestMessage
@@ -70,7 +122,8 @@ - (instancetype)initWithMessageID:(NSString *)messageID
70122
campaignName:campaignName
71123
renderAsTestMessage:renderAsTestMessage
72124
messageType:FIRInAppMessagingDisplayMessageTypeCard
73-
triggerType:triggerType]) {
125+
triggerType:triggerType
126+
appData:nil]) {
74127
#pragma clang diagnostic pop
75128
_title = title;
76129
_textColor = textColor;
@@ -85,6 +138,33 @@ - (instancetype)initWithMessageID:(NSString *)messageID
85138
@end
86139

87140
@implementation FIRInAppMessagingBannerDisplay
141+
- (instancetype)initWithMessageID:(NSString *)messageID
142+
campaignName:(NSString *)campaignName
143+
renderAsTestMessage:(BOOL)renderAsTestMessage
144+
triggerType:(FIRInAppMessagingDisplayTriggerType)triggerType
145+
titleText:(NSString *)title
146+
bodyText:(NSString *)bodyText
147+
textColor:(UIColor *)textColor
148+
backgroundColor:(UIColor *)backgroundColor
149+
imageData:(nullable FIRInAppMessagingImageData *)imageData
150+
actionURL:(nullable NSURL *)actionURL
151+
appData:(NSDictionary *)appData {
152+
if (self = [super initWithMessageID:messageID
153+
campaignName:campaignName
154+
renderAsTestMessage:renderAsTestMessage
155+
messageType:FIRInAppMessagingDisplayMessageTypeBanner
156+
triggerType:triggerType
157+
appData:appData]) {
158+
_title = title;
159+
_bodyText = bodyText;
160+
_textColor = textColor;
161+
_displayBackgroundColor = backgroundColor;
162+
_imageData = imageData;
163+
_actionURL = actionURL;
164+
}
165+
return self;
166+
}
167+
88168
- (instancetype)initWithMessageID:(NSString *)messageID
89169
campaignName:(NSString *)campaignName
90170
renderAsTestMessage:(BOOL)renderAsTestMessage
@@ -99,7 +179,8 @@ - (instancetype)initWithMessageID:(NSString *)messageID
99179
campaignName:campaignName
100180
renderAsTestMessage:renderAsTestMessage
101181
messageType:FIRInAppMessagingDisplayMessageTypeBanner
102-
triggerType:triggerType]) {
182+
triggerType:triggerType
183+
appData:nil]) {
103184
_title = title;
104185
_bodyText = bodyText;
105186
_textColor = textColor;
@@ -109,10 +190,40 @@ - (instancetype)initWithMessageID:(NSString *)messageID
109190
}
110191
return self;
111192
}
193+
112194
@end
113195

114196
@implementation FIRInAppMessagingModalDisplay
115197

198+
- (instancetype)initWithMessageID:(NSString *)messageID
199+
campaignName:(NSString *)campaignName
200+
renderAsTestMessage:(BOOL)renderAsTestMessage
201+
triggerType:(FIRInAppMessagingDisplayTriggerType)triggerType
202+
titleText:(NSString *)title
203+
bodyText:(NSString *)bodyText
204+
textColor:(UIColor *)textColor
205+
backgroundColor:(UIColor *)backgroundColor
206+
imageData:(nullable FIRInAppMessagingImageData *)imageData
207+
actionButton:(nullable FIRInAppMessagingActionButton *)actionButton
208+
actionURL:(nullable NSURL *)actionURL
209+
appData:(nullable NSDictionary *)appData {
210+
if (self = [super initWithMessageID:messageID
211+
campaignName:campaignName
212+
renderAsTestMessage:renderAsTestMessage
213+
messageType:FIRInAppMessagingDisplayMessageTypeModal
214+
triggerType:triggerType
215+
appData:appData]) {
216+
_title = title;
217+
_bodyText = bodyText;
218+
_textColor = textColor;
219+
_displayBackgroundColor = backgroundColor;
220+
_imageData = imageData;
221+
_actionButton = actionButton;
222+
_actionURL = actionURL;
223+
}
224+
return self;
225+
}
226+
116227
- (instancetype)initWithMessageID:(NSString *)messageID
117228
campaignName:(NSString *)campaignName
118229
renderAsTestMessage:(BOOL)renderAsTestMessage
@@ -128,7 +239,8 @@ - (instancetype)initWithMessageID:(NSString *)messageID
128239
campaignName:campaignName
129240
renderAsTestMessage:renderAsTestMessage
130241
messageType:FIRInAppMessagingDisplayMessageTypeModal
131-
triggerType:triggerType]) {
242+
triggerType:triggerType
243+
appData:nil]) {
132244
_title = title;
133245
_bodyText = bodyText;
134246
_textColor = textColor;
@@ -143,6 +255,25 @@ - (instancetype)initWithMessageID:(NSString *)messageID
143255

144256
@implementation FIRInAppMessagingImageOnlyDisplay
145257

258+
- (instancetype)initWithMessageID:(NSString *)messageID
259+
campaignName:(NSString *)campaignName
260+
renderAsTestMessage:(BOOL)renderAsTestMessage
261+
triggerType:(FIRInAppMessagingDisplayTriggerType)triggerType
262+
imageData:(nullable FIRInAppMessagingImageData *)imageData
263+
actionURL:(nullable NSURL *)actionURL
264+
appData:(nullable NSDictionary *)appData {
265+
if (self = [super initWithMessageID:messageID
266+
campaignName:campaignName
267+
renderAsTestMessage:renderAsTestMessage
268+
messageType:FIRInAppMessagingDisplayMessageTypeModal
269+
triggerType:triggerType
270+
appData:appData]) {
271+
_imageData = imageData;
272+
_actionURL = actionURL;
273+
}
274+
return self;
275+
}
276+
146277
- (instancetype)initWithMessageID:(NSString *)messageID
147278
campaignName:(NSString *)campaignName
148279
renderAsTestMessage:(BOOL)renderAsTestMessage
@@ -153,7 +284,8 @@ - (instancetype)initWithMessageID:(NSString *)messageID
153284
campaignName:campaignName
154285
renderAsTestMessage:renderAsTestMessage
155286
messageType:FIRInAppMessagingDisplayMessageTypeModal
156-
triggerType:triggerType]) {
287+
triggerType:triggerType
288+
appData:nil]) {
157289
_imageData = imageData;
158290
_actionURL = actionURL;
159291
}

0 commit comments

Comments
 (0)