Skip to content

Commit

Permalink
Updated SwiftUI Demo for version 11.0.0
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 592926209
  • Loading branch information
Justin Malandruccolo authored and maddevrelgithubbot committed Dec 21, 2023
1 parent 7be9dea commit 9f6d333
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 69 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,12 @@ struct InterstitialContentView: View {
@StateObject private var countdownTimer = CountdownTimer()
@State private var showGameOverAlert = false
private let coordinator = InterstitialAdCoordinator()
private let adViewControllerRepresentable = AdViewControllerRepresentable()
let navigationTitle: String

var adViewControllerRepresentableView: some View {
adViewControllerRepresentable
.frame(width: .zero, height: .zero)
}

var body: some View {
VStack(spacing: 20) {
Text("The Impossible Game")
.font(.largeTitle)
.background(adViewControllerRepresentableView)

Spacer()

Expand Down Expand Up @@ -50,7 +43,7 @@ struct InterstitialContentView: View {
dismissButton: .cancel(
Text("OK"),
action: {
coordinator.showAd(from: adViewControllerRepresentable.viewController)
coordinator.showAd()
}))
}
.navigationTitle(navigationTitle)
Expand All @@ -69,17 +62,6 @@ struct InterstitialContentView_Previews: PreviewProvider {
}
}

// MARK: - Helper to present Interstitial Ad
private struct AdViewControllerRepresentable: UIViewControllerRepresentable {
let viewController = UIViewController()

func makeUIViewController(context: Context) -> some UIViewController {
return viewController
}

func updateUIViewController(_ uiViewController: UIViewControllerType, context: Context) {}
}

private class InterstitialAdCoordinator: NSObject, GADFullScreenContentDelegate {
private var interstitial: GADInterstitialAd?

Expand All @@ -96,11 +78,11 @@ private class InterstitialAdCoordinator: NSObject, GADFullScreenContentDelegate
interstitial = nil
}

func showAd(from viewController: UIViewController) {
func showAd() {
guard let interstitial = interstitial else {
return print("Ad wasn't ready")
}

interstitial.present(fromRootViewController: viewController)
interstitial.present(fromRootViewController: nil)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ struct RewardedInterstitialContentView: View {
@State private var showAdDialog = false
@State private var showAd = false
private let coordinator = RewardedAdCoordinator()
private let adViewControllerRepresentable = AdViewControllerRepresentable()
let navigationTitle: String

var body: some View {
Expand All @@ -19,16 +18,10 @@ struct RewardedInterstitialContentView: View {
}
}

var adViewControllerRepresentableView: some View {
adViewControllerRepresentable
.frame(width: .zero, height: .zero)
}

var rewardedInterstitialBody: some View {
VStack(spacing: 20) {
Text("The Impossible Game")
.font(.largeTitle)
.background(adViewControllerRepresentableView)

Spacer()

Expand Down Expand Up @@ -67,7 +60,7 @@ struct RewardedInterstitialContentView: View {
of: showAd,
perform: { newValue in
if newValue {
coordinator.showAd(from: adViewControllerRepresentable.viewController) { rewardAmount in
coordinator.showAd { rewardAmount in
coins += rewardAmount
}
}
Expand All @@ -89,17 +82,6 @@ struct RewardedIntersititalContentView_Previews: PreviewProvider {
}
}

// MARK: - Helper to present Rewarded Interstitial Ad
private struct AdViewControllerRepresentable: UIViewControllerRepresentable {
let viewController = UIViewController()

func makeUIViewController(context: Context) -> some UIViewController {
return viewController
}

func updateUIViewController(_ uiViewController: UIViewControllerType, context: Context) {}
}

private class RewardedAdCoordinator: NSObject, GADFullScreenContentDelegate {
var rewardedInterstitialAd: GADRewardedInterstitialAd?

Expand All @@ -116,15 +98,12 @@ private class RewardedAdCoordinator: NSObject, GADFullScreenContentDelegate {
rewardedInterstitialAd = nil
}

func showAd(
from viewController: UIViewController,
userDidEarnRewardHandler completion: @escaping (Int) -> Void
) {
func showAd(userDidEarnRewardHandler completion: @escaping (Int) -> Void) {
guard let rewarded = rewardedInterstitialAd else {
return print("Ad wasn't ready")
}

rewarded.present(fromRootViewController: viewController) {
rewarded.present(fromRootViewController: nil) {
let reward = rewarded.adReward
print("Reward amount: \(reward.amount)")
completion(reward.amount.intValue)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,12 @@ struct RewardedContentView: View {
@State private var coins: Int = 0
@State private var showWatchVideoButton = false
private let coordinator = RewardedAdCoordinator()
private let adViewControllerRepresentable = AdViewControllerRepresentable()
let navigationTitle: String

var adViewControllerRepresentableView: some View {
adViewControllerRepresentable
.frame(width: .zero, height: .zero)
}

var body: some View {
VStack(spacing: 20) {
Text("The Impossible Game")
.font(.largeTitle)
.background(adViewControllerRepresentableView)

Spacer()

Expand All @@ -31,7 +24,7 @@ struct RewardedContentView: View {
}

Button("Watch video for additional 10 coins") {
coordinator.showAd(from: adViewControllerRepresentable.viewController) { rewardAmount in
coordinator.showAd { rewardAmount in
coins += rewardAmount
}
showWatchVideoButton = false
Expand Down Expand Up @@ -79,17 +72,6 @@ struct RewardedContentView_Previews: PreviewProvider {
}
}

// MARK: - Helper to present Rewarded Ad
private struct AdViewControllerRepresentable: UIViewControllerRepresentable {
let viewController = UIViewController()

func makeUIViewController(context: Context) -> some UIViewController {
return viewController
}

func updateUIViewController(_ uiViewController: UIViewControllerType, context: Context) {}
}

private class RewardedAdCoordinator: NSObject, GADFullScreenContentDelegate {
var rewardedAd: GADRewardedAd?

Expand All @@ -107,15 +89,12 @@ private class RewardedAdCoordinator: NSObject, GADFullScreenContentDelegate {
rewardedAd = nil
}

func showAd(
from viewController: UIViewController,
userDidEarnRewardHandler completion: @escaping (Int) -> Void
) {
func showAd(userDidEarnRewardHandler completion: @escaping (Int) -> Void) {
guard let rewardedAd = rewardedAd else {
return print("Ad wasn't ready")
}

rewardedAd.present(fromRootViewController: viewController) {
rewardedAd.present(fromRootViewController: nil) {
let reward = rewardedAd.adReward
print("Reward amount: \(reward.amount)")
completion(reward.amount.intValue)
Expand Down

0 comments on commit 9f6d333

Please sign in to comment.