package com.afrogfx.Englishword10000.activities.base;
import android.app.Activity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.afrogfx.Englishword10000.BuildConfig;
import com.afrogfx.Englishword10000.R;
import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdLoader;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.formats.NativeAd;
import com.google.android.gms.ads.formats.UnifiedNativeAd;
import com.google.android.gms.ads.formats.UnifiedNativeAdView;
public class AdmobAds {
public static String PKG_APP = BuildConfig.APPLICATION_ID;
public static void loadNativeAds(Activity activity, final View view) {
final ViewGroup viewGroup = activity.findViewById(R.id.admob_native_container);
final UnifiedNativeAdView unifiedNativeAdView = activity.findViewById(R.id.native_ad_view);
unifiedNativeAdView.setMediaView(unifiedNativeAdView.findViewById(R.id.media_view));
unifiedNativeAdView.setHeadlineView(unifiedNativeAdView.findViewById(R.id.primary));
unifiedNativeAdView.setBodyView(unifiedNativeAdView.findViewById(R.id.secondary));
unifiedNativeAdView.setCallToActionView(unifiedNativeAdView.findViewById(R.id.cta));
unifiedNativeAdView.setIconView(unifiedNativeAdView.findViewById(R.id.icon));
unifiedNativeAdView.setAdvertiserView(unifiedNativeAdView.findViewById(R.id.tertiary));
AdLoader build = new AdLoader.Builder(activity, activity.getString(R.string.admob_native_id)) .forUnifiedNativeAd(new UnifiedNativeAd.OnUnifiedNativeAdLoadedListener() {
public void onUnifiedNativeAdLoaded(UnifiedNativeAd unifiedNativeAd) {
AdmobAds.populateNativeAdView(unifiedNativeAd, unifiedNativeAdView);
viewGroup.setVisibility(View.VISIBLE);
((View) viewGroup.getParent().getParent()).setVisibility(View.VISIBLE);
if (view != null) {
view.setVisibility(View.GONE);
}
}
}).withAdListener(new AdListener() {
public void onAdLoaded() {
super.onAdLoaded();
}
}).build();
if (BuildConfig.APPLICATION_ID.equals(PKG_APP)) {
build.loadAd(new AdRequest.Builder().build());
}
}
public static void populateNativeAdView(UnifiedNativeAd unifiedNativeAd, UnifiedNativeAdView unifiedNativeAdView) {
((TextView) unifiedNativeAdView.getHeadlineView()).setText(unifiedNativeAd.getHeadline());
((TextView) unifiedNativeAdView.getBodyView()).setText(unifiedNativeAd.getBody());
((TextView) unifiedNativeAdView.getCallToActionView()).setText(unifiedNativeAd.getCallToAction());
NativeAd.Image icon = unifiedNativeAd.getIcon();
if (icon == null) {
unifiedNativeAdView.getIconView().setVisibility(View.INVISIBLE);
} else {
((ImageView) unifiedNativeAdView.getIconView()).setImageDrawable(icon.getDrawable());
unifiedNativeAdView.getIconView().setVisibility(View.VISIBLE);
}
if (unifiedNativeAd.getAdvertiser() == null) {
unifiedNativeAdView.getAdvertiserView().setVisibility(View.INVISIBLE);
} else {
((TextView) unifiedNativeAdView.getAdvertiserView()).setText(unifiedNativeAd.getAdvertiser());
unifiedNativeAdView.getAdvertiserView().setVisibility(View.VISIBLE);
}
unifiedNativeAdView.setNativeAd(unifiedNativeAd);
}
}
Error in code
Cannot resolve symbol UnifiedNativeAdView
Cannot resolve symbol UnifiedNativeAdView
Cannot resolve method 'setMediaView(?)
Cannot resolve method 'findViewById(int)
Cannot resolve method 'setHeadlineView(?)
Cannot resolve method 'findViewById(int)
Cannot resolve method 'setBodyView(?)
Cannot resolve method 'findViewById(int)
Cannot resolve method 'setCallToActionView(?)
Cannot resolve method 'findViewById(int)
Cannot resolve method 'setIconView(?)
Cannot resolve method 'findViewById(int)
Cannot resolve method 'setAdvertiserView(?)
Cannot resolve method 'findViewById(int)
Cannot resolve symbol 'UnifiedNativeAdView
Cannot resolve method 'getHeadlineView()
Cannot resolve method 'getBodyView()
Cannot resolve method 'getCallToActionView()
Cannot resolve method 'getIconView()
Cannot resolve method 'getIconView()
Cannot resolve method 'getIconView()
Cannot resolve method 'getIconView()
Cannot resolve method 'getAdvertiserView
Cannot resolve method 'setNativeAd(unifiedNativeAd);
After V20, admob drop the use of UnifiedNativeAdView to use the new NativeAdView instead
like this: