Skip to content

Commit 8ec2a9d

Browse files
Add native ad support to Android Studio settings
1 parent 560115f commit 8ec2a9d

File tree

3 files changed

+89
-41
lines changed

3 files changed

+89
-41
lines changed

app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/AndroidStudioFragment.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,24 @@
11
package com.d4rk.androidtutorials.java.ui.screens.android;
22

33
import android.os.Bundle;
4+
import android.view.LayoutInflater;
45
import android.view.Menu;
56
import android.view.MenuInflater;
67
import android.view.MenuItem;
8+
import android.view.View;
9+
import android.view.ViewGroup;
710

811
import androidx.annotation.NonNull;
912
import androidx.appcompat.widget.SearchView;
13+
import androidx.annotation.Nullable;
1014
import androidx.preference.Preference;
1115
import androidx.preference.PreferenceCategory;
1216
import androidx.preference.PreferenceFragmentCompat;
1317
import androidx.preference.PreferenceScreen;
1418

1519
import com.d4rk.androidtutorials.java.R;
20+
import com.d4rk.androidtutorials.java.ads.views.NativeAdBannerView;
21+
import com.google.android.gms.ads.AdRequest;
1622

1723
public class AndroidStudioFragment extends PreferenceFragmentCompat {
1824

@@ -27,6 +33,21 @@ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
2733
setPreferencesFromResource(R.xml.preferences_android_studio, rootKey);
2834
}
2935

36+
@Override
37+
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
38+
@Nullable Bundle savedInstanceState) {
39+
return inflater.inflate(R.layout.fragment_android_studio, container, false);
40+
}
41+
42+
@Override
43+
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
44+
super.onViewCreated(view, savedInstanceState);
45+
NativeAdBannerView nativeAdView = view.findViewById(R.id.native_ad_view);
46+
if (nativeAdView != null) {
47+
nativeAdView.loadAd(new AdRequest.Builder().build());
48+
}
49+
}
50+
3051
@Override
3152
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
3253
super.onCreateOptionsMenu(menu, inflater);
Lines changed: 49 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,72 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<com.google.android.gms.ads.nativead.NativeAdView xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:app="http://schemas.android.com/apk/res-auto"
34
android:layout_width="match_parent"
45
android:layout_height="wrap_content">
56

6-
<LinearLayout
7-
android:id="@+id/ad_host"
7+
<com.google.android.material.card.MaterialCardView
8+
android:id="@+id/ad_card"
9+
style="@style/Widget.Material3.CardView.Outlined"
810
android:layout_width="match_parent"
911
android:layout_height="wrap_content"
10-
android:orientation="vertical"
11-
android:background="?attr/colorSurfaceContainer"
12-
android:paddingStart="16dp"
13-
android:paddingEnd="16dp"
14-
android:paddingTop="12dp"
15-
android:paddingBottom="12dp">
16-
17-
<include layout="@layout/ad_attribution" />
12+
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.CardView">
1813

1914
<LinearLayout
2015
android:layout_width="match_parent"
2116
android:layout_height="wrap_content"
22-
android:gravity="center_vertical"
23-
android:orientation="horizontal">
17+
android:orientation="vertical"
18+
android:background="?attr/colorSurfaceContainer"
19+
android:paddingStart="16dp"
20+
android:paddingEnd="16dp"
21+
android:paddingTop="12dp"
22+
android:paddingBottom="12dp">
2423

25-
<ImageView
26-
android:id="@+id/ad_app_icon"
27-
android:layout_width="32dp"
28-
android:layout_height="32dp"
29-
android:layout_marginEnd="12dp" />
24+
<include layout="@layout/ad_attribution" />
3025

3126
<LinearLayout
32-
android:layout_width="0dp"
27+
android:layout_width="match_parent"
3328
android:layout_height="wrap_content"
34-
android:layout_weight="1"
35-
android:orientation="vertical">
29+
android:gravity="center_vertical"
30+
android:orientation="horizontal">
3631

37-
<TextView
38-
android:id="@+id/ad_headline"
39-
android:layout_width="wrap_content"
32+
<ImageView
33+
android:id="@+id/ad_app_icon"
34+
android:layout_width="32dp"
35+
android:layout_height="32dp"
36+
android:layout_marginEnd="12dp" />
37+
38+
<LinearLayout
39+
android:layout_width="0dp"
4040
android:layout_height="wrap_content"
41-
android:ellipsize="end"
42-
android:maxLines="1"
43-
android:textAppearance="@style/TextAppearance.Material3.BodyMedium" />
41+
android:layout_weight="1"
42+
android:orientation="vertical">
43+
44+
<TextView
45+
android:id="@+id/ad_headline"
46+
android:layout_width="wrap_content"
47+
android:layout_height="wrap_content"
48+
android:ellipsize="end"
49+
android:maxLines="1"
50+
android:textAppearance="@style/TextAppearance.Material3.BodyMedium" />
4451

45-
<TextView
46-
android:id="@+id/ad_body"
52+
<TextView
53+
android:id="@+id/ad_body"
54+
android:layout_width="wrap_content"
55+
android:layout_height="wrap_content"
56+
android:ellipsize="end"
57+
android:maxLines="1"
58+
android:textAppearance="@style/TextAppearance.Material3.BodySmall" />
59+
</LinearLayout>
60+
61+
<com.google.android.material.button.MaterialButton
62+
android:id="@+id/ad_call_to_action"
63+
style="@style/Widget.Material3.Button.TextButton"
4764
android:layout_width="wrap_content"
4865
android:layout_height="wrap_content"
49-
android:ellipsize="end"
50-
android:maxLines="1"
51-
android:textAppearance="@style/TextAppearance.Material3.BodySmall" />
66+
android:minWidth="88dp"
67+
android:minHeight="40dp"
68+
android:layout_marginStart="8dp" />
5269
</LinearLayout>
53-
54-
<com.google.android.material.button.MaterialButton
55-
android:id="@+id/ad_call_to_action"
56-
style="@style/Widget.Material3.Button.TextButton"
57-
android:layout_width="wrap_content"
58-
android:layout_height="wrap_content"
59-
android:minWidth="88dp"
60-
android:minHeight="40dp"
61-
android:layout_marginStart="8dp" />
6270
</LinearLayout>
63-
</LinearLayout>
71+
</com.google.android.material.card.MaterialCardView>
6472
</com.google.android.gms.ads.nativead.NativeAdView>
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:app="http://schemas.android.com/apk/res-auto"
4+
android:layout_width="match_parent"
5+
android:layout_height="match_parent"
6+
android:orientation="vertical">
7+
8+
<androidx.recyclerview.widget.RecyclerView
9+
android:id="@android:id/list"
10+
android:layout_width="match_parent"
11+
android:layout_height="0dp"
12+
android:layout_weight="1" />
13+
14+
<com.d4rk.androidtutorials.java.ads.views.NativeAdBannerView
15+
android:id="@+id/native_ad_view"
16+
android:layout_width="match_parent"
17+
android:layout_height="wrap_content"
18+
app:nativeAdLayout="@layout/bottom_app_bar_native_ad" />
19+
</LinearLayout>

0 commit comments

Comments
 (0)