package gr.sullenart.ads; import android.app.Activity; import android.content.SharedPreferences; import android.content.res.Configuration; import android.preference.PreferenceManager; import android.util.Log; import android.view.View; import android.widget.LinearLayout; import android.widget.RelativeLayout; import com.google.android.gms.ads.AdListener; import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.AdSize; import com.google.android.gms.ads.AdView; import com.google.android.gms.ads.InterstitialAd; import java.util.Date; public class AdsManager { private String adUnitId = "ad unit "; private AdView adView; private int adHeight = 0; public int getAdHeight() { return adHeight; } public void addAdsView(Activity activity, RelativeLayout layout, RelativeLayout.LayoutParams params) { int screenLayout = activity.getResources().getConfiguration().screenLayout; if ((screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= 4) { adView = new AdView(activity); adView.setAdSize(AdSize.LEADERBOARD); adHeight = 90; // 728x90 size for xlarge screens (>= 960dp x 720dp) } else if ((screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == 3) { adView = new AdView(activity); adView.setAdSize(AdSize.BANNER); adHeight = 75; // 468x60 size for large screens (>= 640dp x 480dp) } else { adView = new AdView(activity); adView.setAdSize(AdSize.BANNER); adHeight = 75; // 320x50 size for normal (>= 470dp x 320dp) and small screens } adView.setAdUnitId(adUnitId); adView.setAdListener(new AdListener() { @Override public void onAdFailedToLoad(int errorCode) { Log.e(AdsManager.class.getName(), "Failed to receive ad (" + errorCode + ")"); } @Override public void onAdLoaded() { } }); layout.addView(adView, params); AdRequest request = new AdRequest.Builder() .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) .addTestDevice("5EA5B374B0B6F1201A685AACAC300DDD") .build(); adView.loadAd(request); } public void addAdsView(Activity activity, LinearLayout layout) { int screenLayout = activity.getResources().getConfiguration().screenLayout; if ((screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= 4) { adView = new AdView(activity); adView.setAdSize(AdSize.LEADERBOARD); adHeight = 90; // 728x90 size for xlarge screens (>= 960dp x 720dp) } else if ((screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == 3) { adView = new AdView(activity); adView.setAdSize(AdSize.BANNER); adHeight = 75; // 468x60 size for large screens (>= 640dp x 480dp) } else { adView = new AdView(activity); adView.setAdSize(AdSize.BANNER); adHeight = 75; // 320x50 size for normal (>= 470dp x 320dp) and small screens } adView.setAdUnitId(adUnitId); adView.setAdListener(new AdListener() { @Override public void onAdFailedToLoad(int errorCode) { Log.e(AdsManager.class.getName(), "Failed to receive ad (" + errorCode + ")"); } @Override public void onAdLoaded() { } }); layout.addView(adView); AdRequest request = new AdRequest.Builder() .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) .addTestDevice("5EA5B374B0B6F1201A685AACAC300DDD") .build(); adView.loadAd(request); } public void removeAdView(RelativeLayout layout) { if (adView != null) { layout.removeView(adView); adHeight = 0; adView = null; } } public void showAdd(boolean show) { if (show) { adView.setVisibility(View.VISIBLE); } else { adView.setVisibility(View.GONE); } } private InterstitialAd interstitial; public void showInterstitial(Activity activity, String interstitialAdUnitId) { final String interstitialAdTimeKey = "InterstitialAdTime"; final SharedPreferences preferences = PreferenceManager .getDefaultSharedPreferences(activity.getBaseContext()); long adTime = preferences.getLong(interstitialAdTimeKey, 0); long now = (new Date()).getTime(); long dayMs = 24*3600*1000; if (now - adTime < dayMs) { return; } interstitial = new InterstitialAd(activity); interstitial.setAdUnitId(interstitialAdUnitId); // Create ad request. AdRequest adRequest = new AdRequest.Builder().build(); // Begin loading your interstitial. interstitial.loadAd(adRequest); interstitial.setAdListener(new AdListener() { @Override public void onAdLoaded() { try { if (interstitial.isLoaded()) { SharedPreferences.Editor edit = preferences.edit(); edit.putLong(interstitialAdTimeKey, (new Date()).getTime()); edit.commit(); interstitial.show(); } } catch(Exception ex) { } } }); } }