@@ -19,12 +19,14 @@ import android.os.Bundle
19
19
import android.view.LayoutInflater
20
20
import android.view.View
21
21
import android.view.ViewGroup
22
- import android.widget.*
22
+ import android.widget.FrameLayout
23
+ import android.widget.ImageView
24
+ import android.widget.TextView
25
+ import android.widget.Toast
23
26
import androidx.fragment.app.Fragment
24
27
import com.google.android.gms.ads.AdListener
25
28
import com.google.android.gms.ads.AdLoader
26
29
import com.google.android.gms.ads.LoadAdError
27
- import com.google.android.gms.ads.MediaContent
28
30
import com.google.android.gms.ads.VideoOptions
29
31
import com.google.android.gms.ads.admanager.AdManagerAdRequest
30
32
import com.google.android.gms.ads.nativead.MediaView
@@ -95,8 +97,6 @@ class AdManagerCustomControlsFragment : Fragment() {
95
97
nativeAdBinding.adCallToAction.text = nativeAd.callToAction
96
98
nativeAdBinding.adAppIcon.setImageDrawable(nativeAd.icon?.drawable)
97
99
98
- nativeAd.mediaContent?.let { nativeAdBinding.adMedia.setMediaContent(it) }
99
-
100
100
// These assets aren't guaranteed to be in every NativeAd, so it's important to
101
101
// check before trying to display them.
102
102
if (nativeAd.price == null ) {
@@ -120,12 +120,15 @@ class AdManagerCustomControlsFragment : Fragment() {
120
120
nativeAdBinding.adStars.visibility = View .VISIBLE
121
121
}
122
122
123
+ nativeAdBinding.adMedia.mediaContent = nativeAd.mediaContent
124
+ nativeAdBinding.customVideoControls.initialize(
125
+ nativeAd.mediaContent,
126
+ fragmentBinding.cbStartMuted.isChecked,
127
+ )
128
+
123
129
// Assign native ad object to the native view.
124
130
nativeAdView.setNativeAd(nativeAd)
125
131
126
- val mediaContent: MediaContent ? = nativeAd.mediaContent
127
- mediaContent?.let { fragmentBinding.customControls.setMediaContent(it) }
128
-
129
132
fragmentBinding.btnRefresh.isEnabled = true
130
133
}
131
134
@@ -140,33 +143,32 @@ class AdManagerCustomControlsFragment : Fragment() {
140
143
nativeCustomFormatAd : NativeCustomFormatAd ,
141
144
adView : View ,
142
145
) {
143
- val headline = adView.findViewById<TextView >(R .id.simplecustom_headline)
144
- val caption = adView.findViewById<TextView >(R .id.simplecustom_caption)
146
+ val headline = adView.findViewById<TextView >(R .id.headline)
147
+ val caption = adView.findViewById<TextView >(R .id.caption)
148
+ val customControls = adView.findViewById<CustomControlsView >(R .id.custom_video_controls)
149
+ val mediaView = adView.findViewById<MediaView >(R .id.ad_media)
150
+ val imageView = adView.findViewById<ImageView >(R .id.ad_image)
145
151
146
152
headline.text = nativeCustomFormatAd.getText(" Headline" )
147
153
caption.text = nativeCustomFormatAd.getText(" Caption" )
148
-
149
154
headline.setOnClickListener { nativeCustomFormatAd.performClick(" Headline" ) }
150
155
151
- val mediaPlaceholder = adView.findViewById<FrameLayout >(R .id.simplecustom_media_placeholder)
152
-
153
156
// Get the media content for the ad.
154
157
val mediaContent = nativeCustomFormatAd.mediaContent
155
158
156
159
// Apps can check the MediaContent's hasVideoContent property to
157
160
// determine if the NativeCustomFormatAd has a video asset.
158
161
if (mediaContent != null && mediaContent.hasVideoContent()) {
159
- val mediaView = MediaView (mediaPlaceholder.getContext())
162
+ mediaView.visibility = View . VISIBLE
160
163
mediaView.mediaContent = mediaContent
164
+ customControls.initialize(mediaContent, fragmentBinding.cbStartMuted.isChecked)
161
165
} else {
162
- val mainImage = ImageView (activity)
163
- mainImage.adjustViewBounds = true
164
- mainImage.setImageDrawable(nativeCustomFormatAd.getImage(" MainImage" )?.drawable)
165
-
166
- mainImage.setOnClickListener { nativeCustomFormatAd.performClick(" MainImage" ) }
167
- mediaPlaceholder.addView(mainImage)
166
+ customControls.visibility = View .GONE
167
+ mediaView.visibility = View .GONE
168
+ imageView.visibility = View .VISIBLE
169
+ imageView.setImageDrawable(nativeCustomFormatAd.getImage(" MainImage" )?.drawable)
170
+ imageView.setOnClickListener { nativeCustomFormatAd.performClick(" MainImage" ) }
168
171
}
169
- mediaContent?.let { fragmentBinding.customControls.setMediaContent(it) }
170
172
171
173
fragmentBinding.btnRefresh.isEnabled = true
172
174
}
@@ -257,7 +259,5 @@ class AdManagerCustomControlsFragment : Fragment() {
257
259
.build()
258
260
259
261
adLoader.loadAd(AdManagerAdRequest .Builder ().build())
260
-
261
- fragmentBinding.customControls.reset()
262
262
}
263
263
}
0 commit comments