Added advertisement to levels-screen

polished levels 14 and 16 (world 2)
This commit is contained in:
=
2018-05-13 15:23:04 +02:00
parent cd1932a9df
commit 3d3de3feed
14 changed files with 1610 additions and 1224 deletions

View File

@ -12,6 +12,8 @@ import android.view.Window;
import android.view.WindowManager;
import android.widget.RelativeLayout;
import com.google.android.gms.ads.MobileAds;
import java.util.ArrayList;
import java.util.List;
@ -80,6 +82,8 @@ public class GameActivity extends Activity implements ExceptionHandler, User.LvU
super.requestWindowFeature(Window.FEATURE_NO_TITLE);
super.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
MobileAds.initialize(this, "ca-app-pub-7069685539417779~2685294395");
if (!hasGLES20())
throw new Exception("OpenGL ES 2.0 not supported");

View File

@ -0,0 +1,9 @@
package de.frajul.endlessroll.main.ads;
public interface AdLoadingListener {
public void onAdLoaded();
public void onAdFailedToLoad(int errorCode);
}

View File

@ -0,0 +1,23 @@
package de.frajul.endlessroll.main.ads;
import com.google.android.gms.ads.AdListener;
public class CustomAdListener extends AdListener {
private AdLoadingListener adLoadingListener;
public CustomAdListener(AdLoadingListener adLoadingListener) {
super();
this.adLoadingListener = adLoadingListener;
}
@Override
public void onAdLoaded() {
adLoadingListener.onAdLoaded();
}
@Override
public void onAdFailedToLoad(int i) {
adLoadingListener.onAdFailedToLoad(i);
}
}

View File

@ -1,11 +1,20 @@
package de.frajul.endlessroll.main.screens;
import android.view.View;
import android.widget.LinearLayout;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import java.util.concurrent.atomic.AtomicBoolean;
import de.frajul.endlessroll.R;
import de.frajul.endlessroll.levels.Level;
import de.frajul.endlessroll.levels.LevelPack;
import de.frajul.endlessroll.main.GameActivity;
import de.frajul.endlessroll.main.GameLog;
import de.frajul.endlessroll.main.ads.AdLoadingListener;
import de.frajul.endlessroll.main.ads.CustomAdListener;
import de.frajul.endlessroll.views.LevelButton;
import de.frajul.endlessroll.views.LevelButtonOnClickListener;
import de.frajul.endlessroll.views.TopBar;
@ -13,19 +22,29 @@ import de.frajul.endlessroll.views.TopBar;
/**
* Created by Julian on 23.04.2016.
*/
public class LevelsScreen extends Screen<LinearLayout> implements LevelButtonOnClickListener {
public class LevelsScreen extends Screen<LinearLayout> implements LevelButtonOnClickListener, AdLoadingListener {
private LevelPack levelPack;
private TopBar topBar;
private LinearLayout topRow;
private LinearLayout bottomRow;
private AdView adView;
private AtomicBoolean waitingForAdResponse;
private AtomicBoolean adLoaded;
public LevelsScreen(GameActivity gameActivity) {
super(ScreenType.LEVELS, gameActivity, R.layout.levels);
topBar = super.createTopBar(R.id.levels_topbar);
topRow = (LinearLayout) layout.findViewById(R.id.levels_top_row);
bottomRow = (LinearLayout) layout.findViewById(R.id.levels_bottom_row);
adView = (AdView) layout.findViewById(R.id.levels_ad_view);
adView.setAdListener(new CustomAdListener(this));
adView.setVisibility(View.GONE);
waitingForAdResponse = new AtomicBoolean(false);
adLoaded = new AtomicBoolean(false);
loadAd();
}
public void onLevelPackSelected(LevelPack levelPack) {
@ -59,10 +78,19 @@ public class LevelsScreen extends Screen<LinearLayout> implements LevelButtonOnC
bottomRow.addView(button.getView(), params);
}
private void loadAd() {
waitingForAdResponse.set(true);
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
}
@Override
public void prepareToBeShown() {
gameActivity.getSoundManager().menuMusic.start();
if (!adLoaded.get() && !waitingForAdResponse.get())
loadAd();
topBar.update();
build();
}
@ -78,4 +106,19 @@ public class LevelsScreen extends Screen<LinearLayout> implements LevelButtonOnC
if (!level.isLocked())
gameActivity.startGame(levelPack, level);
}
@Override
public void onAdLoaded() {
adLoaded.set(true);
waitingForAdResponse.set(false);
adView.setVisibility(View.VISIBLE);
}
@Override
public void onAdFailedToLoad(int errorCode) {
adLoaded.set(false);
waitingForAdResponse.set(false);
GameLog.i("LevelsScreen-Ad failed to load. ErrorCode=" + errorCode);
adView.setVisibility(View.GONE);
}
}