Skip to content

Commit

Permalink
support blocking presentation of tested markup (#109)
Browse files Browse the repository at this point in the history
  • Loading branch information
standa-dev authored May 28, 2024
1 parent 103ecbf commit 67eea47
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 8 deletions.
18 changes: 14 additions & 4 deletions Application/Sources/Test/TestRenderAdViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ final class TestRenderAdViewController: UIViewController {
private let adMarkup: String

private lazy var adContainerView: CustomAdContainerView = {
return CustomAdContainerView(ad: getAdFromMarkup(adMarkup: adMarkup), viewController: self)
return CustomAdContainerView(ad: Self.getAdFromMarkup(adMarkup: adMarkup), viewController: self)
}()

init(adMarkup: String) {
Expand All @@ -25,10 +25,20 @@ final class TestRenderAdViewController: UIViewController {
fatalError("init(coder:) has not been implemented")
}

static func showBlocking(from: UIViewController, adMarkup: String) {
let adView = NimbusAdView(adPresentingViewController: from)
let controller = NimbusAdViewController(adView: adView, ad: getAdFromMarkup(adMarkup: adMarkup), companionAd: nil)
controller.modalPresentationStyle = .fullScreen
from.present(controller, animated: true) {
controller.renderAndStart()
}
}

override func viewDidLoad() {
super.viewDidLoad()

view.backgroundColor = .systemBackground

setupLogo()
setupAdView()
}
Expand All @@ -46,17 +56,17 @@ final class TestRenderAdViewController: UIViewController {
}
}

private func getAdFromMarkup(adMarkup: String) -> NimbusAd {
static private func getAdFromMarkup(adMarkup: String) -> NimbusAd {
let type: NimbusAuctionType = isVideoMarkup(adMarkup: adMarkup) ? .video : .static
return createNimbusAd(auctionType: type, markup: adMarkup)
}

private func isVideoMarkup(adMarkup: String) -> Bool {
static private func isVideoMarkup(adMarkup: String) -> Bool {
let prefix = adMarkup.prefix(5).lowercased()
return prefix == "<vast" || prefix == "<?xml"
}

private func createNimbusAd(
static private func createNimbusAd(
placementId: String? = nil,
auctionType: NimbusAuctionType,
markup: String,
Expand Down
14 changes: 10 additions & 4 deletions Application/Sources/Test/TestRenderViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import UIKit

class TestRenderViewController: DemoViewController {

var isBlocking = false

private lazy var markupTextView: UITextView = {
let textView = UITextView()
textView.textColor = .turquoise
Expand Down Expand Up @@ -125,10 +127,14 @@ class TestRenderViewController: DemoViewController {

markupTextView.resignFirstResponder()

navigationController?.pushViewController(
TestRenderAdViewController(adMarkup: adMarkup),
animated: true
)
if isBlocking {
TestRenderAdViewController.showBlocking(from: self, adMarkup: adMarkup)
} else {
navigationController?.pushViewController(
TestRenderAdViewController(adMarkup: adMarkup),
animated: true
)
}
}

@objc private func adjustForKeyboard(notification: Notification) {
Expand Down

0 comments on commit 67eea47

Please sign in to comment.