Remove Google's Ad Consent library. https://redmine.stoutner.com/issues/329
[PrivacyBrowser.git] / app / src / free / java / com / stoutner / privacybrowser / helpers / AdHelper.java
index d1638c7386582faab50cf7c40ba83ddd86e57686..7de4e522dec4a6655c6c7e4237e231600115929a 100644 (file)
@@ -26,9 +26,6 @@ import android.os.Bundle;
 import android.view.View;
 import android.widget.RelativeLayout;
 
-import com.google.ads.consent.ConsentInfoUpdateListener;
-import com.google.ads.consent.ConsentInformation;
-import com.google.ads.consent.ConsentStatus;
 import com.google.ads.mediation.admob.AdMobAdapter;
 import com.google.android.gms.ads.AdRequest;
 import com.google.android.gms.ads.AdSize;
@@ -45,36 +42,21 @@ public class AdHelper {
             // Initialize mobile ads.
             MobileAds.initialize(applicationContext, googleAppId);
 
-            // Store the publisher ID in a string array.
-            String[] publisherIds = {"pub-5962503714887045"};
-
-            // Check to see if consent is needed in Europe to comply with the GDPR.
-            ConsentInformation consentInformation = ConsentInformation.getInstance(applicationContext);
-            consentInformation.requestConsentInfoUpdate(publisherIds, new ConsentInfoUpdateListener() {
-                @Override
-                public void onConsentInfoUpdated(ConsentStatus consentStatus) {
-                    if (consentStatus == ConsentStatus.UNKNOWN) {  // The user has not yet consented to ads.
-                        // Display the ad consent dialog.
-                        DialogFragment adConsentDialogFragment = new AdConsentDialog();
-                        adConsentDialogFragment.show(fragmentManager, "Ad Consent");
-                    } else {  // The user has consented to ads.
-                        // Indicate the user is under age, which disables personalized advertising and remarketing.  https://developers.google.com/admob/android/eu-consent
-                        consentInformation.setTagForUnderAgeOfConsent(true);
-
-                        // Load an ad.
-                        loadAd(view, applicationContext, adUnitId);
-                    }
-                }
-
-                @Override
-                public void onFailedToUpdateConsentInfo(String reason) {  // The user is not in Europe.
-                    // Indicate the user is under age, which disables personalized advertising and remarketing.  https://developers.google.com/admob/android/eu-consent
-                    consentInformation.setTagForUnderAgeOfConsent(true);
-
-                    // Load an ad.
-                    loadAd(view, applicationContext, adUnitId);
-                }
-            });
+            // Initialize the bookmarks database helper.  The `0` specifies a database version, but that is ignored and set instead using a constant in `AdConsentDatabaseHelper`.
+            AdConsentDatabaseHelper adConsentDatabaseHelper = new AdConsentDatabaseHelper(applicationContext, null, null, 0);
+
+            // Check to see if consent has been granted.
+            boolean adConsentGranted = adConsentDatabaseHelper.isGranted();
+
+            // Display the ad consent dialog if needed.
+            if (!adConsentGranted) {  // Ad consent has not been granted.
+                // Display the ad consent dialog.
+                DialogFragment adConsentDialogFragment = new AdConsentDialog();
+                adConsentDialogFragment.show(fragmentManager, "Ad Consent");
+            } else {  // Ad consent has been granted.
+                // Load an ad.
+                loadAd(view, applicationContext, adUnitId);
+            }
 
             // Set the initialized variable to true so this section doesn't run again.
             initialized = true;
@@ -105,16 +87,14 @@ public class AdHelper {
         // Display the new AdView.
         adViewParentLayout.addView(adView);
 
-        // Only request non-personalized ads.
+        // Only request non-personalized ads.  https://developers.google.com/ad-manager/mobile-ads-sdk/android/eu-consent#forward_consent_to_the_google_mobile_ads_sdk
         Bundle adSettingsBundle = new Bundle();
         adSettingsBundle.putString("npa", "1");
 
-        // Request a new ad.
+        // Build the ad request.
         AdRequest adRequest = new AdRequest.Builder().addNetworkExtrasBundle(AdMobAdapter.class, adSettingsBundle).build();
-        // Pixel test ads.
-        // AdRequest adRequest = new AdRequest.Builder().addTestDevice("20DAEEF7662E2238C99A509BE5D78A26").addNetworkExtrasBundle(AdMobAdapter.class, adSettingsBundle).build();
-        // Pixel 2 XL test ads.
-        // AdRequest adRequest = new AdRequest.Builder().addTestDevice("137D42984218CEECDFD11927BB7D6416").addNetworkExtrasBundle(AdMobAdapter.class, adSettingsBundle).build();
+
+        // Make it so.
         adView.loadAd(adRequest);
     }