Skip to content

Commit 2d909b5

Browse files
authored
Merge c9b6844 into 41b0073
2 parents 41b0073 + c9b6844 commit 2d909b5

18 files changed

+686
-560
lines changed

FirebaseInAppMessaging/CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# 2021-7 -- v.8.3.0
2+
-[added] Added support for unit testing with in-app message data objects (#8351).
3+
-[added] Added support for prototyping custom in-app message views in SwiftUI (#8351).
4+
15
# 2021-6 -- v.8.2.0
26
-[fixed] Fixed missing constraints warnings in default UI storyboard (#8205).
37

FirebaseInAppMessaging/Sources/Flows/FIRIAMDisplayExecutor.m

+16-18
Original file line numberDiff line numberDiff line change
@@ -471,24 +471,22 @@ - (void)checkAndDisplayNextContextualMessageForAnalyticsEvent:(NSString *)eventN
471471
}
472472

473473
FIRInAppMessagingCardDisplay *cardMessage = [[FIRInAppMessagingCardDisplay alloc]
474-
initWithMessageID:renderData.messageID
475-
campaignName:renderData.name
476-
experimentPayload:definition.experimentPayload
477-
renderAsTestMessage:definition.isTestMessage
478-
triggerType:triggerType
479-
titleText:title
480-
textColor:renderData.renderingEffectSettings.textColor
481-
portraitImageData:portraitImageData
482-
backgroundColor:renderData.renderingEffectSettings.displayBGColor
483-
primaryActionButton:primaryActionButton
484-
primaryActionURL:definition.renderData.contentData.actionURL
485-
appData:definition.appData];
486-
487-
cardMessage.body = body;
488-
cardMessage.landscapeImageData = landscapeImageData;
489-
cardMessage.secondaryActionButton = secondaryActionButton;
490-
cardMessage.secondaryActionURL = definition.renderData.contentData.secondaryActionURL;
491-
474+
initWithMessageID:renderData.messageID
475+
campaignName:renderData.name
476+
experimentPayload:definition.experimentPayload
477+
renderAsTestMessage:definition.isTestMessage
478+
triggerType:triggerType
479+
titleText:title
480+
bodyText:body
481+
textColor:renderData.renderingEffectSettings.textColor
482+
portraitImageData:portraitImageData
483+
landscapeImageData:landscapeImageData
484+
backgroundColor:renderData.renderingEffectSettings.displayBGColor
485+
primaryActionButton:primaryActionButton
486+
secondaryActionButton:secondaryActionButton
487+
primaryActionURL:definition.renderData.contentData.actionURL
488+
secondaryActionURL:definition.renderData.contentData.secondaryActionURL
489+
appData:definition.appData];
492490
return cardMessage;
493491
}
494492

FirebaseInAppMessaging/Sources/Public/FirebaseInAppMessaging/FIRInAppMessagingRendering.h

+57-1
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,12 @@ NS_SWIFT_NAME(InAppMessagingActionButton)
6464
/// Unavailable.
6565
- (instancetype)init NS_UNAVAILABLE;
6666

67+
/// Exposed for unit testing only, or for use in SwiftUI previews. Don't instantiate this in your
68+
/// app directly.
69+
- (instancetype)initWithButtonText:(NSString *)buttonText
70+
buttonTextColor:(UIColor *)textColor
71+
backgroundColor:(UIColor *)backgroundColor;
72+
6773
@end
6874

6975
/** Contain display data for an image for a fiam message.
@@ -84,6 +90,10 @@ NS_SWIFT_NAME(InAppMessagingImageData)
8490
/// Unavailable.
8591
- (instancetype)init NS_UNAVAILABLE;
8692

93+
/// Exposed for unit testing only, or for use in SwiftUI previews. Don't instantiate this in your
94+
/// app directly.
95+
- (instancetype)initWithImageURL:(NSString *)imageURL imageData:(NSData *)imageData;
96+
8797
@end
8898

8999
/** Defines the metadata for the campaign to which a FIAM message belongs.
@@ -128,7 +138,8 @@ NS_SWIFT_NAME(InAppMessagingAction)
128138
/// Unavailable.
129139
- (instancetype)init NS_UNAVAILABLE;
130140

131-
/// This class should only be initialized from a custom in-app message UI component implementation.
141+
/// This class should only be initialized from a custom in-app message UI component implementation
142+
/// or in unit testing.
132143
- (instancetype)initWithActionText:(nullable NSString *)actionText
133144
actionURL:(nullable NSURL *)actionURL;
134145

@@ -229,6 +240,21 @@ NS_SWIFT_NAME(InAppMessagingCardDisplay)
229240
/// Unavailable.
230241
- (instancetype)init NS_UNAVAILABLE;
231242

243+
/// Exposed for unit testing only, or for use in SwiftUI previews. Don't instantiate this in your
244+
/// app directly.
245+
- (instancetype)initWithCampaignName:(NSString *)campaignName
246+
titleText:(NSString *)title
247+
bodyText:(nullable NSString *)bodyText
248+
textColor:(UIColor *)textColor
249+
portraitImageData:(FIRInAppMessagingImageData *)portraitImageData
250+
landscapeImageData:(nullable FIRInAppMessagingImageData *)landscapeImageData
251+
backgroundColor:(UIColor *)backgroundColor
252+
primaryActionButton:(FIRInAppMessagingActionButton *)primaryActionButton
253+
secondaryActionButton:(nullable FIRInAppMessagingActionButton *)secondaryActionButton
254+
primaryActionURL:(nullable NSURL *)primaryActionURL
255+
secondaryActionURL:(nullable NSURL *)secondaryActionURL
256+
appData:(nullable NSDictionary *)appData;
257+
232258
@end
233259

234260
/** Class for defining a modal message for display.
@@ -274,6 +300,18 @@ NS_SWIFT_NAME(InAppMessagingModalDisplay)
274300
/// Unavailable.
275301
- (instancetype)init NS_UNAVAILABLE;
276302

303+
/// Exposed for unit testing only, or for use in SwiftUI previews. Don't instantiate this in your
304+
/// app directly.
305+
- (instancetype)initWithCampaignName:(NSString *)campaignName
306+
titleText:(NSString *)title
307+
bodyText:(nullable NSString *)bodyText
308+
textColor:(UIColor *)textColor
309+
backgroundColor:(UIColor *)backgroundColor
310+
imageData:(nullable FIRInAppMessagingImageData *)imageData
311+
actionButton:(nullable FIRInAppMessagingActionButton *)actionButton
312+
actionURL:(nullable NSURL *)actionURL
313+
appData:(nullable NSDictionary *)appData;
314+
277315
@end
278316

279317
/** Class for defining a banner message for display.
@@ -314,6 +352,17 @@ NS_SWIFT_NAME(InAppMessagingBannerDisplay)
314352
/// Unavailable.
315353
- (instancetype)init NS_UNAVAILABLE;
316354

355+
/// Exposed for unit testing only, or for use in SwiftUI previews. Don't instantiate this in your
356+
/// app directly.
357+
- (instancetype)initWithCampaignName:(NSString *)campaignName
358+
titleText:(NSString *)title
359+
bodyText:(nullable NSString *)bodyText
360+
textColor:(UIColor *)textColor
361+
backgroundColor:(UIColor *)backgroundColor
362+
imageData:(nullable FIRInAppMessagingImageData *)imageData
363+
actionURL:(nullable NSURL *)actionURL
364+
appData:(nullable NSDictionary *)appData;
365+
317366
@end
318367

319368
/** Class for defining a image-only message for display.
@@ -334,6 +383,13 @@ NS_SWIFT_NAME(InAppMessagingImageOnlyDisplay)
334383
/// Unavailable.
335384
- (instancetype)init NS_UNAVAILABLE;
336385

386+
/// Exposed for unit testing only, or for use in SwiftUI previews. Don't instantiate this in your
387+
/// app directly.
388+
- (instancetype)initWithCampaignName:(NSString *)campaignName
389+
imageData:(FIRInAppMessagingImageData *)imageData
390+
actionURL:(nullable NSURL *)actionURL
391+
appData:(nullable NSDictionary *)appData;
392+
337393
@end
338394

339395
/// The way that an in-app message was dismissed.

0 commit comments

Comments
 (0)
close