ImageOnlyMessageViewController.swift 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  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 UIKit
  17. class ImageOnlyMessageViewController: CommonMessageTestVC {
  18. class TestableImageOnlyMessage: InAppMessagingImageOnlyDisplay {
  19. var writableCampaignInfo: InAppMessagingCampaignInfo
  20. var writableImageData: InAppMessagingImageData
  21. var writableActionURL: URL?
  22. var writableMessageType: FIRInAppMessagingDisplayMessageType
  23. var writableTriggerType: FIRInAppMessagingDisplayTriggerType
  24. override var campaignInfo: InAppMessagingCampaignInfo {
  25. return writableCampaignInfo
  26. }
  27. override var imageData: InAppMessagingImageData {
  28. return writableImageData
  29. }
  30. override var actionURL: URL? {
  31. return writableActionURL
  32. }
  33. override var type: FIRInAppMessagingDisplayMessageType {
  34. return writableMessageType
  35. }
  36. override var triggerType: FIRInAppMessagingDisplayTriggerType {
  37. return writableTriggerType
  38. }
  39. init(imageData: InAppMessagingImageData,
  40. actionURL: URL?) {
  41. writableImageData = imageData
  42. writableActionURL = actionURL
  43. writableCampaignInfo = TestableCampaignInfo(messageID: "testID",
  44. campaignName: "testCampaign",
  45. isTestMessage: false)
  46. writableMessageType = FIRInAppMessagingDisplayMessageType.imageOnly
  47. writableTriggerType = FIRInAppMessagingDisplayTriggerType.onAnalyticsEvent
  48. super.init(messageID: "testID",
  49. campaignName: "testCampaign",
  50. renderAsTestMessage: false,
  51. messageType: .imageOnly,
  52. triggerType: .onAnalyticsEvent)
  53. }
  54. }
  55. let displayImpl = InAppMessagingDefaultDisplayImpl()
  56. @IBOutlet var verifyLabel: UILabel!
  57. override func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage,
  58. with action: InAppMessagingAction) {
  59. super.messageClicked(inAppMessage, with: action)
  60. verifyLabel.text = "message clicked!"
  61. }
  62. override func messageDismissed(_ inAppMessage: InAppMessagingDisplayMessage,
  63. dismissType: FIRInAppMessagingDismissType) {
  64. super.messageDismissed(inAppMessage, dismissType: dismissType)
  65. verifyLabel.text = "message dismissed!"
  66. }
  67. @IBAction func showRegularImageOnlyTapped(_ sender: Any) {
  68. verifyLabel.text = "Verification Label"
  69. let imageRawData = produceImageOfSize(size: CGSize(width: 200, height: 200))
  70. let fiamImageData = InAppMessagingImageData(imageURL: "url not important",
  71. imageData: imageRawData!)
  72. let imageMessage = TestableImageOnlyMessage(
  73. imageData: fiamImageData,
  74. actionURL: URL(string: "http://firebase.com")
  75. )
  76. displayImpl.displayMessage(imageMessage, displayDelegate: self)
  77. }
  78. @IBAction func showImageViewWithLargeImageDimensionTapped(_ sender: Any) {
  79. verifyLabel.text = "Verification Label"
  80. let imageRawData = produceImageOfSize(size: CGSize(width: 1000, height: 1000))
  81. let fiamImageData = InAppMessagingImageData(imageURL: "url not important",
  82. imageData: imageRawData!)
  83. let imageMessage = TestableImageOnlyMessage(
  84. imageData: fiamImageData,
  85. actionURL: URL(string: "http://firebase.com")
  86. )
  87. displayImpl.displayMessage(imageMessage, displayDelegate: self)
  88. }
  89. @IBAction func showImageViewWithWideImage(_ sender: Any) {
  90. verifyLabel.text = "Verification Label"
  91. let imageRawData = produceImageOfSize(size: CGSize(width: 1000, height: 100))
  92. let fiamImageData = InAppMessagingImageData(imageURL: "url not important",
  93. imageData: imageRawData!)
  94. let imageMessage = TestableImageOnlyMessage(
  95. imageData: fiamImageData,
  96. actionURL: URL(string: "http://firebase.com")
  97. )
  98. displayImpl.displayMessage(imageMessage, displayDelegate: self)
  99. }
  100. @IBAction func showImageViewWithNarrowImage(_ sender: Any) {
  101. verifyLabel.text = "Verification Label"
  102. let imageRawData = produceImageOfSize(size: CGSize(width: 100, height: 1000))
  103. let fiamImageData = InAppMessagingImageData(imageURL: "url not important",
  104. imageData: imageRawData!)
  105. let imageMessage = TestableImageOnlyMessage(
  106. imageData: fiamImageData,
  107. actionURL: URL(string: "http://firebase.com")
  108. )
  109. displayImpl.displayMessage(imageMessage, displayDelegate: self)
  110. }
  111. @IBAction func showImageViewWithSmallImageDimensionTapped(_ sender: Any) {
  112. let imageRawData = produceImageOfSize(size: CGSize(width: 50, height: 50))
  113. let fiamImageData = InAppMessagingImageData(imageURL: "url not important",
  114. imageData: imageRawData!)
  115. let imageMessage = TestableImageOnlyMessage(
  116. imageData: fiamImageData,
  117. actionURL: URL(string: "http://firebase.com")
  118. )
  119. displayImpl.displayMessage(imageMessage, displayDelegate: self)
  120. }
  121. }