I am making a game on LibGdx that has video ads. I implemented interface and it's methods. Everything works, video is shown.
AndroidLauncher:
public class MainAndroidLauncherAuthorization extends AndroidApplication implements
AdsController, RewardedVideoAdListener, AdHandler {
private static final String TAG = "GoogleActivity";
private static final int RC_SIGN_IN = 9001;
private FirebaseAuth mAuth;
private GoogleSignInClient mGoogleSignInClient;
private RewardedVideoAd rewardedVideoAd;
private boolean isRewardLoaded;
private boolean completed;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
setContentView(R.layout.activity);
initialize(new STARTGame(this, this), config);
MobileAds.initialize(this, "ca-app-pub-3940256099942544/5224354917");
rewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this);
rewardedVideoAd.setRewardedVideoAdListener(this);
loadRewardedVideoAd();
}
public void loadRewardedVideoAd() {
isRewardLoaded=false;
rewardedVideoAd.loadAd("ca-app-pub-3940256099942544/5224354917", new
AdRequest.Builder().build());
}
@Override
public void onRewardedVideoAdLoaded() {
isRewardLoaded =true;
}
@Override
public void showRewardedVideo() {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (rewardedVideoAd.isLoaded()) {
rewardedVideoAd.show();
} else {
loadRewardedVideoAd();
}
}
});
}
@Override
public boolean hasVideoReward(){
return isRewardLoaded;
}
@Override
public void onRewardedVideoAdOpened() {
}
@Override
public void onRewardedVideoStarted() {
}
@Override
public void onRewardedVideoAdClosed() {
loadRewardedVideoAd();
}
@Override
public void onRewarded(RewardItem reward) {
loadRewardedVideoAd();
}
@Override
public void onRewardedVideoAdLeftApplication() {
}
@Override
public void onRewardedVideoAdFailedToLoad(int i) {
}
@Override
public void onRewardedVideoCompleted() {
completed = true;
}
@Override
public boolean addCoins() {
return completed;
}
@Override
protected void onResume() {
super.onResume();
rewardedVideoAd.resume(this);
}
@Override
public void onPause() {
super.onPause();
rewardedVideoAd.pause(this);
}
@Override
public void onDestroy() {
super.onDestroy();
rewardedVideoAd.destroy(this);
}
@Override
public void coin_10() {
Prefs prefs = new Prefs();
prefs.plus_Coins_bank(10);
}
}
Interface:
public interface AdsController {
void showRewardedVideo();
void loadRewardedVideoAd();
boolean addCoins();
boolean hasVideoReward();
Core:
public class Win_01_18 extends Window implements AdsController, AdHandler {
private Prefs prefs;
public Win_01_18(AdHandler sums, final AdsController adsController, final AssetMan assetMan) {
super("", assetMan.get_skin_dialogs(), "dialog_window_main");
*******
Button btn_buy_10 = new Button(assetMan.get_skin_buttons_coins_video(), "btn_video_long");
***
btn_buy_10.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
adsController.showRewardedVideo();
super.clicked(event, x, y);
}
});
@Override
public void showRewardedVideo() {
}
@Override
public void loadRewardedVideoAd() {
}
@Override
public boolean addCoins() {
return false;
}
@Override
public boolean hasVideoReward() {
return false;
}
@Override
public void coin_10() {
}
Everything works. There are 2 questions: 1 - How to check the onRewardedVideoCompleted() method from core-class? 2 - On what event should the coins be added for watching a video in the core-class?