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
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import com.d4rk.androidtutorials.java.databinding.FragmentAboutBinding;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
import com.d4rk.androidtutorials.java.utils.ConsentUtils;

import me.zhanghai.android.fastscroll.FastScrollerBuilder;

Expand All @@ -41,8 +42,13 @@ public android.view.View onCreateView(@NonNull android.view.LayoutInflater infla

new FastScrollerBuilder(binding.scrollView).useMd2Style().build();

MobileAds.initialize(requireContext());
binding.adView.loadAd(new AdRequest.Builder().build());
if (ConsentUtils.canShowAds(requireContext())) {
MobileAds.initialize(requireContext());
binding.adView.setVisibility(android.view.View.VISIBLE);
binding.adView.loadAd(new AdRequest.Builder().build());
} else {
binding.adView.setVisibility(android.view.View.GONE);
}

String version = aboutViewModel.getVersionString();
binding.textViewAppVersion.setText(version);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
import com.google.android.material.card.MaterialCardView;
import com.google.android.material.shape.CornerFamily;
import com.google.android.material.shape.ShapeAppearanceModel;
import com.d4rk.androidtutorials.java.utils.ConsentUtils;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
Expand All @@ -54,6 +55,7 @@ public class AndroidStudioFragment extends Fragment {
private static boolean mobileAdsInitialized = false;
private final List<Object> allItems = new ArrayList<>();
private LessonsAdapter adapter;
private boolean showAds;

@Nullable
@Override
Expand All @@ -65,15 +67,20 @@ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup c
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ensureMobileAdsInitialized();
showAds = ConsentUtils.canShowAds(requireContext());
if (showAds) {
ensureMobileAdsInitialized();
}
RecyclerView list = view.findViewById(R.id.lessons_list);
list.setLayoutManager(new LinearLayoutManager(requireContext()));
adapter = new LessonsAdapter();
list.setAdapter(adapter);
list.addItemDecoration(new LessonAdSpacingDecoration(requireContext()));
if (showAds) {
list.addItemDecoration(new LessonAdSpacingDecoration(requireContext()));
}
allItems.clear();
allItems.addAll(loadItems());
populateAdapter(allItems);
populateAdapter(allItems, showAds);

MenuHost menuHost = requireActivity();
menuHost.addMenuProvider(new MenuProvider() {
Expand All @@ -87,14 +94,14 @@ public void onCreateMenu(@NonNull Menu menu, @NonNull MenuInflater menuInflater)
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
filterLessons(query);
return true;
filterLessons(query);
return true;
}

@Override
public boolean onQueryTextChange(String newText) {
filterLessons(newText);
return true;
filterLessons(newText);
return true;
}
});
}
Expand Down Expand Up @@ -174,7 +181,7 @@ private List<Object> loadItems() {
return items;
}

private void populateAdapter(List<Object> source) {
private void populateAdapter(List<Object> source, boolean showAds) {
List<Object> items = new ArrayList<>();
List<Integer> eligible = new ArrayList<>();
int lessonCount = 0;
Expand All @@ -190,7 +197,7 @@ private void populateAdapter(List<Object> source) {
firstInCategory = false;
}
}
int adCount = lessonCount / 3;
int adCount = showAds ? lessonCount / 3 : 0;
Collections.shuffle(eligible, new Random());
if (adCount > eligible.size()) {
adCount = eligible.size();
Expand All @@ -214,7 +221,7 @@ private void populateAdapter(List<Object> source) {
private void filterLessons(String query) {
String lower = query == null ? "" : query.toLowerCase();
if (lower.isEmpty()) {
populateAdapter(allItems);
populateAdapter(allItems, showAds);
return;
}
List<Object> filtered = new ArrayList<>();
Expand All @@ -234,7 +241,7 @@ private void filterLessons(String query) {
}
}
}
populateAdapter(filtered);
populateAdapter(filtered, showAds);
}

private static class AdItem {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import com.d4rk.androidtutorials.java.databinding.FragmentHomeBinding;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
import com.d4rk.androidtutorials.java.utils.ConsentUtils;

import me.zhanghai.android.fastscroll.FastScrollerBuilder;

Expand All @@ -29,14 +30,14 @@ public class HomeFragment extends Fragment {
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
binding = FragmentHomeBinding.inflate(inflater, container, false);
initializeAds();
return binding.getRoot();
}

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
homeViewModel = new ViewModelProvider(this).get(HomeViewModel.class);
initializeAds();
homeViewModel.setAnnouncements(
getString(com.d4rk.androidtutorials.java.R.string.announcement_title),
getString(com.d4rk.androidtutorials.java.R.string.announcement_subtitle)
Expand Down Expand Up @@ -84,9 +85,17 @@ public void onDestroyView() {
}

private void initializeAds() {
MobileAds.initialize(requireContext());
binding.smallBannerAd.loadAd(new AdRequest.Builder().build());
binding.largeBannerAd.loadAd(new AdRequest.Builder().build());
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);
} else {
binding.smallBannerAd.setVisibility(View.GONE);
binding.largeBannerAd.setVisibility(View.GONE);
}
}

private void shareTip(String tip) {
Expand Down