diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ads/AdUtils.java b/app/src/main/java/com/d4rk/androidtutorials/java/ads/AdUtils.java new file mode 100644 index 00000000..23acf6cc --- /dev/null +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ads/AdUtils.java @@ -0,0 +1,34 @@ +package com.d4rk.androidtutorials.java.ads; + +import android.content.Context; +import android.view.View; + +import com.d4rk.androidtutorials.java.ads.views.NativeAdBannerView; +import com.google.android.gms.ads.AdRequest; +import com.google.android.gms.ads.AdView; +import com.google.android.gms.ads.MobileAds; + +public final class AdUtils { + private static boolean initialized = false; + + private AdUtils() { + // no-op + } + + public static synchronized void initialize(Context context) { + if (!initialized) { + MobileAds.initialize(context.getApplicationContext()); + initialized = true; + } + } + + public static void loadBanner(View adView) { + if (adView instanceof AdView view) { + initialize(view.getContext()); + view.loadAd(new AdRequest.Builder().build()); + } else if (adView instanceof NativeAdBannerView nativeView) { + initialize(nativeView.getContext()); + nativeView.loadAd(); + } + } +} diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ads/managers/AppOpenAd.java b/app/src/main/java/com/d4rk/androidtutorials/java/ads/managers/AppOpenAd.java index 1ba69e2f..53edf4ee 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ads/managers/AppOpenAd.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ads/managers/AppOpenAd.java @@ -18,7 +18,7 @@ import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.FullScreenContentCallback; import com.google.android.gms.ads.LoadAdError; -import com.google.android.gms.ads.MobileAds; +import com.d4rk.androidtutorials.java.ads.AdUtils; import com.google.android.gms.ads.appopen.AppOpenAd.AppOpenAdLoadCallback; import java.util.Date; @@ -35,10 +35,7 @@ public class AppOpenAd extends Application implements ActivityLifecycleCallbacks public void onCreate() { super.onCreate(); registerActivityLifecycleCallbacks(this); - MobileAds.initialize( - this, - initializationStatus -> { - }); + AdUtils.initialize(this); CookieManager.getInstance(); ProcessLifecycleOwner.get().getLifecycle().addObserver(this); appOpenAdManager = new AppOpenAdManager(this); diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/data/repository/DefaultSupportRepository.java b/app/src/main/java/com/d4rk/androidtutorials/java/data/repository/DefaultSupportRepository.java index 54225f15..fa92860a 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/data/repository/DefaultSupportRepository.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/data/repository/DefaultSupportRepository.java @@ -12,7 +12,7 @@ import com.android.billingclient.api.ProductDetails; import com.android.billingclient.api.QueryProductDetailsParams; import com.google.android.gms.ads.AdRequest; -import com.google.android.gms.ads.MobileAds; +import com.d4rk.androidtutorials.java.ads.AdUtils; import java.util.ArrayList; import java.util.Collections; @@ -150,7 +150,7 @@ public BillingFlowLauncher initiatePurchase(String productId) { * can be done here if needed for the support screen). */ public AdRequest initMobileAds() { - MobileAds.initialize(context); + AdUtils.initialize(context); return new AdRequest.Builder().build(); } diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/about/AboutFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/about/AboutFragment.java index a9f45463..1b019b03 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/about/AboutFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/about/AboutFragment.java @@ -18,8 +18,7 @@ import com.d4rk.androidtutorials.java.R; import com.d4rk.androidtutorials.java.databinding.FragmentAboutBinding; import com.d4rk.androidtutorials.java.utils.ConsentUtils; -import com.google.android.gms.ads.AdRequest; -import com.google.android.gms.ads.MobileAds; +import com.d4rk.androidtutorials.java.ads.AdUtils; import dagger.hilt.android.AndroidEntryPoint; import me.zhanghai.android.fastscroll.FastScrollerBuilder; @@ -42,9 +41,8 @@ public android.view.View onCreateView(@NonNull android.view.LayoutInflater infla new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); if (ConsentUtils.canShowAds(requireContext())) { - MobileAds.initialize(requireContext()); binding.adView.setVisibility(android.view.View.VISIBLE); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); } else { binding.adView.setVisibility(android.view.View.GONE); } diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/AndroidStudioFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/AndroidStudioFragment.java index a8dfbb95..30284a96 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/AndroidStudioFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/AndroidStudioFragment.java @@ -34,7 +34,7 @@ import com.d4rk.androidtutorials.java.databinding.ItemAndroidStudioLessonBinding; import com.google.android.gms.ads.AdListener; import com.google.android.gms.ads.LoadAdError; -import com.google.android.gms.ads.MobileAds; +import com.d4rk.androidtutorials.java.ads.AdUtils; import com.google.android.material.card.MaterialCardView; import com.google.android.material.textview.MaterialTextView; import com.google.android.material.shape.CornerFamily; @@ -138,7 +138,7 @@ public void onDestroyView() { private void ensureMobileAdsInitialized() { if (!mobileAdsInitialized) { - MobileAds.initialize(requireContext()); + AdUtils.initialize(requireContext()); mobileAdsInitialized = true; } } diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/history/AndroidHistory.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/history/AndroidHistory.java index e500df45..271762e5 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/history/AndroidHistory.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/history/AndroidHistory.java @@ -5,8 +5,7 @@ import com.d4rk.androidtutorials.java.databinding.ActivityAndroidHistoryBinding; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate; -import com.google.android.gms.ads.AdRequest; -import com.google.android.gms.ads.MobileAds; +import com.d4rk.androidtutorials.java.ads.AdUtils; import me.zhanghai.android.fastscroll.FastScrollerBuilder; @@ -16,12 +15,10 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActivityAndroidHistoryBinding binding = ActivityAndroidHistoryBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); - MobileAds.initialize(this); - EdgeToEdgeDelegate.apply(this, binding.scrollView); - binding.adView.loadAd(new AdRequest.Builder().build()); - binding.adViewBottom.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); + AdUtils.loadBanner(binding.adViewBottom); new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); } } \ No newline at end of file diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/permissions/PermissionsTutorialActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/permissions/PermissionsTutorialActivity.java index a46c33cd..c2c4529b 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/permissions/PermissionsTutorialActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/permissions/PermissionsTutorialActivity.java @@ -7,8 +7,7 @@ import com.d4rk.androidtutorials.java.databinding.ActivityPermissionsTutorialBinding; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate; -import com.google.android.gms.ads.AdRequest; -import com.google.android.gms.ads.MobileAds; +import com.d4rk.androidtutorials.java.ads.AdUtils; import me.zhanghai.android.fastscroll.FastScrollerBuilder; @@ -18,12 +17,10 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); com.d4rk.androidtutorials.java.databinding.ActivityPermissionsTutorialBinding binding = ActivityPermissionsTutorialBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); - MobileAds.initialize(this); - EdgeToEdgeDelegate.apply(this, binding.scrollView); - binding.adViewBottom.loadAd(new AdRequest.Builder().build()); - binding.adViewLarge.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adViewBottom); + AdUtils.loadBanner(binding.adViewLarge); new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); binding.buttonMore.setOnClickListener(v -> startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://developer.android.com/guide/topics/permissions/overview")))); } diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/sdk/AndroidSDK.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/sdk/AndroidSDK.java index 58b1fd2e..0fb9e9f6 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/sdk/AndroidSDK.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/sdk/AndroidSDK.java @@ -12,8 +12,7 @@ import com.d4rk.androidtutorials.java.databinding.ActivityAndroidSdkBinding; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate; -import com.google.android.gms.ads.AdRequest; -import com.google.android.gms.ads.MobileAds; +import com.d4rk.androidtutorials.java.ads.AdUtils; import java.util.Arrays; import java.util.List; @@ -65,13 +64,10 @@ public class AndroidSDK extends UpNavigationActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); binding = ActivityAndroidSdkBinding.inflate(getLayoutInflater()); - setContentView(binding.getRoot()); + setContentView(binding.getRoot()); EdgeToEdgeDelegate.apply(this, binding.scrollView); - MobileAds.initialize(this); - EdgeToEdgeDelegate.apply(this, binding.scrollView); - - binding.adViewBottom.loadAd(new AdRequest.Builder().build()); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adViewBottom); + AdUtils.loadBanner(binding.adView); new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); createDynamicTable(); diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/ShortcutsActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/ShortcutsActivity.java index f0840bf1..084c3e54 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/ShortcutsActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/ShortcutsActivity.java @@ -11,8 +11,7 @@ import com.d4rk.androidtutorials.java.databinding.ActivityShortcutsBinding; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate; -import com.google.android.gms.ads.AdRequest; -import com.google.android.gms.ads.MobileAds; +import com.d4rk.androidtutorials.java.ads.AdUtils; public class ShortcutsActivity extends UpNavigationActivity { @Override @@ -21,10 +20,7 @@ protected void onCreate(Bundle savedInstanceState) { ActivityShortcutsBinding binding = ActivityShortcutsBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); - EdgeToEdgeDelegate.apply(this, binding.container); - - MobileAds.initialize(this); - binding.adViewBottom.loadAd(new AdRequest.Builder().build()); + EdgeToEdgeDelegate.apply(this, binding.container); AdUtils.loadBanner(binding.adViewBottom); getSupportFragmentManager().beginTransaction().replace(R.id.frame_layout_shortcuts, new SettingsFragment()).commit(); ActionBar supportActionBar = getSupportActionBar(); diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/BuildShortcutsActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/BuildShortcutsActivity.java index 3f66cf66..82c3c99e 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/BuildShortcutsActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/BuildShortcutsActivity.java @@ -5,8 +5,7 @@ import com.d4rk.androidtutorials.java.databinding.ActivityShortcutsBuildBinding; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate; -import com.google.android.gms.ads.AdRequest; -import com.google.android.gms.ads.MobileAds; +import com.d4rk.androidtutorials.java.ads.AdUtils; import me.zhanghai.android.fastscroll.FastScrollerBuilder; @@ -16,11 +15,9 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); com.d4rk.androidtutorials.java.databinding.ActivityShortcutsBuildBinding binding = ActivityShortcutsBuildBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); - MobileAds.initialize(this); - EdgeToEdgeDelegate.apply(this, binding.scrollView); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); } } \ No newline at end of file diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/CodeShortcutsActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/CodeShortcutsActivity.java index f752325c..b08e6535 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/CodeShortcutsActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/CodeShortcutsActivity.java @@ -5,8 +5,7 @@ import com.d4rk.androidtutorials.java.databinding.ActivityShortcutsCodeBinding; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate; -import com.google.android.gms.ads.AdRequest; -import com.google.android.gms.ads.MobileAds; +import com.d4rk.androidtutorials.java.ads.AdUtils; import me.zhanghai.android.fastscroll.FastScrollerBuilder; @@ -16,11 +15,9 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActivityShortcutsCodeBinding binding = ActivityShortcutsCodeBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); - MobileAds.initialize(this); - EdgeToEdgeDelegate.apply(this, binding.scrollView); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); } } \ No newline at end of file diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/DebuggingShortcutsActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/DebuggingShortcutsActivity.java index 299e431e..007ea11e 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/DebuggingShortcutsActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/DebuggingShortcutsActivity.java @@ -5,8 +5,7 @@ import com.d4rk.androidtutorials.java.databinding.ActivityShortcutsDebuggingBinding; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate; -import com.google.android.gms.ads.AdRequest; -import com.google.android.gms.ads.MobileAds; +import com.d4rk.androidtutorials.java.ads.AdUtils; import me.zhanghai.android.fastscroll.FastScrollerBuilder; @@ -18,10 +17,7 @@ protected void onCreate(Bundle savedInstanceState) { setContentView(binding.getRoot()); - EdgeToEdgeDelegate.apply(this, binding.scrollView); - - MobileAds.initialize(this); - binding.adView.loadAd(new AdRequest.Builder().build()); + EdgeToEdgeDelegate.apply(this, binding.scrollView); AdUtils.loadBanner(binding.adView); new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); } } \ No newline at end of file diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/GeneralShortcutsActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/GeneralShortcutsActivity.java index 84a46d72..a968fbd7 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/GeneralShortcutsActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/GeneralShortcutsActivity.java @@ -5,8 +5,7 @@ import com.d4rk.androidtutorials.java.databinding.ActivityShortcutsGeneralBinding; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate; -import com.google.android.gms.ads.AdRequest; -import com.google.android.gms.ads.MobileAds; +import com.d4rk.androidtutorials.java.ads.AdUtils; import me.zhanghai.android.fastscroll.FastScrollerBuilder; @@ -16,11 +15,9 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); com.d4rk.androidtutorials.java.databinding.ActivityShortcutsGeneralBinding binding = ActivityShortcutsGeneralBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); - MobileAds.initialize(this); - EdgeToEdgeDelegate.apply(this, binding.scrollView); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); } } \ No newline at end of file diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/NavigationAndSearchingShortcutsActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/NavigationAndSearchingShortcutsActivity.java index 2df13c08..50ae218f 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/NavigationAndSearchingShortcutsActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/NavigationAndSearchingShortcutsActivity.java @@ -14,8 +14,7 @@ import com.d4rk.androidtutorials.java.databinding.ActivityShortcutsNavigationAndSearchingBinding; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate; -import com.google.android.gms.ads.AdRequest; -import com.google.android.gms.ads.MobileAds; +import com.d4rk.androidtutorials.java.ads.AdUtils; import java.util.List; @@ -27,11 +26,9 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActivityShortcutsNavigationAndSearchingBinding binding = ActivityShortcutsNavigationAndSearchingBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); - MobileAds.initialize(this); - EdgeToEdgeDelegate.apply(this, binding.shortcutList); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); new FastScrollerBuilder(binding.shortcutList).useMd2Style().build(); List shortcuts = List.of( diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/RefactoringShortcutsActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/RefactoringShortcutsActivity.java index c777d090..43b68011 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/RefactoringShortcutsActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/RefactoringShortcutsActivity.java @@ -5,8 +5,7 @@ import com.d4rk.androidtutorials.java.databinding.ActivityShortcutsRefractoringBinding; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate; -import com.google.android.gms.ads.AdRequest; -import com.google.android.gms.ads.MobileAds; +import com.d4rk.androidtutorials.java.ads.AdUtils; import me.zhanghai.android.fastscroll.FastScrollerBuilder; @@ -16,11 +15,9 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); com.d4rk.androidtutorials.java.databinding.ActivityShortcutsRefractoringBinding binding = ActivityShortcutsRefractoringBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); - MobileAds.initialize(this); - EdgeToEdgeDelegate.apply(this, binding.scrollView); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); } } \ No newline at end of file diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/VersionControlShortcutsActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/VersionControlShortcutsActivity.java index 13fb6861..67b586df 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/VersionControlShortcutsActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/VersionControlShortcutsActivity.java @@ -5,8 +5,7 @@ import com.d4rk.androidtutorials.java.databinding.ActivityShortcutsVersionControlBinding; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate; -import com.google.android.gms.ads.AdRequest; -import com.google.android.gms.ads.MobileAds; +import com.d4rk.androidtutorials.java.ads.AdUtils; import me.zhanghai.android.fastscroll.FastScrollerBuilder; @@ -16,11 +15,9 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); com.d4rk.androidtutorials.java.databinding.ActivityShortcutsVersionControlBinding binding = ActivityShortcutsVersionControlBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); - MobileAds.initialize(this); - EdgeToEdgeDelegate.apply(this, binding.scrollView); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); } } \ No newline at end of file diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/viewbinding/ViewBindingTutorialActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/viewbinding/ViewBindingTutorialActivity.java index 4df35e93..ba3be064 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/viewbinding/ViewBindingTutorialActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/viewbinding/ViewBindingTutorialActivity.java @@ -16,7 +16,7 @@ import com.d4rk.androidtutorials.java.utils.CodeViewUtils; import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate; import com.d4rk.androidtutorials.java.utils.FontManager; -import com.google.android.gms.ads.AdRequest; +import com.d4rk.androidtutorials.java.ads.AdUtils; import java.io.BufferedReader; import java.io.IOException; @@ -38,8 +38,8 @@ protected void onCreate(Bundle savedInstanceState) { EdgeToEdgeDelegate.apply(this, binding.scrollView); - binding.adViewBottom.loadAd(new AdRequest.Builder().build()); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adViewBottom); + AdUtils.loadBanner(binding.adView); binding.moreAboutViewBindingButton.setOnClickListener(v -> startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://developer.android.com/topic/libraries/view-binding#java")))); diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/buttons/tabs/ButtonsTabCodeFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/buttons/tabs/ButtonsTabCodeFragment.java index fb2e8fd1..d91cdadc 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/buttons/tabs/ButtonsTabCodeFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/buttons/tabs/ButtonsTabCodeFragment.java @@ -17,7 +17,7 @@ import com.d4rk.androidtutorials.java.utils.CodeHighlighter; import com.d4rk.androidtutorials.java.utils.CodeViewUtils; import com.d4rk.androidtutorials.java.utils.FontManager; -import com.google.android.gms.ads.AdRequest; +import com.d4rk.androidtutorials.java.ads.AdUtils; import java.io.BufferedReader; import java.io.IOException; @@ -32,7 +32,7 @@ public class ButtonsTabCodeFragment extends Fragment { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { FragmentSameCodeBinding binding = FragmentSameCodeBinding.inflate(inflater, container, false); new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext()); Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs); diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/buttons/tabs/ButtonsTabLayoutFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/buttons/tabs/ButtonsTabLayoutFragment.java index cdc266da..8448aa51 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/buttons/tabs/ButtonsTabLayoutFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/buttons/tabs/ButtonsTabLayoutFragment.java @@ -18,7 +18,7 @@ import com.d4rk.androidtutorials.java.utils.CodeHighlighter; import com.d4rk.androidtutorials.java.utils.CodeViewUtils; import com.d4rk.androidtutorials.java.utils.FontManager; -import com.google.android.gms.ads.AdRequest; +import com.d4rk.androidtutorials.java.ads.AdUtils; import java.io.BufferedReader; import java.io.IOException; @@ -37,7 +37,7 @@ public class ButtonsTabLayoutFragment extends Fragment { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { FragmentButtonsLayoutBinding binding = FragmentButtonsLayoutBinding.inflate(inflater, container, false); new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext()); Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs); diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/clock/tabs/ClockTabCodeFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/clock/tabs/ClockTabCodeFragment.java index 7b3f231c..bb47fa2e 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/clock/tabs/ClockTabCodeFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/clock/tabs/ClockTabCodeFragment.java @@ -9,15 +9,13 @@ import androidx.fragment.app.Fragment; import com.d4rk.androidtutorials.java.databinding.FragmentNoCodeBinding; -import com.google.android.gms.ads.AdRequest; -import com.google.android.gms.ads.MobileAds; +import com.d4rk.androidtutorials.java.ads.AdUtils; public class ClockTabCodeFragment extends Fragment { @Override public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { com.d4rk.androidtutorials.java.databinding.FragmentNoCodeBinding binding = FragmentNoCodeBinding.inflate(inflater, container, false); - MobileAds.initialize(requireContext()); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); return binding.getRoot(); } } \ No newline at end of file diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/clock/tabs/ClockTabLayoutFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/clock/tabs/ClockTabLayoutFragment.java index 18ba23ad..1a1120d0 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/clock/tabs/ClockTabLayoutFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/clock/tabs/ClockTabLayoutFragment.java @@ -18,7 +18,7 @@ import com.d4rk.androidtutorials.java.utils.CodeHighlighter; import com.d4rk.androidtutorials.java.utils.CodeViewUtils; import com.d4rk.androidtutorials.java.utils.FontManager; -import com.google.android.gms.ads.AdRequest; +import com.d4rk.androidtutorials.java.ads.AdUtils; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -32,7 +32,7 @@ public class ClockTabLayoutFragment extends Fragment { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { FragmentClockLayoutBinding binding = FragmentClockLayoutBinding.inflate(inflater, container, false); new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext()); Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs); diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/data/room/tabs/RoomTabCodeFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/data/room/tabs/RoomTabCodeFragment.java index 83374bab..cd3c7eb6 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/data/room/tabs/RoomTabCodeFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/data/room/tabs/RoomTabCodeFragment.java @@ -17,7 +17,7 @@ import com.d4rk.androidtutorials.java.utils.CodeHighlighter; import com.d4rk.androidtutorials.java.utils.CodeViewUtils; import com.d4rk.androidtutorials.java.utils.FontManager; -import com.google.android.gms.ads.AdRequest; +import com.d4rk.androidtutorials.java.ads.AdUtils; import java.io.BufferedReader; import java.io.IOException; @@ -35,7 +35,7 @@ public class RoomTabCodeFragment extends Fragment { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { FragmentCodeBinding binding = FragmentCodeBinding.inflate(inflater, container, false); new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext()); Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs); diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/data/room/tabs/RoomTabLayoutFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/data/room/tabs/RoomTabLayoutFragment.java index fe2e70ea..cee185c5 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/data/room/tabs/RoomTabLayoutFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/data/room/tabs/RoomTabLayoutFragment.java @@ -17,7 +17,7 @@ import com.d4rk.androidtutorials.java.utils.CodeHighlighter; import com.d4rk.androidtutorials.java.utils.CodeViewUtils; import com.d4rk.androidtutorials.java.utils.FontManager; -import com.google.android.gms.ads.AdRequest; +import com.d4rk.androidtutorials.java.ads.AdUtils; import java.io.BufferedReader; import java.io.IOException; @@ -35,7 +35,7 @@ public class RoomTabLayoutFragment extends Fragment { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { FragmentLayoutBinding binding = FragmentLayoutBinding.inflate(inflater, container, false); new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext()); Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs); diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/linear/tabs/LinearLayoutTabCodeFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/linear/tabs/LinearLayoutTabCodeFragment.java index fd5a157e..d6102d9c 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/linear/tabs/LinearLayoutTabCodeFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/linear/tabs/LinearLayoutTabCodeFragment.java @@ -9,15 +9,13 @@ import androidx.fragment.app.Fragment; import com.d4rk.androidtutorials.java.databinding.FragmentNoCodeBinding; -import com.google.android.gms.ads.AdRequest; -import com.google.android.gms.ads.MobileAds; +import com.d4rk.androidtutorials.java.ads.AdUtils; public class LinearLayoutTabCodeFragment extends Fragment { @Override public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { com.d4rk.androidtutorials.java.databinding.FragmentNoCodeBinding binding = FragmentNoCodeBinding.inflate(inflater, container, false); - MobileAds.initialize(requireContext()); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); return binding.getRoot(); } } \ No newline at end of file diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/linear/tabs/LinearLayoutTabLayoutFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/linear/tabs/LinearLayoutTabLayoutFragment.java index 29e3e3d0..bfaa1577 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/linear/tabs/LinearLayoutTabLayoutFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/linear/tabs/LinearLayoutTabLayoutFragment.java @@ -17,7 +17,7 @@ import com.d4rk.androidtutorials.java.utils.CodeHighlighter; import com.d4rk.androidtutorials.java.utils.CodeViewUtils; import com.d4rk.androidtutorials.java.utils.FontManager; -import com.google.android.gms.ads.AdRequest; +import com.d4rk.androidtutorials.java.ads.AdUtils; import java.io.BufferedReader; import java.io.IOException; @@ -31,7 +31,7 @@ public class LinearLayoutTabLayoutFragment extends Fragment { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { FragmentLinearLayoutLayoutBinding binding = FragmentLinearLayoutLayoutBinding.inflate(inflater, container, false); new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext()); Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs); diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/relative/tabs/RelativeLayoutTabCodeFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/relative/tabs/RelativeLayoutTabCodeFragment.java index d1aee623..0028fadb 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/relative/tabs/RelativeLayoutTabCodeFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/relative/tabs/RelativeLayoutTabCodeFragment.java @@ -9,15 +9,13 @@ import androidx.fragment.app.Fragment; import com.d4rk.androidtutorials.java.databinding.FragmentNoCodeBinding; -import com.google.android.gms.ads.AdRequest; -import com.google.android.gms.ads.MobileAds; +import com.d4rk.androidtutorials.java.ads.AdUtils; public class RelativeLayoutTabCodeFragment extends Fragment { @Override public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { com.d4rk.androidtutorials.java.databinding.FragmentNoCodeBinding binding = FragmentNoCodeBinding.inflate(inflater, container, false); - MobileAds.initialize(requireContext()); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); return binding.getRoot(); } } \ No newline at end of file diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/relative/tabs/RelativeLayoutTabLayoutFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/relative/tabs/RelativeLayoutTabLayoutFragment.java index 5ad17ceb..89ed6305 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/relative/tabs/RelativeLayoutTabLayoutFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/relative/tabs/RelativeLayoutTabLayoutFragment.java @@ -17,7 +17,7 @@ import com.d4rk.androidtutorials.java.utils.CodeHighlighter; import com.d4rk.androidtutorials.java.utils.CodeViewUtils; import com.d4rk.androidtutorials.java.utils.FontManager; -import com.google.android.gms.ads.AdRequest; +import com.d4rk.androidtutorials.java.ads.AdUtils; import java.io.BufferedReader; import java.io.IOException; @@ -32,7 +32,7 @@ public class RelativeLayoutTabLayoutFragment extends Fragment { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { FragmentLayoutBinding binding = FragmentLayoutBinding.inflate(inflater, container, false); new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext()); Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs); diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/table/tabs/TableLayoutTabCodeFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/table/tabs/TableLayoutTabCodeFragment.java index 5462c45b..6c481695 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/table/tabs/TableLayoutTabCodeFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/table/tabs/TableLayoutTabCodeFragment.java @@ -9,15 +9,13 @@ import androidx.fragment.app.Fragment; import com.d4rk.androidtutorials.java.databinding.FragmentNoCodeBinding; -import com.google.android.gms.ads.AdRequest; -import com.google.android.gms.ads.MobileAds; +import com.d4rk.androidtutorials.java.ads.AdUtils; public class TableLayoutTabCodeFragment extends Fragment { @Override public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { com.d4rk.androidtutorials.java.databinding.FragmentNoCodeBinding binding = FragmentNoCodeBinding.inflate(inflater, container, false); - MobileAds.initialize(requireContext()); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); return binding.getRoot(); } } \ No newline at end of file diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/table/tabs/TableLayoutTabLayoutFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/table/tabs/TableLayoutTabLayoutFragment.java index 20c2e58b..9a219b8b 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/table/tabs/TableLayoutTabLayoutFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/table/tabs/TableLayoutTabLayoutFragment.java @@ -17,7 +17,7 @@ import com.d4rk.androidtutorials.java.utils.CodeHighlighter; import com.d4rk.androidtutorials.java.utils.CodeViewUtils; import com.d4rk.androidtutorials.java.utils.FontManager; -import com.google.android.gms.ads.AdRequest; +import com.d4rk.androidtutorials.java.ads.AdUtils; import java.io.BufferedReader; import java.io.IOException; @@ -32,7 +32,7 @@ public class TableLayoutTabLayoutFragment extends Fragment { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { FragmentLayoutBinding binding = FragmentLayoutBinding.inflate(inflater, container, false); new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext()); Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs); diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/networking/retrofit/tabs/RetrofitTabCodeFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/networking/retrofit/tabs/RetrofitTabCodeFragment.java index fb034ed0..ed991d06 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/networking/retrofit/tabs/RetrofitTabCodeFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/networking/retrofit/tabs/RetrofitTabCodeFragment.java @@ -17,7 +17,7 @@ import com.d4rk.androidtutorials.java.utils.CodeHighlighter; import com.d4rk.androidtutorials.java.utils.CodeViewUtils; import com.d4rk.androidtutorials.java.utils.FontManager; -import com.google.android.gms.ads.AdRequest; +import com.d4rk.androidtutorials.java.ads.AdUtils; import java.io.BufferedReader; import java.io.IOException; @@ -35,7 +35,7 @@ public class RetrofitTabCodeFragment extends Fragment { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { FragmentCodeBinding binding = FragmentCodeBinding.inflate(inflater, container, false); new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext()); Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs); diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/networking/retrofit/tabs/RetrofitTabLayoutFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/networking/retrofit/tabs/RetrofitTabLayoutFragment.java index a484472d..59d625db 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/networking/retrofit/tabs/RetrofitTabLayoutFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/networking/retrofit/tabs/RetrofitTabLayoutFragment.java @@ -17,7 +17,7 @@ import com.d4rk.androidtutorials.java.utils.CodeHighlighter; import com.d4rk.androidtutorials.java.utils.CodeViewUtils; import com.d4rk.androidtutorials.java.utils.FontManager; -import com.google.android.gms.ads.AdRequest; +import com.d4rk.androidtutorials.java.ads.AdUtils; import java.io.BufferedReader; import java.io.IOException; @@ -35,7 +35,7 @@ public class RetrofitTabLayoutFragment extends Fragment { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { FragmentLayoutBinding binding = FragmentLayoutBinding.inflate(inflater, container, false); new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext()); Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs); diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/progress/progressbar/tabs/ProgressBarTabCodeFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/progress/progressbar/tabs/ProgressBarTabCodeFragment.java index e3960037..0497aca7 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/progress/progressbar/tabs/ProgressBarTabCodeFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/progress/progressbar/tabs/ProgressBarTabCodeFragment.java @@ -17,7 +17,7 @@ import com.d4rk.androidtutorials.java.utils.CodeHighlighter; import com.d4rk.androidtutorials.java.utils.CodeViewUtils; import com.d4rk.androidtutorials.java.utils.FontManager; -import com.google.android.gms.ads.AdRequest; +import com.d4rk.androidtutorials.java.ads.AdUtils; import java.io.BufferedReader; import java.io.IOException; @@ -32,7 +32,7 @@ public class ProgressBarTabCodeFragment extends Fragment { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { FragmentCodeBinding binding = FragmentCodeBinding.inflate(inflater, container, false); new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext()); Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs); diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/progress/progressbar/tabs/ProgressBarTabLayoutFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/progress/progressbar/tabs/ProgressBarTabLayoutFragment.java index 825f6d2a..6c311f4d 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/progress/progressbar/tabs/ProgressBarTabLayoutFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/progress/progressbar/tabs/ProgressBarTabLayoutFragment.java @@ -17,7 +17,7 @@ import com.d4rk.androidtutorials.java.utils.CodeHighlighter; import com.d4rk.androidtutorials.java.utils.CodeViewUtils; import com.d4rk.androidtutorials.java.utils.FontManager; -import com.google.android.gms.ads.AdRequest; +import com.d4rk.androidtutorials.java.ads.AdUtils; import java.io.BufferedReader; import java.io.IOException; @@ -31,7 +31,7 @@ public class ProgressBarTabLayoutFragment extends Fragment { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { FragmentLinearLayoutLayoutBinding binding = FragmentLinearLayoutLayoutBinding.inflate(inflater, container, false); new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext()); Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs); diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/start/AndroidStartProjectActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/start/AndroidStartProjectActivity.java index ca2aa52e..0bb346f2 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/start/AndroidStartProjectActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/start/AndroidStartProjectActivity.java @@ -9,8 +9,7 @@ import com.d4rk.androidtutorials.java.databinding.ActivityAndroidStartProjectBinding; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate; -import com.google.android.gms.ads.AdRequest; -import com.google.android.gms.ads.MobileAds; +import com.d4rk.androidtutorials.java.ads.AdUtils; import me.zhanghai.android.fastscroll.FastScrollerBuilder; @@ -36,11 +35,8 @@ protected void onCreate(Bundle savedInstanceState) { return true; } return false; - }); - - MobileAds.initialize(this); - binding.adViewBottom.loadAd(new AdRequest.Builder().build()); - binding.adView.loadAd(new AdRequest.Builder().build()); + }); AdUtils.loadBanner(binding.adViewBottom); + AdUtils.loadBanner(binding.adView); new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); binding.textViewThirdStepSummary.setMovementMethod(LinkMovementMethod.getInstance()); } diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/images/tabs/ImagesTabCodeFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/images/tabs/ImagesTabCodeFragment.java index 30dbcc32..bc4eebba 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/images/tabs/ImagesTabCodeFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/images/tabs/ImagesTabCodeFragment.java @@ -9,15 +9,13 @@ import androidx.fragment.app.Fragment; import com.d4rk.androidtutorials.java.databinding.FragmentNoCodeBinding; -import com.google.android.gms.ads.AdRequest; -import com.google.android.gms.ads.MobileAds; +import com.d4rk.androidtutorials.java.ads.AdUtils; public class ImagesTabCodeFragment extends Fragment { @Override public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { com.d4rk.androidtutorials.java.databinding.FragmentNoCodeBinding binding = FragmentNoCodeBinding.inflate(inflater, container, false); - MobileAds.initialize(requireContext()); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); return binding.getRoot(); } } \ No newline at end of file diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/images/tabs/ImagesTabLayoutFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/images/tabs/ImagesTabLayoutFragment.java index 01e66e7e..244e532c 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/images/tabs/ImagesTabLayoutFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/images/tabs/ImagesTabLayoutFragment.java @@ -17,7 +17,7 @@ import com.d4rk.androidtutorials.java.utils.CodeHighlighter; import com.d4rk.androidtutorials.java.utils.CodeViewUtils; import com.d4rk.androidtutorials.java.utils.FontManager; -import com.google.android.gms.ads.AdRequest; +import com.d4rk.androidtutorials.java.ads.AdUtils; import java.io.BufferedReader; import java.io.IOException; @@ -32,7 +32,7 @@ public class ImagesTabLayoutFragment extends Fragment { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { FragmentLayoutBinding binding = FragmentLayoutBinding.inflate(inflater, container, false); new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext()); Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs); diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/tabs/CodeFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/tabs/CodeFragment.java index 2dcab1de..e75274ee 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/tabs/CodeFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/tabs/CodeFragment.java @@ -18,7 +18,7 @@ import com.d4rk.androidtutorials.java.utils.CodeHighlighter; import com.d4rk.androidtutorials.java.utils.CodeViewUtils; import com.d4rk.androidtutorials.java.utils.FontManager; -import com.google.android.gms.ads.AdRequest; +import com.d4rk.androidtutorials.java.ads.AdUtils; import java.io.BufferedReader; import java.io.IOException; @@ -57,7 +57,7 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, private void setupUI() { new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext()); Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs); diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/tabs/LayoutFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/tabs/LayoutFragment.java index 04f0d557..a4f23665 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/tabs/LayoutFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/tabs/LayoutFragment.java @@ -18,7 +18,7 @@ import com.d4rk.androidtutorials.java.utils.CodeHighlighter; import com.d4rk.androidtutorials.java.utils.CodeViewUtils; import com.d4rk.androidtutorials.java.utils.FontManager; -import com.google.android.gms.ads.AdRequest; +import com.d4rk.androidtutorials.java.ads.AdUtils; import java.io.BufferedReader; import java.io.IOException; @@ -57,7 +57,7 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, private void setupUI() { new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext()); Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs); diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/tabs/NoCodeFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/tabs/NoCodeFragment.java index be385d68..b8f71968 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/tabs/NoCodeFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/tabs/NoCodeFragment.java @@ -11,8 +11,7 @@ import com.d4rk.androidtutorials.java.R; import com.d4rk.androidtutorials.java.databinding.FragmentNoCodeBinding; -import com.google.android.gms.ads.AdRequest; -import com.google.android.gms.ads.MobileAds; +import com.d4rk.androidtutorials.java.ads.AdUtils; public class NoCodeFragment extends Fragment { private static final String ARG_MESSAGE = "arg_message"; @@ -31,8 +30,7 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { FragmentNoCodeBinding binding = FragmentNoCodeBinding.inflate(inflater, container, false); - MobileAds.initialize(requireContext()); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); String message = requireArguments().getString(ARG_MESSAGE, String.valueOf(R.string.no_java_code_needed)); binding.textViewNoCodeMessage.setText(message); diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/home/HomeFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/home/HomeFragment.java index c8627c20..09a7e671 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/home/HomeFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/home/HomeFragment.java @@ -14,8 +14,7 @@ import com.d4rk.androidtutorials.java.data.model.PromotedApp; import com.d4rk.androidtutorials.java.databinding.FragmentHomeBinding; import com.d4rk.androidtutorials.java.utils.ConsentUtils; -import com.google.android.gms.ads.AdRequest; -import com.google.android.gms.ads.MobileAds; +import com.d4rk.androidtutorials.java.ads.AdUtils; import dagger.hilt.android.AndroidEntryPoint; import me.zhanghai.android.fastscroll.FastScrollerBuilder; @@ -85,12 +84,10 @@ public void onDestroyView() { private void initializeAds() { if (ConsentUtils.canShowAds(requireContext())) { - MobileAds.initialize(requireContext()); binding.smallBannerAd.setVisibility(View.VISIBLE); binding.largeBannerAd.setVisibility(View.VISIBLE); - AdRequest request = new AdRequest.Builder().build(); - binding.smallBannerAd.loadAd(request); - binding.largeBannerAd.loadAd(request); + AdUtils.loadBanner(binding.smallBannerAd); + AdUtils.loadBanner(binding.largeBannerAd); } else { binding.smallBannerAd.setVisibility(View.GONE); binding.largeBannerAd.setVisibility(View.GONE); diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/main/MainActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/main/MainActivity.java index 2c02e929..f7fb82a8 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/main/MainActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/main/MainActivity.java @@ -42,8 +42,7 @@ import com.d4rk.androidtutorials.java.utils.ConsentUtils; import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate; import com.d4rk.androidtutorials.java.utils.ReviewHelper; -import com.google.android.gms.ads.AdRequest; -import com.google.android.gms.ads.MobileAds; +import com.d4rk.androidtutorials.java.ads.AdUtils; import com.google.android.material.navigation.NavigationBarView; import com.google.android.material.snackbar.Snackbar; import com.google.android.play.core.appupdate.AppUpdateInfo; @@ -80,12 +79,9 @@ public void onResume(@NonNull LifecycleOwner owner) { ConsentUtils.applyStoredConsent(MainActivity.this); if (mBinding != null && mBinding.adView != null) { if (ConsentUtils.canShowAds(MainActivity.this)) { - if (mBinding.adView.getVisibility() != View.VISIBLE) { - MobileAds.initialize(MainActivity.this); - mBinding.adPlaceholder.setVisibility(View.GONE); - mBinding.adView.setVisibility(View.VISIBLE); - mBinding.adView.loadAd(new AdRequest.Builder().build()); - } + mBinding.adPlaceholder.setVisibility(View.GONE); + mBinding.adView.setVisibility(View.VISIBLE); + AdUtils.loadBanner(mBinding.adView); } else { mBinding.adView.setVisibility(View.GONE); mBinding.adPlaceholder.setVisibility(View.VISIBLE); @@ -204,10 +200,9 @@ private void observeViewModel() { navBarView.setLabelVisibilityMode(uiState.bottomNavVisibility()); if (binding.adView != null) { if (ConsentUtils.canShowAds(this)) { - MobileAds.initialize(this); binding.adPlaceholder.setVisibility(View.GONE); binding.adView.setVisibility(View.VISIBLE); - binding.adView.loadAd(new AdRequest.Builder().build()); + AdUtils.loadBanner(binding.adView); } else { binding.adView.setVisibility(View.GONE); binding.adPlaceholder.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/support/SupportActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/support/SupportActivity.java index 0de20f93..d50d5ade 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/support/SupportActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/support/SupportActivity.java @@ -10,7 +10,7 @@ import com.d4rk.androidtutorials.java.data.repository.SupportRepository; import com.d4rk.androidtutorials.java.databinding.ActivitySupportBinding; import com.d4rk.androidtutorials.java.ui.components.navigation.BaseActivity; -import com.google.android.gms.ads.AdRequest; +import com.d4rk.androidtutorials.java.ads.AdUtils; import java.util.List; @@ -30,9 +30,8 @@ protected void onCreate(Bundle savedInstanceState) { supportViewModel = new ViewModelProvider(this).get(SupportViewModel.class); - AdRequest adRequest = supportViewModel.initMobileAds(); - binding.supportNativeAd.loadAd(adRequest); - binding.bannerAdView.loadAd(adRequest); + AdUtils.loadBanner(binding.supportNativeAd); + AdUtils.loadBanner(binding.bannerAdView); binding.buttonWebAd.setOnClickListener(v -> startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://bit.ly/3p8bpjj"))));