void GameEngine::onUpdate()

in admob/tools/ios/testapp/testapp/game_engine.cpp [186:277]


void GameEngine::onUpdate() {
  if (kTestBannerView) {
    // Set the banner view listener.
    if (banner_view_->InitializeLastResult().Status() ==
            firebase::kFutureStatusComplete &&
        banner_view_->InitializeLastResult().Error() ==
            firebase::admob::kAdMobErrorNone &&
        !banner_view_listener_set_) {
      banner_view_->SetListener(&banner_listener);
      banner_view_listener_set_ = true;
    }
  }

  if (kTestNativeExpressAdView) {
    // Set the native express ad view listener.
    if (native_express_view_->InitializeLastResult().Status() ==
            firebase::kFutureStatusComplete &&
        native_express_view_->InitializeLastResult().Error() ==
            firebase::admob::kAdMobErrorNone &&
        !native_express_ad_view_listener_set_) {
      native_express_view_->SetListener(&native_express_listener);
      native_express_ad_view_listener_set_ = true;
    }
  }

  if (kTestInterstitialAd) {
    // Set the interstitial ad listener.
    if (interstitial_ad_->InitializeLastResult().Status() ==
            firebase::kFutureStatusComplete &&
        interstitial_ad_->InitializeLastResult().Error() ==
            firebase::admob::kAdMobErrorNone &&
        !interstitial_ad_listener_set_) {
      interstitial_ad_->SetListener(&interstitial_listener);
      interstitial_ad_listener_set_ = true;
    }

    // Once the interstitial ad has been displayed to and dismissed by the user,
    // create a new interstitial ad.
    if (interstitial_ad_->ShowLastResult().Status() ==
            firebase::kFutureStatusComplete &&
        interstitial_ad_->ShowLastResult().Error() ==
            firebase::admob::kAdMobErrorNone &&
        interstitial_ad_->GetPresentationState() ==
            firebase::admob::InterstitialAd::kPresentationStateHidden) {
      delete interstitial_ad_;
      interstitial_ad_ = nullptr;
      interstitial_ad_ = new firebase::admob::InterstitialAd();
      interstitial_ad_->Initialize(parent_view_, kInterstitialAdUnit);
      interstitial_ad_listener_set_ = false;
    }
  }

  if (kTestRewardedVideo) {
    // Set the rewarded video listener.
    if (rewarded_video::InitializeLastResult().Status() ==
            firebase::kFutureStatusComplete &&
        rewarded_video::InitializeLastResult().Error() ==
            firebase::admob::kAdMobErrorNone &&
        !rewarded_video_listener_set_) {
      //        && poll_listener == nullptr) {
      rewarded_video::SetListener(&rewarded_listener);
      rewarded_video_listener_set_ = true;
      //      poll_listener_ = new
      //      firebase::admob::rewarded_video::PollableRewardListener();
      //      rewarded_video::SetListener(poll_listener_);
    }

    // Once the rewarded video ad has been displayed to and dismissed by the
    // user, create a new rewarded video ad.
    if (rewarded_video::ShowLastResult().Status() ==
            firebase::kFutureStatusComplete &&
        rewarded_video::ShowLastResult().Error() ==
            firebase::admob::kAdMobErrorNone &&
        rewarded_video::GetPresentationState() ==
            firebase::admob::rewarded_video::kPresentationStateHidden) {
      rewarded_video::Destroy();
      rewarded_video::Initialize();
      rewarded_video_listener_set_ = false;
    }
  }

  // Increment red if increasing, decrement otherwise.
  float diff = bg_intensity_increasing_ ? 0.0025f : -0.0025f;

  // Increment red up to 1.0, then back down to 0.0, repeat.
  bg_intensity_ += diff;
  if (bg_intensity_ >= 0.4f) {
    bg_intensity_increasing_ = false;
  } else if (bg_intensity_ <= 0.0f) {
    bg_intensity_increasing_ = true;
  }
}