Simplify ad logic

This commit is contained in:
M66B 2016-07-25 15:45:18 +02:00
parent 82dfd13c2e
commit 2b2e717541
2 changed files with 47 additions and 53 deletions

View File

@ -64,14 +64,6 @@
<sourceFolder url="file://$MODULE_DIR$/src/all/jni" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/all/jni" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/all/renderscript" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/all/renderscript" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/all/shaders" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/all/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/testAll/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testAll/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testAll/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testAll/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testAll/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testAll/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testAll/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testAll/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestAll/res" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTestAll/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestAll/resources" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTestAll/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestAll/assets" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTestAll/assets" type="java-test-resource" />
@ -80,6 +72,14 @@
<sourceFolder url="file://$MODULE_DIR$/src/androidTestAll/jni" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTestAll/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestAll/rs" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTestAll/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestAll/shaders" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/androidTestAll/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testAll/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testAll/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testAll/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testAll/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testAll/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testAll/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testAll/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testAll/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />

View File

@ -382,23 +382,13 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences
Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex)); Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
} }
// Ads // Initialize ads
if (!IAB.isPurchasedAny(this) && Util.hasPlayServices(this)) initAds();
loadAds();
// Handle intent // Handle intent
checkExtras(getIntent()); checkExtras(getIntent());
} }
@Override
public void onConfigurationChanged(Configuration newConfig) {
Log.i(TAG, "Config changed");
super.onConfigurationChanged(newConfig);
if (!IAB.isPurchasedAny(this) && Util.hasPlayServices(this))
reloadAds();
}
@Override @Override
protected void onNewIntent(Intent intent) { protected void onNewIntent(Intent intent) {
Log.i(TAG, "New intent"); Log.i(TAG, "New intent");
@ -416,11 +406,16 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences
@Override @Override
protected void onResume() { protected void onResume() {
Log.i(TAG, "Resume");
DatabaseHelper.getInstance(this).addAccessChangedListener(accessChangedListener); DatabaseHelper.getInstance(this).addAccessChangedListener(accessChangedListener);
if (adapter != null) if (adapter != null)
adapter.notifyDataSetChanged(); adapter.notifyDataSetChanged();
if (IAB.isPurchasedAny(this)) // Ads
if (!IAB.isPurchasedAny(this) && Util.hasPlayServices(this))
enableAds();
else
disableAds(); disableAds();
super.onResume(); super.onResume();
@ -428,8 +423,22 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences
@Override @Override
protected void onPause() { protected void onPause() {
Log.i(TAG, "Pause");
super.onPause(); super.onPause();
DatabaseHelper.getInstance(this).removeAccessChangedListener(accessChangedListener); DatabaseHelper.getInstance(this).removeAccessChangedListener(accessChangedListener);
disableAds();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
Log.i(TAG, "Config");
super.onConfigurationChanged(newConfig);
disableAds();
if (!IAB.isPurchasedAny(this) && Util.hasPlayServices(this))
enableAds();
} }
@Override @Override
@ -839,17 +848,13 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences
}); });
} }
private void loadAds() { private void initAds() {
// https://developers.google.com/android/reference/com/google/android/gms/ads/package-summary // https://developers.google.com/android/reference/com/google/android/gms/ads/package-summary
MobileAds.initialize(getApplicationContext(), getString(R.string.ad_app_id)); MobileAds.initialize(getApplicationContext(), getString(R.string.ad_app_id));
RelativeLayout rlAd = (RelativeLayout) findViewById(R.id.rlAd);
final TextView tvAd = (TextView) findViewById(R.id.tvAd); final TextView tvAd = (TextView) findViewById(R.id.tvAd);
final AdView adView = (AdView) findViewById(R.id.adView); final AdView adView = (AdView) findViewById(R.id.adView);
rlAd.setVisibility(View.VISIBLE);
tvAd.setVisibility(View.VISIBLE);
SpannableString content = new SpannableString(getString(R.string.title_pro_ads)); SpannableString content = new SpannableString(getString(R.string.title_pro_ads));
content.setSpan(new UnderlineSpan(), 0, content.length(), 0); content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
tvAd.setText(content); tvAd.setText(content);
@ -904,40 +909,16 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences
Log.i(TAG, "Ad left app"); Log.i(TAG, "Ad left app");
} }
}); });
requestAds();
} }
private void reloadAds() { private void enableAds() {
RelativeLayout rlAd = (RelativeLayout) findViewById(R.id.rlAd); RelativeLayout rlAd = (RelativeLayout) findViewById(R.id.rlAd);
TextView tvAd = (TextView) findViewById(R.id.tvAd); TextView tvAd = (TextView) findViewById(R.id.tvAd);
final AdView adView = (AdView) findViewById(R.id.adView);
rlAd.setVisibility(View.VISIBLE); rlAd.setVisibility(View.VISIBLE);
tvAd.setVisibility(View.VISIBLE); tvAd.setVisibility(View.VISIBLE);
recreateAds();
requestAds();
}
private void recreateAds() {
AdView adView = (AdView) findViewById(R.id.adView);
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) adView.getLayoutParams();
RelativeLayout parent = (RelativeLayout) adView.getParent();
parent.removeView(adView);
adView.destroy();
adView = new AdView(this);
adView.setAdSize(AdSize.SMART_BANNER);
adView.setAdUnitId(getString(R.string.ad_banner_unit_id));
adView.setId(R.id.adView);
adView.setLayoutParams(params);
parent.addView(adView);
}
private void requestAds() {
final AdView adView = (AdView) findViewById(R.id.adView);
Handler handler = new Handler(); Handler handler = new Handler();
handler.postDelayed(new Runnable() { handler.postDelayed(new Runnable() {
@Override @Override
@ -952,8 +933,21 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences
private void disableAds() { private void disableAds() {
RelativeLayout rlAd = (RelativeLayout) findViewById(R.id.rlAd); RelativeLayout rlAd = (RelativeLayout) findViewById(R.id.rlAd);
AdView adView = (AdView) findViewById(R.id.adView);
rlAd.setVisibility(View.GONE); rlAd.setVisibility(View.GONE);
recreateAds();
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) adView.getLayoutParams();
RelativeLayout parent = (RelativeLayout) adView.getParent();
parent.removeView(adView);
adView.destroy();
adView = new AdView(this);
adView.setAdSize(AdSize.SMART_BANNER);
adView.setAdUnitId(getString(R.string.ad_banner_unit_id));
adView.setId(R.id.adView);
adView.setLayoutParams(params);
parent.addView(adView);
} }
private void checkExtras(Intent intent) { private void checkExtras(Intent intent) {