publicclassJlActivityextendsAppCompatActivity{privatestaticfinalString AD_UNIT_ID ="ca-app-pub-3940256099942544/5224354917";privatestaticfinallong COUNTER_TIME =10;privatestaticfinalint GAME_OVER_REWARD =1;privatestaticfinalString TAG ="JlActivity";privateint coinCount;privateTextView coinCountText;privateCountDownTimer countDownTimer;privateboolean gameOver;privateboolean gamePaused;privateRewardedAd rewardedAd;privateButton retryButton;privateButton showVideoButton;privatelong timeRemaining;boolean isLoading;@OverrideprotectedvoidonCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_jl);MobileAds.initialize(this,newOnInitializationCompleteListener(){@OverridepublicvoidonInitializationComplete(InitializationStatus initializationStatus){}});loadRewardedAd();// Create the "retry" button, which tries to show a rewarded ad between game plays.
retryButton =findViewById(R.id.retry_button);
retryButton.setVisibility(View.INVISIBLE);
retryButton.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(View view){startGame();}});// Create the "show" button, which shows a rewarded video if one is loaded.
showVideoButton =findViewById(R.id.show_video_button);
showVideoButton.setVisibility(View.INVISIBLE);
showVideoButton.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(View view){showRewardedVideo();}});// Display current coin count to user.
coinCountText =findViewById(R.id.coin_count_text);
coinCount =0;
coinCountText.setText("硬币: "+ coinCount);startGame();}@OverridepublicvoidonPause(){super.onPause();pauseGame();}@OverridepublicvoidonResume(){super.onResume();if(!gameOver && gamePaused){resumeGame();}}privatevoidpauseGame(){
countDownTimer.cancel();
gamePaused =true;}privatevoidresumeGame(){createTimer(timeRemaining);
gamePaused =false;}privatevoidloadRewardedAd(){if(rewardedAd ==null){
isLoading =true;AdRequest adRequest =newAdRequest.Builder().build();RewardedAd.load(this,
AD_UNIT_ID,
adRequest,newRewardedAdLoadCallback(){@OverridepublicvoidonAdFailedToLoad(@NonNullLoadAdError loadAdError){// Handle the error.Log.d(TAG, loadAdError.getMessage());
rewardedAd =null;JlActivity.this.isLoading =false;Toast.makeText(JlActivity.this,"onAdFailedToLoad",Toast.LENGTH_SHORT).show();}@OverridepublicvoidonAdLoaded(@NonNullRewardedAd rewardedAd){JlActivity.this.rewardedAd = rewardedAd;Log.d(TAG,"onAdLoaded");JlActivity.this.isLoading =false;Toast.makeText(JlActivity.this,"onAdLoaded",Toast.LENGTH_SHORT).show();}});}}privatevoidaddCoins(int coins){
coinCount += coins;
coinCountText.setText("硬币: "+ coinCount);}privatevoidstartGame(){// Hide the retry button, load the ad, and start the timer.
retryButton.setVisibility(View.INVISIBLE);
showVideoButton.setVisibility(View.INVISIBLE);if(rewardedAd !=null&&!isLoading){loadRewardedAd();}createTimer(COUNTER_TIME);
gamePaused =false;
gameOver =false;}// Create the game timer, which counts down to the end of the level// and shows the "retry" button.privatevoidcreateTimer(long time){finalTextView textView =findViewById(R.id.timer);if(countDownTimer !=null){
countDownTimer.cancel();}
countDownTimer =newCountDownTimer(time *1000,50){@OverridepublicvoidonTick(long millisUnitFinished){
timeRemaining =((millisUnitFinished /1000)+1);
textView.setText("剩余秒数: "+ timeRemaining);}@OverridepublicvoidonFinish(){if(rewardedAd !=null){
showVideoButton.setVisibility(View.VISIBLE);}
textView.setText("你输了!");addCoins(GAME_OVER_REWARD);
retryButton.setVisibility(View.VISIBLE);
gameOver =true;}};
countDownTimer.start();}privatevoidshowRewardedVideo(){if(rewardedAd ==null){Log.d("TAG","The rewarded ad wasn't ready yet.");return;}
showVideoButton.setVisibility(View.INVISIBLE);
rewardedAd.setFullScreenContentCallback(newFullScreenContentCallback(){@OverridepublicvoidonAdShowedFullScreenContent(){// Called when ad is shown.Log.d(TAG,"onAdShowedFullScreenContent");Toast.makeText(JlActivity.this,"onAdShowedFullScreenContent",Toast.LENGTH_SHORT).show();}@OverridepublicvoidonAdFailedToShowFullScreenContent(AdError adError){// Called when ad fails to show.Log.d(TAG,"onAdFailedToShowFullScreenContent");// Don't forget to set the ad reference to null so you// don't show the ad a second time.
rewardedAd =null;Toast.makeText(JlActivity.this,"onAdFailedToShowFullScreenContent",Toast.LENGTH_SHORT).show();}@OverridepublicvoidonAdDismissedFullScreenContent(){// Called when ad is dismissed.// Don't forget to set the ad reference to null so you// don't show the ad a second time.
rewardedAd =null;Log.d(TAG,"onAdDismissedFullScreenContent");Toast.makeText(JlActivity.this,"onAdDismissedFullScreenContent",Toast.LENGTH_SHORT).show();// Preload the next rewarded ad.JlActivity.this.loadRewardedAd();}});Activity activityContext =JlActivity.this;
rewardedAd.show(
activityContext,newOnUserEarnedRewardListener(){@OverridepublicvoidonUserEarnedReward(@NonNullRewardItem rewardItem){// Handle the reward.Log.d("TAG","The user earned the reward.");int rewardAmount = rewardItem.getAmount();String rewardType = rewardItem.getType();}});}}