ImageOnlyMessageViewController.swift 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  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. }
  49. }
  50. let displayImpl = InAppMessagingDefaultDisplayImpl()
  51. @IBOutlet var verifyLabel: UILabel!
  52. override func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage,
  53. with action: InAppMessagingAction) {
  54. super.messageClicked(inAppMessage, with: action)
  55. verifyLabel.text = "message clicked!"
  56. }
  57. override func messageDismissed(_ inAppMessage: InAppMessagingDisplayMessage,
  58. dismissType: FIRInAppMessagingDismissType) {
  59. super.messageDismissed(inAppMessage, dismissType: dismissType)
  60. verifyLabel.text = "message dismissed!"
  61. }
  62. @IBAction func showRegularImageOnlyTapped(_ sender: Any) {
  63. verifyLabel.text = "Verification Label"
  64. let imageRawData = produceImageOfSize(size: CGSize(width: 200, height: 200))
  65. let fiamImageData = InAppMessagingImageData(imageURL: "url not important",
  66. imageData: imageRawData!)
  67. let imageMessage = TestableImageOnlyMessage(
  68. imageData: fiamImageData,
  69. actionURL: URL(string: "http://firebase.com")
  70. )
  71. displayImpl.displayMessage(imageMessage, displayDelegate: self)
  72. }
  73. @IBAction func showImageViewWithLargeImageDimensionTapped(_ sender: Any) {
  74. verifyLabel.text = "Verification Label"
  75. let imageRawData = produceImageOfSize(size: CGSize(width: 1000, height: 1000))
  76. let fiamImageData = InAppMessagingImageData(imageURL: "url not important",
  77. imageData: imageRawData!)
  78. let imageMessage = TestableImageOnlyMessage(
  79. imageData: fiamImageData,
  80. actionURL: URL(string: "http://firebase.com")
  81. )
  82. displayImpl.displayMessage(imageMessage, displayDelegate: self)
  83. }
  84. @IBAction func showImageViewWithWideImage(_ sender: Any) {
  85. verifyLabel.text = "Verification Label"
  86. let imageRawData = produceImageOfSize(size: CGSize(width: 1000, height: 100))
  87. let fiamImageData = InAppMessagingImageData(imageURL: "url not important",
  88. imageData: imageRawData!)
  89. let imageMessage = TestableImageOnlyMessage(
  90. imageData: fiamImageData,
  91. actionURL: URL(string: "http://firebase.com")
  92. )
  93. displayImpl.displayMessage(imageMessage, displayDelegate: self)
  94. }
  95. @IBAction func showImageViewWithNarrowImage(_ sender: Any) {
  96. verifyLabel.text = "Verification Label"
  97. let imageRawData = produceImageOfSize(size: CGSize(width: 100, height: 1000))
  98. let fiamImageData = InAppMessagingImageData(imageURL: "url not important",
  99. imageData: imageRawData!)
  100. let imageMessage = TestableImageOnlyMessage(
  101. imageData: fiamImageData,
  102. actionURL: URL(string: "http://firebase.com")
  103. )
  104. displayImpl.displayMessage(imageMessage, displayDelegate: self)
  105. }
  106. @IBAction func showImageViewWithSmallImageDimensionTapped(_ sender: Any) {
  107. let imageRawData = produceImageOfSize(size: CGSize(width: 50, height: 50))
  108. let fiamImageData = InAppMessagingImageData(imageURL: "url not important",
  109. imageData: imageRawData!)
  110. let imageMessage = TestableImageOnlyMessage(
  111. imageData: fiamImageData,
  112. actionURL: URL(string: "http://firebase.com")
  113. )
  114. displayImpl.displayMessage(imageMessage, displayDelegate: self)
  115. }
  116. }