Skip to content

Commit 47d61e9

Browse files
Fix native ad view handling
1 parent c38e73a commit 47d61e9

File tree

2 files changed

+46
-21
lines changed

2 files changed

+46
-21
lines changed

app/src/main/java/com/d4rk/androidtutorials/java/ads/managers/NativeAdLoader.java

Lines changed: 44 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -36,33 +36,56 @@ public static void load(@NonNull Context context, @NonNull ViewGroup container)
3636
}
3737

3838
private static void populateNativeAdView(@NonNull NativeAd nativeAd, @NonNull NativeAdView adView) {
39-
adView.setMediaView((MediaView) adView.findViewById(R.id.ad_media));
40-
adView.setHeadlineView(adView.findViewById(R.id.ad_headline));
41-
adView.setBodyView(adView.findViewById(R.id.ad_body));
42-
adView.setCallToActionView(adView.findViewById(R.id.ad_call_to_action));
43-
adView.setIconView(adView.findViewById(R.id.ad_app_icon));
39+
MediaView mediaView = adView.findViewById(R.id.ad_media);
40+
TextView headlineView = adView.findViewById(R.id.ad_headline);
41+
TextView bodyView = adView.findViewById(R.id.ad_body);
42+
Button callToActionView = adView.findViewById(R.id.ad_call_to_action);
43+
ImageView iconView = adView.findViewById(R.id.ad_app_icon);
4444

45-
((TextView) adView.getHeadlineView()).setText(nativeAd.getHeadline());
45+
adView.setMediaView(mediaView);
46+
adView.setHeadlineView(headlineView);
47+
adView.setBodyView(bodyView);
48+
adView.setCallToActionView(callToActionView);
49+
adView.setIconView(iconView);
4650

47-
if (nativeAd.getBody() == null) {
48-
adView.getBodyView().setVisibility(View.GONE);
49-
} else {
50-
adView.getBodyView().setVisibility(View.VISIBLE);
51-
((TextView) adView.getBodyView()).setText(nativeAd.getBody());
51+
if (headlineView != null) {
52+
headlineView.setText(nativeAd.getHeadline());
5253
}
5354

54-
if (nativeAd.getCallToAction() == null) {
55-
adView.getCallToActionView().setVisibility(View.GONE);
56-
} else {
57-
adView.getCallToActionView().setVisibility(View.VISIBLE);
58-
((Button) adView.getCallToActionView()).setText(nativeAd.getCallToAction());
55+
if (bodyView != null) {
56+
if (nativeAd.getBody() == null) {
57+
bodyView.setVisibility(View.GONE);
58+
} else {
59+
bodyView.setVisibility(View.VISIBLE);
60+
bodyView.setText(nativeAd.getBody());
61+
}
5962
}
6063

61-
if (nativeAd.getIcon() == null) {
62-
adView.getIconView().setVisibility(View.GONE);
63-
} else {
64-
((ImageView) adView.getIconView()).setImageDrawable(nativeAd.getIcon().getDrawable());
65-
adView.getIconView().setVisibility(View.VISIBLE);
64+
if (callToActionView != null) {
65+
if (nativeAd.getCallToAction() == null) {
66+
callToActionView.setVisibility(View.GONE);
67+
} else {
68+
callToActionView.setVisibility(View.VISIBLE);
69+
callToActionView.setText(nativeAd.getCallToAction());
70+
}
71+
}
72+
73+
if (iconView != null) {
74+
if (nativeAd.getIcon() == null) {
75+
iconView.setVisibility(View.GONE);
76+
} else {
77+
iconView.setImageDrawable(nativeAd.getIcon().getDrawable());
78+
iconView.setVisibility(View.VISIBLE);
79+
}
80+
}
81+
82+
if (mediaView != null) {
83+
if (nativeAd.getMediaContent() == null) {
84+
mediaView.setVisibility(View.GONE);
85+
} else {
86+
mediaView.setMediaContent(nativeAd.getMediaContent());
87+
mediaView.setVisibility(View.VISIBLE);
88+
}
6689
}
6790

6891
adView.setNativeAd(nativeAd);

app/src/main/res/layout/native_ad.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
android:id="@+id/ad_media"
2020
android:layout_width="match_parent"
2121
android:layout_height="180dp"
22+
android:minWidth="120dp"
23+
android:minHeight="120dp"
2224
android:visibility="gone" />
2325

2426
<LinearLayout

0 commit comments

Comments
 (0)