in admob/tools/ios/testapp/testapp/game_engine.cpp [280:459]
void GameEngine::onTap(float x, float y) {
int button_number = -1;
GLfloat viewport_x = 1 - (((width_ - x) * 2) / width_);
GLfloat viewport_y = 1 - (((y)*2) / height_);
for (int i = 0; i < kNumberOfButtons; i++) {
if ((viewport_x >= vertices_[i * 8]) &&
(viewport_x <= vertices_[i * 8 + 2]) &&
(viewport_y <= vertices_[i * 8 + 1]) &&
(viewport_y >= vertices_[i * 8 + 5])) {
button_number = i;
break;
}
}
// The BannerView or NativeExpressAdView's bounding box.
firebase::admob::BoundingBox box;
switch (button_number) {
case 0:
if (kTestBannerView) {
// Load the banner ad.
if (banner_view_->InitializeLastResult().Status() ==
firebase::kFutureStatusComplete &&
banner_view_->InitializeLastResult().Error() ==
firebase::admob::kAdMobErrorNone) {
banner_view_->LoadAd(createRequest());
}
}
if (kTestNativeExpressAdView) {
// Load the native express ad.
if (native_express_view_->InitializeLastResult().Status() ==
firebase::kFutureStatusComplete &&
native_express_view_->InitializeLastResult().Error() ==
firebase::admob::kAdMobErrorNone) {
native_express_view_->LoadAd(createRequest());
}
}
break;
case 1:
if (kTestBannerView) {
// Show/Hide the BannerView.
if (banner_view_->LoadAdLastResult().Status() ==
firebase::kFutureStatusComplete &&
banner_view_->LoadAdLastResult().Error() ==
firebase::admob::kAdMobErrorNone &&
banner_view_->GetPresentationState() ==
firebase::admob::BannerView::kPresentationStateHidden) {
banner_view_->Show();
} else if (banner_view_->LoadAdLastResult().Status() ==
firebase::kFutureStatusComplete &&
banner_view_->GetPresentationState() ==
firebase::admob::BannerView::
kPresentationStateVisibleWithAd) {
banner_view_->Hide();
}
}
if (kTestNativeExpressAdView) {
// Show/Hide the NativeExpressAdView.
if (native_express_view_->LoadAdLastResult().Status() ==
firebase::kFutureStatusComplete &&
native_express_view_->LoadAdLastResult().Error() ==
firebase::admob::kAdMobErrorNone &&
native_express_view_->GetPresentationState() ==
firebase::admob::NativeExpressAdView::
kPresentationStateHidden) {
native_express_view_->Show();
} else if (native_express_view_->LoadAdLastResult().Status() ==
firebase::kFutureStatusComplete &&
native_express_view_->LoadAdLastResult().Error() ==
firebase::admob::kAdMobErrorNone &&
native_express_view_->GetPresentationState() ==
firebase::admob::NativeExpressAdView::
kPresentationStateVisibleWithAd) {
native_express_view_->Hide();
}
}
break;
case 2:
if (kTestBannerView) {
// Move the BannerView to a predefined position.
if (banner_view_->LoadAdLastResult().Status() ==
firebase::kFutureStatusComplete &&
banner_view_->LoadAdLastResult().Error() ==
firebase::admob::kAdMobErrorNone) {
banner_view_->MoveTo(firebase::admob::BannerView::kPositionBottom);
}
}
if (kTestNativeExpressAdView) {
// Move the NativeExpressAdView to a predefined position.
if (native_express_view_->LoadAdLastResult().Status() ==
firebase::kFutureStatusComplete &&
native_express_view_->LoadAdLastResult().Error() ==
firebase::admob::kAdMobErrorNone) {
native_express_view_->MoveTo(
firebase::admob::NativeExpressAdView::kPositionBottom);
}
}
break;
case 3:
if (kTestBannerView) {
// Move the BannerView to a specific x and y coordinate.
if (banner_view_->LoadAdLastResult().Status() ==
firebase::kFutureStatusComplete &&
banner_view_->LoadAdLastResult().Error() ==
firebase::admob::kAdMobErrorNone) {
int x = 100;
int y = 200;
banner_view_->MoveTo(x, y);
}
}
if (kTestNativeExpressAdView) {
// Move the NativeExpressAdView to a specific x and y coordinate.
if (native_express_view_->LoadAdLastResult().Status() ==
firebase::kFutureStatusComplete &&
native_express_view_->LoadAdLastResult().Error() ==
firebase::admob::kAdMobErrorNone) {
int x = 100;
int y = 200;
native_express_view_->MoveTo(x, y);
}
}
if (kTestRewardedVideo) {
// Poll the reward.
if (poll_listener_ != nullptr) {
while (poll_listener_->PollReward(&reward_)) {
LogMessage("Reward user with %f %s.", reward_.amount,
reward_.reward_type.c_str());
}
}
}
break;
case 4:
if (kTestInterstitialAd) {
// Load the interstitial ad.
if (interstitial_ad_->InitializeLastResult().Status() ==
firebase::kFutureStatusComplete &&
interstitial_ad_->InitializeLastResult().Error() ==
firebase::admob::kAdMobErrorNone) {
interstitial_ad_->LoadAd(createRequest());
}
}
if (kTestRewardedVideo) {
// Load the rewarded video ad.
if (rewarded_video::InitializeLastResult().Status() ==
firebase::kFutureStatusComplete &&
rewarded_video::InitializeLastResult().Error() ==
firebase::admob::kAdMobErrorNone) {
rewarded_video::LoadAd(kRewardedVideoAdUnit, createRequest());
}
}
break;
case 5:
if (kTestInterstitialAd) {
// Show the interstitial ad.
if (interstitial_ad_->LoadAdLastResult().Status() ==
firebase::kFutureStatusComplete &&
interstitial_ad_->LoadAdLastResult().Error() ==
firebase::admob::kAdMobErrorNone &&
interstitial_ad_->ShowLastResult().Status() !=
firebase::kFutureStatusComplete) {
interstitial_ad_->Show();
}
}
if (kTestRewardedVideo) {
// Show the rewarded video ad.
if (rewarded_video::LoadAdLastResult().Status() ==
firebase::kFutureStatusComplete &&
rewarded_video::LoadAdLastResult().Error() ==
firebase::admob::kAdMobErrorNone &&
rewarded_video::ShowLastResult().Status() !=
firebase::kFutureStatusComplete) {
rewarded_video::Show(parent_view_);
}
}
break;
default:
break;
}
}