FIRInAppMessagingRenderingDataClasses.m 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. /*
  2. * Copyright 2018 Google
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. #import <Foundation/Foundation.h>
  17. #import "FIRInAppMessagingRendering.h"
  18. @implementation FIRInAppMessagingDisplayMessage
  19. - (instancetype)initWithMessageID:(NSString *)messageID
  20. campaignName:(NSString *)campaignName
  21. renderAsTestMessage:(BOOL)renderAsTestMessage
  22. messageType:(FIRInAppMessagingDisplayMessageType)messageType
  23. triggerType:(FIRInAppMessagingDisplayTriggerType)triggerType {
  24. if (self = [super init]) {
  25. _campaignInfo = [[FIRInAppMessagingCampaignInfo alloc] initWithMessageID:messageID
  26. campaignName:campaignName
  27. renderAsTestMessage:renderAsTestMessage];
  28. _type = messageType;
  29. _triggerType = triggerType;
  30. }
  31. return self;
  32. }
  33. @end
  34. @implementation FIRInAppMessagingCardDisplay
  35. - (void)setBody:(NSString *_Nullable)body {
  36. _body = body;
  37. }
  38. - (void)setLandscapeImageData:(FIRInAppMessagingImageData *_Nullable)landscapeImageData {
  39. _landscapeImageData = landscapeImageData;
  40. }
  41. - (void)setSecondaryActionButton:(FIRInAppMessagingActionButton *_Nullable)secondaryActionButton {
  42. _secondaryActionButton = secondaryActionButton;
  43. }
  44. - (void)setSecondaryActionURL:(NSURL *_Nullable)secondaryActionURL {
  45. _secondaryActionURL = secondaryActionURL;
  46. }
  47. - (instancetype)initWithMessageID:(NSString *)messageID
  48. campaignName:(NSString *)campaignName
  49. renderAsTestMessage:(BOOL)renderAsTestMessage
  50. triggerType:(FIRInAppMessagingDisplayTriggerType)triggerType
  51. titleText:(NSString *)title
  52. textColor:(UIColor *)textColor
  53. portraitImageData:(FIRInAppMessagingImageData *)portraitImageData
  54. backgroundColor:(UIColor *)backgroundColor
  55. primaryActionButton:(FIRInAppMessagingActionButton *)primaryActionButton
  56. primaryActionURL:(NSURL *)primaryActionURL {
  57. if (self = [super initWithMessageID:messageID
  58. campaignName:campaignName
  59. renderAsTestMessage:renderAsTestMessage
  60. messageType:FIRInAppMessagingDisplayMessageTypeCard
  61. triggerType:triggerType]) {
  62. _title = title;
  63. _textColor = textColor;
  64. _portraitImageData = portraitImageData;
  65. _displayBackgroundColor = backgroundColor;
  66. _primaryActionButton = primaryActionButton;
  67. _primaryActionURL = primaryActionURL;
  68. }
  69. return self;
  70. }
  71. @end
  72. @implementation FIRInAppMessagingBannerDisplay
  73. - (instancetype)initWithMessageID:(NSString *)messageID
  74. campaignName:(NSString *)campaignName
  75. renderAsTestMessage:(BOOL)renderAsTestMessage
  76. triggerType:(FIRInAppMessagingDisplayTriggerType)triggerType
  77. titleText:(NSString *)title
  78. bodyText:(NSString *)bodyText
  79. textColor:(UIColor *)textColor
  80. backgroundColor:(UIColor *)backgroundColor
  81. imageData:(nullable FIRInAppMessagingImageData *)imageData
  82. actionURL:(nullable NSURL *)actionURL {
  83. if (self = [super initWithMessageID:messageID
  84. campaignName:campaignName
  85. renderAsTestMessage:renderAsTestMessage
  86. messageType:FIRInAppMessagingDisplayMessageTypeBanner
  87. triggerType:triggerType]) {
  88. _title = title;
  89. _bodyText = bodyText;
  90. _textColor = textColor;
  91. _displayBackgroundColor = backgroundColor;
  92. _imageData = imageData;
  93. _actionURL = actionURL;
  94. }
  95. return self;
  96. }
  97. @end
  98. @implementation FIRInAppMessagingModalDisplay
  99. - (instancetype)initWithMessageID:(NSString *)messageID
  100. campaignName:(NSString *)campaignName
  101. renderAsTestMessage:(BOOL)renderAsTestMessage
  102. triggerType:(FIRInAppMessagingDisplayTriggerType)triggerType
  103. titleText:(NSString *)title
  104. bodyText:(NSString *)bodyText
  105. textColor:(UIColor *)textColor
  106. backgroundColor:(UIColor *)backgroundColor
  107. imageData:(nullable FIRInAppMessagingImageData *)imageData
  108. actionButton:(nullable FIRInAppMessagingActionButton *)actionButton
  109. actionURL:(nullable NSURL *)actionURL {
  110. if (self = [super initWithMessageID:messageID
  111. campaignName:campaignName
  112. renderAsTestMessage:renderAsTestMessage
  113. messageType:FIRInAppMessagingDisplayMessageTypeModal
  114. triggerType:triggerType]) {
  115. _title = title;
  116. _bodyText = bodyText;
  117. _textColor = textColor;
  118. _displayBackgroundColor = backgroundColor;
  119. _imageData = imageData;
  120. _actionButton = actionButton;
  121. _actionURL = actionURL;
  122. }
  123. return self;
  124. }
  125. @end
  126. @implementation FIRInAppMessagingImageOnlyDisplay
  127. - (instancetype)initWithMessageID:(NSString *)messageID
  128. campaignName:(NSString *)campaignName
  129. renderAsTestMessage:(BOOL)renderAsTestMessage
  130. triggerType:(FIRInAppMessagingDisplayTriggerType)triggerType
  131. imageData:(nullable FIRInAppMessagingImageData *)imageData
  132. actionURL:(nullable NSURL *)actionURL {
  133. if (self = [super initWithMessageID:messageID
  134. campaignName:campaignName
  135. renderAsTestMessage:renderAsTestMessage
  136. messageType:FIRInAppMessagingDisplayMessageTypeModal
  137. triggerType:triggerType]) {
  138. _imageData = imageData;
  139. _actionURL = actionURL;
  140. }
  141. return self;
  142. }
  143. @end
  144. @implementation FIRInAppMessagingActionButton
  145. - (instancetype)initWithButtonText:(NSString *)btnText
  146. buttonTextColor:(UIColor *)textColor
  147. backgroundColor:(UIColor *)bkgColor {
  148. if (self = [super init]) {
  149. _buttonText = btnText;
  150. _buttonTextColor = textColor;
  151. _buttonBackgroundColor = bkgColor;
  152. }
  153. return self;
  154. }
  155. @end
  156. @implementation FIRInAppMessagingImageData
  157. - (instancetype)initWithImageURL:(NSString *)imageURL imageData:(NSData *)imageData {
  158. if (self = [super init]) {
  159. _imageURL = imageURL;
  160. _imageRawData = imageData;
  161. }
  162. return self;
  163. }
  164. - (id)copyWithZone:(NSZone *)zone {
  165. FIRInAppMessagingImageData *imageData = [[[self class] allocWithZone:zone] init];
  166. imageData->_imageURL = [_imageURL copyWithZone:zone];
  167. imageData->_imageRawData = [_imageRawData copyWithZone:zone];
  168. return imageData;
  169. }
  170. @end
  171. @implementation FIRInAppMessagingCampaignInfo
  172. - (instancetype)initWithMessageID:(NSString *)messageID
  173. campaignName:(NSString *)campaignName
  174. renderAsTestMessage:(BOOL)renderAsTestMessage {
  175. if (self = [super init]) {
  176. _messageID = messageID;
  177. _campaignName = campaignName;
  178. _renderAsTestMessage = renderAsTestMessage;
  179. }
  180. return self;
  181. }
  182. @end
  183. @implementation FIRInAppMessagingAction
  184. - (instancetype)initWithActionText:(nullable NSString *)actionText actionURL:(NSURL *)actionURL {
  185. if (self = [super init]) {
  186. _actionText = actionText;
  187. _actionURL = actionURL;
  188. }
  189. return self;
  190. }
  191. @end