diff --git a/app/app.iml b/app/app.iml index 3d23756a..7678a9f8 100644 --- a/app/app.iml +++ b/app/app.iml @@ -64,14 +64,6 @@ - - - - - - - - @@ -80,6 +72,14 @@ + + + + + + + + diff --git a/app/src/main/java/eu/faircode/netguard/ActivityMain.java b/app/src/main/java/eu/faircode/netguard/ActivityMain.java index 285b371d..34b13cbb 100644 --- a/app/src/main/java/eu/faircode/netguard/ActivityMain.java +++ b/app/src/main/java/eu/faircode/netguard/ActivityMain.java @@ -382,23 +382,13 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex)); } - // Ads - if (!IAB.isPurchasedAny(this) && Util.hasPlayServices(this)) - loadAds(); + // Initialize ads + initAds(); // Handle intent 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 protected void onNewIntent(Intent intent) { Log.i(TAG, "New intent"); @@ -416,11 +406,16 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences @Override protected void onResume() { + Log.i(TAG, "Resume"); + DatabaseHelper.getInstance(this).addAccessChangedListener(accessChangedListener); if (adapter != null) adapter.notifyDataSetChanged(); - if (IAB.isPurchasedAny(this)) + // Ads + if (!IAB.isPurchasedAny(this) && Util.hasPlayServices(this)) + enableAds(); + else disableAds(); super.onResume(); @@ -428,8 +423,22 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences @Override protected void onPause() { + Log.i(TAG, "Pause"); super.onPause(); + 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 @@ -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 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 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)); content.setSpan(new UnderlineSpan(), 0, content.length(), 0); tvAd.setText(content); @@ -904,40 +909,16 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences Log.i(TAG, "Ad left app"); } }); - - requestAds(); } - private void reloadAds() { + private void enableAds() { RelativeLayout rlAd = (RelativeLayout) findViewById(R.id.rlAd); TextView tvAd = (TextView) findViewById(R.id.tvAd); + final AdView adView = (AdView) findViewById(R.id.adView); rlAd.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.postDelayed(new Runnable() { @Override @@ -952,8 +933,21 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences private void disableAds() { RelativeLayout rlAd = (RelativeLayout) findViewById(R.id.rlAd); + AdView adView = (AdView) findViewById(R.id.adView); + 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) {