Download File
Download Project
Settings
Line Wrap
Themes
default
ambiance
bespin
dracula
eclipse
material
mbo
mdn-like
neat
solarized dark
ttcn
zenburn
MainActivity.java
package com.google.ads.rewardedvideoexample; import android.app.Activity; import android.os.Bundle; import android.os.CountDownTimer; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.MobileAds; import com.google.android.gms.ads.reward.RewardItem; import com.google.android.gms.ads.reward.RewardedVideoAd; import com.google.android.gms.ads.reward.RewardedVideoAdListener; /** * Main Activity. Inflates main activity xml and implements RewardedVideoAdListener. */ public class MainActivity extends Activity implements RewardedVideoAdListener { private static final String AD_UNIT_ID = "ca-app-pub-3940256099942544/5224354917"; private static final String APP_ID = "ca-app-pub-3940256099942544~3347511713"; private static final long COUNTER_TIME = 10; private static final int GAME_OVER_REWARD = 1; private int mCoinCount; private TextView mCoinCountText; private CountDownTimer mCountDownTimer; private boolean mGameOver; private boolean mGamePaused; private RewardedVideoAd mRewardedVideoAd; private Button mRetryButton; private Button mShowVideoButton; private long mTimeRemaining; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Initialize the Mobile Ads SDK. MobileAds.initialize(this, APP_ID); mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this); mRewardedVideoAd.setRewardedVideoAdListener(this); loadRewardedVideoAd(); // Create the "retry" button, which tries to show an interstitial between game plays. mRetryButton = findViewById(R.id.retry_button); mRetryButton.setVisibility(View.INVISIBLE); mRetryButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { startGame(); } }); // Create the "show" button, which shows a rewarded video if one is loaded. mShowVideoButton = findViewById(R.id.watch_video); mShowVideoButton.setVisibility(View.INVISIBLE); mShowVideoButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { showRewardedVideo(); } }); // Display current coin count to user. mCoinCountText = findViewById(R.id.coin_count_text); mCoinCount = 0; mCoinCountText.setText("Coins: " + mCoinCount); startGame(); } @Override public void onPause() { super.onPause(); pauseGame(); mRewardedVideoAd.pause(this); } @Override public void onResume() { super.onResume(); if (!mGameOver && mGamePaused) { resumeGame(); } mRewardedVideoAd.resume(this); } private void pauseGame() { mCountDownTimer.cancel(); mGamePaused = true; } private void resumeGame() { createTimer(mTimeRemaining); mGamePaused = false; } private void loadRewardedVideoAd() { if (!mRewardedVideoAd.isLoaded()) { mRewardedVideoAd.loadAd(AD_UNIT_ID, new AdRequest.Builder().build()); } } private void addCoins(int coins) { mCoinCount = mCoinCount + coins; mCoinCountText.setText("Coins: " + mCoinCount); } private void startGame() { // Hide the retry button, load the ad, and start the timer. mRetryButton.setVisibility(View.INVISIBLE); mShowVideoButton.setVisibility(View.INVISIBLE); loadRewardedVideoAd(); createTimer(COUNTER_TIME); mGamePaused = false; mGameOver = false; } // Create the game timer, which counts down to the end of the level // and shows the "retry" button. private void createTimer(long time) { final TextView textView = findViewById(R.id.timer); if (mCountDownTimer != null) { mCountDownTimer.cancel(); } mCountDownTimer = new CountDownTimer(time * 1000, 50) { @Override public void onTick(long millisUnitFinished) { mTimeRemaining = ((millisUnitFinished / 1000) + 1); textView.setText("seconds remaining: " + mTimeRemaining); } @Override public void onFinish() { if (mRewardedVideoAd.isLoaded()) { mShowVideoButton.setVisibility(View.VISIBLE); } textView.setText("You Lose!"); addCoins(GAME_OVER_REWARD); mRetryButton.setVisibility(View.VISIBLE); mGameOver = true; } }; mCountDownTimer.start(); } private void showRewardedVideo() { mShowVideoButton.setVisibility(View.INVISIBLE); if (mRewardedVideoAd.isLoaded()) { mRewardedVideoAd.show(); } } @Override public void onRewardedVideoAdLeftApplication() { Toast.makeText(this, "onRewardedVideoAdLeftApplication", Toast.LENGTH_SHORT).show(); } @Override public void onRewardedVideoAdClosed() { Toast.makeText(this, "onRewardedVideoAdClosed", Toast.LENGTH_SHORT).show(); // Preload the next video ad. loadRewardedVideoAd(); } @Override public void onRewardedVideoAdFailedToLoad(int errorCode) { Toast.makeText(this, "onRewardedVideoAdFailedToLoad", Toast.LENGTH_SHORT).show(); } @Override public void onRewardedVideoAdLoaded() { Toast.makeText(this, "onRewardedVideoAdLoaded", Toast.LENGTH_SHORT).show(); } @Override public void onRewardedVideoAdOpened() { Toast.makeText(this, "onRewardedVideoAdOpened", Toast.LENGTH_SHORT).show(); } @Override public void onRewarded(RewardItem reward) { Toast.makeText(this, String.format(" onRewarded! currency: %s amount: %d", reward.getType(), reward.getAmount()), Toast.LENGTH_SHORT).show(); addCoins(reward.getAmount()); } @Override public void onRewardedVideoStarted() { Toast.makeText(this, "onRewardedVideoStarted", Toast.LENGTH_SHORT).show(); } }