mirror of
https://github.com/firebase/firebase-ios-sdk
synced 2026-11-10 22:45:59 +05:45
* Parse out experiment payload for experimental FIAMs and store it on FIRIAMMessageDefinition * Fix bugs in parsing experimental payload * Add nullable experiment payload to FIAM message definition. Add method in FIRExperimenmtController to validate running experiments and call this when new messages are fetched from FIAM backend * Add and document new ABT methods, update FirebaseInAppMessaging.podspec to depend on ABT * Clean up deprecated public message initializers, add experiment payload to private initializers * Activate experiment for experimental messages upon impression * Clean up activateExperiment API * Add experimental payload to all message definition initializers * Add unit test coverage for new ABT methods * Add test coverage for parsing experimental messages * Verify experiment payload gets passed to message superclass * Scripts/style.sh * Update Podfile for UI test app to include AB Testing SDK * Add back deprecated initializers for now, these are needed for the test app * Test for non-nil experiment payload * Use mutable array directly, better memory usage * Bump ABTesting podspec version, depend on new ABT in FIAM * Remove mentions of FIREventOrigins.h * Remove experiment payload from public API, hide it in private * Scripts/style.sh * Fix comment indentation, allow for FIAM to depend on minor version updates of ABTesting * Move ABTExperimentPayload import to private header
135 lines
5.5 KiB
Objective-C
135 lines
5.5 KiB
Objective-C
/*
|
|
* Copyright 2019 Google
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
@class ABTExperimentPayload;
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
@interface FIRInAppMessagingCardDisplay (Private)
|
|
|
|
- (void)setBody:(NSString *_Nullable)body;
|
|
- (void)setLandscapeImageData:(FIRInAppMessagingImageData *_Nullable)landscapeImageData;
|
|
- (void)setSecondaryActionButton:(FIRInAppMessagingActionButton *_Nullable)secondaryActionButton;
|
|
- (void)setSecondaryActionURL:(NSURL *_Nullable)secondaryActionURL;
|
|
|
|
- (instancetype)initWithMessageID:(NSString *)messageID
|
|
campaignName:(NSString *)campaignName
|
|
experimentPayload:(nullable ABTExperimentPayload *)experimentPayload
|
|
renderAsTestMessage:(BOOL)renderAsTestMessage
|
|
triggerType:(FIRInAppMessagingDisplayTriggerType)triggerType
|
|
titleText:(NSString *)title
|
|
textColor:(UIColor *)textColor
|
|
portraitImageData:(FIRInAppMessagingImageData *)portraitImageData
|
|
backgroundColor:(UIColor *)backgroundColor
|
|
primaryActionButton:(FIRInAppMessagingActionButton *)primaryActionButton
|
|
primaryActionURL:(nullable NSURL *)primaryActionURL
|
|
appData:(nullable NSDictionary *)appData;
|
|
|
|
@end
|
|
|
|
@interface FIRInAppMessagingActionButton (Private)
|
|
|
|
- (instancetype)initWithButtonText:(NSString *)btnText
|
|
buttonTextColor:(UIColor *)textColor
|
|
backgroundColor:(UIColor *)bkgColor;
|
|
|
|
@end
|
|
|
|
@interface FIRInAppMessagingImageData (Private)
|
|
|
|
- (instancetype)initWithImageURL:(NSString *)imageURL imageData:(NSData *)imageData;
|
|
|
|
@end
|
|
|
|
@interface FIRInAppMessagingCampaignInfo (Private)
|
|
|
|
- (nullable ABTExperimentPayload *)experimentPayload;
|
|
|
|
- (instancetype)initWithMessageID:(NSString *)messageID
|
|
campaignName:(NSString *)campaignName
|
|
experimentPayload:(nullable ABTExperimentPayload *)experimentPayload
|
|
renderAsTestMessage:(BOOL)renderAsTestMessage;
|
|
|
|
@end
|
|
|
|
@interface FIRInAppMessagingAction (Private)
|
|
|
|
- (instancetype)initWithActionText:(nullable NSString *)actionText actionURL:(NSURL *)actionURL;
|
|
|
|
@end
|
|
|
|
@interface FIRInAppMessagingDisplayMessage (Private)
|
|
|
|
- (instancetype)initWithMessageID:(NSString *)messageID
|
|
campaignName:(NSString *)campaignName
|
|
experimentPayload:(nullable ABTExperimentPayload *)experimentPayload
|
|
renderAsTestMessage:(BOOL)renderAsTestMessage
|
|
messageType:(FIRInAppMessagingDisplayMessageType)messageType
|
|
triggerType:(FIRInAppMessagingDisplayTriggerType)triggerType
|
|
appData:(nullable NSDictionary *)appData;
|
|
|
|
@end
|
|
|
|
@interface FIRInAppMessagingModalDisplay (Private)
|
|
|
|
- (instancetype)initWithMessageID:(NSString *)messageID
|
|
campaignName:(NSString *)campaignName
|
|
experimentPayload:(nullable ABTExperimentPayload *)experimentPayload
|
|
renderAsTestMessage:(BOOL)renderAsTestMessage
|
|
triggerType:(FIRInAppMessagingDisplayTriggerType)triggerType
|
|
titleText:(NSString *)title
|
|
bodyText:(NSString *)bodyText
|
|
textColor:(UIColor *)textColor
|
|
backgroundColor:(UIColor *)backgroundColor
|
|
imageData:(nullable FIRInAppMessagingImageData *)imageData
|
|
actionButton:(nullable FIRInAppMessagingActionButton *)actionButton
|
|
actionURL:(nullable NSURL *)actionURL
|
|
appData:(nullable NSDictionary *)appData;
|
|
|
|
@end
|
|
|
|
@interface FIRInAppMessagingBannerDisplay (Private)
|
|
|
|
- (instancetype)initWithMessageID:(NSString *)messageID
|
|
campaignName:(NSString *)campaignName
|
|
experimentPayload:(nullable ABTExperimentPayload *)experimentPayload
|
|
renderAsTestMessage:(BOOL)renderAsTestMessage
|
|
triggerType:(FIRInAppMessagingDisplayTriggerType)triggerType
|
|
titleText:(NSString *)title
|
|
bodyText:(NSString *)bodyText
|
|
textColor:(UIColor *)textColor
|
|
backgroundColor:(UIColor *)backgroundColor
|
|
imageData:(nullable FIRInAppMessagingImageData *)imageData
|
|
actionURL:(nullable NSURL *)actionURL
|
|
appData:(nullable NSDictionary *)appData;
|
|
|
|
@end
|
|
|
|
@interface FIRInAppMessagingImageOnlyDisplay (Private)
|
|
|
|
- (instancetype)initWithMessageID:(NSString *)messageID
|
|
campaignName:(NSString *)campaignName
|
|
experimentPayload:(nullable ABTExperimentPayload *)experimentPayload
|
|
renderAsTestMessage:(BOOL)renderAsTestMessage
|
|
triggerType:(FIRInAppMessagingDisplayTriggerType)triggerType
|
|
imageData:(nullable FIRInAppMessagingImageData *)imageData
|
|
actionURL:(nullable NSURL *)actionURL
|
|
appData:(nullable NSDictionary *)appData;
|
|
|
|
@end
|
|
|
|
NS_ASSUME_NONNULL_END
|