Skip to content

Commit 142d4bb

Browse files
nventimiglicopybara-github
authored andcommitted
Fixed Swift APIDemo custom playback controls issue.
PiperOrigin-RevId: 676514146
1 parent 6ac1e9a commit 142d4bb

File tree

1 file changed

+22
-22
lines changed

1 file changed

+22
-22
lines changed

kotlin/advanced/APIDemo/app/src/main/java/com/google/android/gms/example/apidemo/AdManagerCustomControlsFragment.kt

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,14 @@ import android.os.Bundle
1919
import android.view.LayoutInflater
2020
import android.view.View
2121
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
2326
import androidx.fragment.app.Fragment
2427
import com.google.android.gms.ads.AdListener
2528
import com.google.android.gms.ads.AdLoader
2629
import com.google.android.gms.ads.LoadAdError
27-
import com.google.android.gms.ads.MediaContent
2830
import com.google.android.gms.ads.VideoOptions
2931
import com.google.android.gms.ads.admanager.AdManagerAdRequest
3032
import com.google.android.gms.ads.nativead.MediaView
@@ -95,8 +97,6 @@ class AdManagerCustomControlsFragment : Fragment() {
9597
nativeAdBinding.adCallToAction.text = nativeAd.callToAction
9698
nativeAdBinding.adAppIcon.setImageDrawable(nativeAd.icon?.drawable)
9799

98-
nativeAd.mediaContent?.let { nativeAdBinding.adMedia.setMediaContent(it) }
99-
100100
// These assets aren't guaranteed to be in every NativeAd, so it's important to
101101
// check before trying to display them.
102102
if (nativeAd.price == null) {
@@ -120,12 +120,15 @@ class AdManagerCustomControlsFragment : Fragment() {
120120
nativeAdBinding.adStars.visibility = View.VISIBLE
121121
}
122122

123+
nativeAdBinding.adMedia.mediaContent = nativeAd.mediaContent
124+
nativeAdBinding.customVideoControls.initialize(
125+
nativeAd.mediaContent,
126+
fragmentBinding.cbStartMuted.isChecked,
127+
)
128+
123129
// Assign native ad object to the native view.
124130
nativeAdView.setNativeAd(nativeAd)
125131

126-
val mediaContent: MediaContent? = nativeAd.mediaContent
127-
mediaContent?.let { fragmentBinding.customControls.setMediaContent(it) }
128-
129132
fragmentBinding.btnRefresh.isEnabled = true
130133
}
131134

@@ -140,33 +143,32 @@ class AdManagerCustomControlsFragment : Fragment() {
140143
nativeCustomFormatAd: NativeCustomFormatAd,
141144
adView: View,
142145
) {
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)
145151

146152
headline.text = nativeCustomFormatAd.getText("Headline")
147153
caption.text = nativeCustomFormatAd.getText("Caption")
148-
149154
headline.setOnClickListener { nativeCustomFormatAd.performClick("Headline") }
150155

151-
val mediaPlaceholder = adView.findViewById<FrameLayout>(R.id.simplecustom_media_placeholder)
152-
153156
// Get the media content for the ad.
154157
val mediaContent = nativeCustomFormatAd.mediaContent
155158

156159
// Apps can check the MediaContent's hasVideoContent property to
157160
// determine if the NativeCustomFormatAd has a video asset.
158161
if (mediaContent != null && mediaContent.hasVideoContent()) {
159-
val mediaView = MediaView(mediaPlaceholder.getContext())
162+
mediaView.visibility = View.VISIBLE
160163
mediaView.mediaContent = mediaContent
164+
customControls.initialize(mediaContent, fragmentBinding.cbStartMuted.isChecked)
161165
} 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") }
168171
}
169-
mediaContent?.let { fragmentBinding.customControls.setMediaContent(it) }
170172

171173
fragmentBinding.btnRefresh.isEnabled = true
172174
}
@@ -257,7 +259,5 @@ class AdManagerCustomControlsFragment : Fragment() {
257259
.build()
258260

259261
adLoader.loadAd(AdManagerAdRequest.Builder().build())
260-
261-
fragmentBinding.customControls.reset()
262262
}
263263
}

0 commit comments

Comments
 (0)