Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions app/src/main/java/com/d4rk/androidtutorials/java/ads/AdUtils.java
Original file line number Diff line number Diff line change
@@ -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();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -138,7 +138,7 @@ public void onDestroyView() {

private void ensureMobileAdsInitialized() {
if (!mobileAdsInitialized) {
MobileAds.initialize(requireContext());
AdUtils.initialize(requireContext());
mobileAdsInitialized = true;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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"))));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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<Shortcut> shortcuts = List.of(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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"))));

Expand Down
Loading