package com.weikou.beibeivideo.util.ad;
|
|
import android.app.Activity;
|
import android.content.Context;
|
import android.util.Log;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.widget.FrameLayout;
|
|
import com.bytedance.sdk.openadsdk.AdSlot;
|
import com.bytedance.sdk.openadsdk.TTAdDislike;
|
import com.bytedance.sdk.openadsdk.TTAdManager;
|
import com.bytedance.sdk.openadsdk.TTAdNative;
|
import com.bytedance.sdk.openadsdk.TTNativeExpressAd;
|
import com.qq.e.ads.cfg.VideoOption;
|
import com.qq.e.ads.nativ.ADSize;
|
import com.qq.e.ads.nativ.NativeExpressAD;
|
import com.qq.e.ads.nativ.NativeExpressADView;
|
import com.qq.e.ads.nativ.express2.AdEventListener;
|
import com.qq.e.ads.nativ.express2.NativeExpressAD2;
|
import com.qq.e.ads.nativ.express2.NativeExpressADData2;
|
import com.qq.e.ads.nativ.express2.VideoOption2;
|
import com.qq.e.comm.util.AdError;
|
import com.weikou.beibeivideo.entity.ad.ExpressAdContainer;
|
import com.weikou.beibeivideo.util.BeibeiConstant;
|
import com.weikou.beibeivideo.util.DimenUtils;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* 信息流广告管理
|
*/
|
public class ExpressAdManager {
|
|
|
final static String TAG = "ExpressAdManager";
|
|
AdUtil.AD_TYPE sourceType = AdUtil.AD_TYPE.gdt;
|
|
private TTAdNative mTTAdNative;
|
private Context mContext;
|
|
|
public ExpressAdManager(AdUtil.AD_TYPE adSource, Context context) {
|
sourceType = adSource;
|
this.mContext = context;
|
if (sourceType == AdUtil.AD_TYPE.csj) {
|
TTAdManager ttAdManager = TTAdManagerHolder.get();
|
mTTAdNative = ttAdManager.createAdNative(context);
|
// TTAdManagerHolder.get().requestPermissionIfNecessary(context);
|
}
|
}
|
|
|
//加载小广告
|
|
/**
|
* 加载广告
|
*
|
* @param widthDP
|
* @param heightDP
|
* @param count
|
* @param adLoadListener
|
*/
|
public void loadAd(int widthDP, int heightDP, String pid, int count, final IAdLoadListener adLoadListener) {
|
if (sourceType == AdUtil.AD_TYPE.gdt) {
|
loadGDT(pid, widthDP, heightDP, count, new IGDTAdLoadListener() {
|
@Override
|
public void onSuccess(List<NativeExpressADView> adList) {
|
List<ExpressAdContainer> adContainerList = new ArrayList<>();
|
if (adList != null)
|
for (NativeExpressADView adView : adList) {
|
adContainerList.add(new ExpressAdContainer(adView));
|
}
|
adLoadListener.onSuccess(adContainerList);
|
}
|
|
@Override
|
public void onSuccess2(List<NativeExpressADData2> adList) {
|
|
}
|
}, mContext);
|
} else if (sourceType == AdUtil.AD_TYPE.gdt2) {
|
loadGDT2(pid, widthDP, heightDP, count, new IGDTAdLoadListener() {
|
@Override
|
public void onSuccess(List<NativeExpressADView> adList) {
|
|
}
|
|
@Override
|
public void onSuccess2(List<NativeExpressADData2> adList) {
|
List<ExpressAdContainer> adContainerList = new ArrayList<>();
|
if (adList != null)
|
for (NativeExpressADData2 ad : adList) {
|
adContainerList.add(new ExpressAdContainer(ad));
|
}
|
adLoadListener.onSuccess(adContainerList);
|
}
|
}, mContext);
|
|
} else if (sourceType == AdUtil.AD_TYPE.csj) {
|
loadCSJ(pid, widthDP, heightDP, count, new ICSJAdLoadListener() {
|
@Override
|
public void onSuccess(List<TTNativeExpressAd> adList) {
|
List<ExpressAdContainer> adContainerList = new ArrayList<>();
|
if (adList != null) {
|
for (TTNativeExpressAd adView : adList) {
|
adContainerList.add(new ExpressAdContainer(adView));
|
}
|
}
|
adLoadListener.onSuccess(adContainerList);
|
}
|
});
|
}
|
}
|
|
|
/**
|
* 加载推荐大图广告
|
*
|
* @param adLoadListener
|
*/
|
public void loadRecommendLargeAd(final IAdLoadListener adLoadListener) {
|
//加载大图
|
int deviceWidth = DimenUtils.getScreenWidth(mContext);
|
deviceWidth = DimenUtils.px2dip(mContext, deviceWidth);
|
int width = deviceWidth - 6;
|
int height = (int) (width * 0.8);
|
String pid = null;
|
if (sourceType == AdUtil.AD_TYPE.csj) {
|
pid = CSJConstant.RECOMMEND_BIG_IMG_AD;
|
height = (int) (width * 0.56);
|
} else if (sourceType == AdUtil.AD_TYPE.gdt) {
|
pid = BeibeiConstant.GDT_RECOMMAND_NATIVE;
|
} else if (sourceType == AdUtil.AD_TYPE.gdt2) {
|
pid = GDTConstant.PID_HOME_RECOMMEND_BIG_IMG;
|
}
|
//获取屏幕的宽
|
|
|
loadAd(width, height, pid, 1, adLoadListener);
|
}
|
|
/**
|
* 加载推荐小图广告
|
*
|
* @param adLoadListener
|
*/
|
public void loadRecommendSmallAd(final IAdLoadListener adLoadListener) {
|
//加载大图
|
String pid = null;
|
if (sourceType == AdUtil.AD_TYPE.csj) {
|
pid = "945375047";
|
} else if (sourceType == AdUtil.AD_TYPE.gdt) {
|
pid = BeibeiConstant.GDT_RECOMMAND_MIN_NATIVE;
|
}
|
//获取屏幕的宽
|
int deviceWidth = DimenUtils.getScreenWidth(mContext);
|
deviceWidth = DimenUtils.px2dip(mContext, deviceWidth);
|
int width = (deviceWidth - 30) / 2;
|
int height = (int) (width * 0.85);
|
loadAd(width, height, pid, 1, adLoadListener);
|
}
|
|
|
/**
|
* 视频播放器底部小广告
|
*
|
* @param adLoadListener
|
*/
|
public void loadVideoDetailPlayerBottomAd(final IAdLoadListener adLoadListener) {
|
//加载大图
|
String pid = null;
|
if (sourceType == AdUtil.AD_TYPE.csj) {
|
pid = "945375047";
|
} else if (sourceType == AdUtil.AD_TYPE.gdt2) {
|
pid = GDTConstant.PID_2_VIDEO_DETAIL_PLAY_EXPRESS1;
|
}
|
//获取屏幕的宽
|
int deviceWidth = DimenUtils.getScreenWidth(mContext);
|
deviceWidth = DimenUtils.px2dip(mContext, deviceWidth);
|
int width = (deviceWidth - 20);
|
int height = 80;
|
loadAd(width, height, pid, 1, adLoadListener);
|
}
|
|
|
/**
|
* 相关推荐底部小广告
|
*
|
* @param adLoadListener
|
*/
|
public void loadVideoDetailRelativeVideoBottomAd(final IAdLoadListener adLoadListener) {
|
//加载大图
|
String pid = null;
|
if (sourceType == AdUtil.AD_TYPE.csj) {
|
pid = "945375047";
|
} else if (sourceType == AdUtil.AD_TYPE.gdt2) {
|
pid = GDTConstant.PID_2_VIDEO_DETAIL_PLAY_EXPRESS2;
|
}
|
if (mContext == null)
|
return;
|
//获取屏幕的宽
|
int deviceWidth = DimenUtils.getScreenWidth(mContext);
|
deviceWidth = DimenUtils.px2dip(mContext, deviceWidth);
|
int width = (deviceWidth - 20);
|
int height = (int) (width * 0.5625);
|
loadAd(width, height, pid, 1, adLoadListener);
|
}
|
|
|
/**
|
* 加载分类小图
|
*
|
* @param adLoadListener
|
*/
|
public void loadRecommendCategorySmallAd(final IAdLoadListener adLoadListener) {
|
//加载大图
|
String pid = null;
|
if (sourceType == AdUtil.AD_TYPE.csj) {
|
pid = "945375047";
|
} else if (sourceType == AdUtil.AD_TYPE.gdt) {
|
pid = BeibeiConstant.GDT_RECOMMEND_CATEGORY_MIN_NATIVE;
|
}
|
//获取屏幕的宽
|
int deviceWidth = DimenUtils.getScreenWidth(mContext);
|
deviceWidth = DimenUtils.px2dip(mContext, deviceWidth);
|
int width = (deviceWidth - 30) / 2;
|
int height = (int) (width * 0.85);
|
loadAd(width, height, pid, 1, adLoadListener);
|
}
|
|
|
/**
|
* 搜索结果页小图
|
*
|
* @param adLoadListener
|
*/
|
public void loadSearchResultSmallAd(int count, final IAdLoadListener adLoadListener) {
|
//加载大图
|
String pid = null;
|
if (sourceType == AdUtil.AD_TYPE.csj) {
|
pid = "945379581";
|
} else if (sourceType == AdUtil.AD_TYPE.gdt) {
|
pid = BeibeiConstant.GDT_SEARCH_RESULT_MIN_NATIVE;
|
}
|
//获取屏幕的宽
|
int deviceWidth = DimenUtils.getScreenWidth(mContext);
|
deviceWidth = DimenUtils.px2dip(mContext, deviceWidth);
|
int width = (deviceWidth - 20);
|
int height = 75;
|
loadAd(width, height, pid, count, adLoadListener);
|
}
|
|
|
/**
|
* 加载视频列表小广告
|
*
|
* @param count
|
* @param columns
|
* @param adLoadListener
|
*/
|
public void loadVideoListSmallAd(int count, int columns, final IAdLoadListener adLoadListener) {
|
|
//加载大图
|
String pid = null;
|
if (sourceType == AdUtil.AD_TYPE.csj) {
|
pid = "945406595";
|
} else if (sourceType == AdUtil.AD_TYPE.gdt2) {
|
if (columns == 3)
|
pid = GDTConstant.PID_2_VIDEO_LIST_SMALL_AD_COLUMN3;
|
else if (columns == 2)
|
pid = GDTConstant.PID_2_VIDEO_LIST_SMALL_AD_COLUMN2;
|
}
|
//获取屏幕的宽
|
int deviceWidth = DimenUtils.getScreenWidth(mContext);
|
deviceWidth = DimenUtils.px2dip(mContext, deviceWidth);
|
int width = 0;
|
int height = 0;
|
|
if (columns == 2) {
|
width = (deviceWidth - 30) / 2;
|
height = (int) (width * 0.85);
|
} else if (columns == 3) {
|
width = (deviceWidth - 20 - 9 * 2) / 3;
|
height = (int) (width * 1.6);
|
}
|
|
loadAd(width, height, pid, count, adLoadListener);
|
}
|
|
|
/**
|
* 加载APP退出广告
|
*
|
* @param adLoadListener
|
*/
|
public void loadAppExitAd(final IAdLoadListener adLoadListener) {
|
//加载大图
|
String pid = null;
|
if (sourceType == AdUtil.AD_TYPE.csj) {
|
pid = CSJConstant.APP_EXIT;
|
} else if (sourceType == AdUtil.AD_TYPE.gdt) {
|
pid = BeibeiConstant.GDT_EXIT_DIALOG;
|
}
|
//获取屏幕的宽
|
int deviceWidth = DimenUtils.getScreenWidth(mContext);
|
deviceWidth = DimenUtils.px2dip(mContext, deviceWidth);
|
int width = deviceWidth * 3 / 4;
|
int height = (int) (width / 1.78f);
|
|
loadAd(width, height, pid, 1, adLoadListener);
|
}
|
|
|
/**
|
* 加载广点通广告
|
*
|
* @param positionId
|
* @param count
|
* @param adLoadListener
|
* @param context
|
*/
|
private void loadGDT(String positionId, int widthDP, int heightDP, int count, final IGDTAdLoadListener adLoadListener, Context context) {
|
NativeExpressAD nativeExpressAD = new NativeExpressAD(context, new ADSize(ADSize.FULL_WIDTH, ADSize.AUTO_HEIGHT),
|
positionId, new NativeExpressAD.NativeExpressADListener() {
|
|
@Override
|
public void onADLoaded(List<NativeExpressADView> list) {
|
if (adLoadListener != null)
|
adLoadListener.onSuccess(list);
|
}
|
|
@Override
|
public void onRenderFail(NativeExpressADView nativeExpressADView) {
|
|
}
|
|
@Override
|
public void onRenderSuccess(NativeExpressADView nativeExpressADView) {
|
|
}
|
|
@Override
|
public void onADExposure(NativeExpressADView nativeExpressADView) {
|
|
}
|
|
@Override
|
public void onADClicked(NativeExpressADView nativeExpressADView) {
|
|
}
|
|
@Override
|
public void onADClosed(NativeExpressADView nativeExpressADView) {
|
|
}
|
|
@Override
|
public void onADLeftApplication(NativeExpressADView nativeExpressADView) {
|
|
}
|
|
@Override
|
public void onADOpenOverlay(NativeExpressADView nativeExpressADView) {
|
|
}
|
|
@Override
|
public void onADCloseOverlay(NativeExpressADView nativeExpressADView) {
|
|
}
|
|
@Override
|
public void onNoAD(AdError adError) {
|
if (adLoadListener != null)
|
adLoadListener.onSuccess(null);
|
}
|
}); // 传入Activity
|
nativeExpressAD.setVideoOption(new VideoOption.Builder()
|
.setAutoPlayPolicy(VideoOption.AutoPlayPolicy.WIFI) // WIFI 环境下可以自动播放视频
|
.setAutoPlayMuted(true) // 自动播放时为静音
|
.build()); //
|
nativeExpressAD.setVideoPlayPolicy(VideoOption.VideoPlayPolicy.AUTO);
|
nativeExpressAD.loadAD(count);
|
}
|
|
/**
|
* 2.0版本广点通原生
|
*
|
* @param positionId
|
* @param widthDP
|
* @param heightDP
|
* @param count
|
* @param adLoadListener
|
* @param context
|
*/
|
private void loadGDT2(String positionId, int widthDP, int heightDP, int count, final IGDTAdLoadListener adLoadListener, Context context) {
|
NativeExpressAD2 nativeExpressAD2 = new NativeExpressAD2(context, positionId, new NativeExpressAD2.AdLoadListener() {
|
@Override
|
public void onLoadSuccess(List<NativeExpressADData2> list) {
|
if (adLoadListener != null)
|
adLoadListener.onSuccess2(list);
|
}
|
|
@Override
|
public void onNoAD(AdError adError) {
|
if (adLoadListener != null)
|
adLoadListener.onSuccess2(null);
|
}
|
});
|
|
nativeExpressAD2.setAdSize(widthDP, heightDP);
|
VideoOption2.Builder builder = new VideoOption2.Builder();
|
builder.setAutoPlayPolicy(VideoOption2.AutoPlayPolicy.WIFI) // WIFI 环境下可以自动播放视频
|
.setAutoPlayMuted(true) // 自动播放时为静音
|
.setDetailPageMuted(false) // 视频详情页播放时不静音
|
.setMaxVideoDuration(0) // 设置返回视频广告的最大视频时长(闭区间,可单独设置),单位:秒,默认为 0 代表无限制,合法输入为:5<=maxVideoDuration<=60. 此设置会影响广告填充,请谨慎设置
|
.setMinVideoDuration(0); // 设置返回视频广告的最小视频时长(闭区间,可单独设置),单位:秒,默认为 0 代表无限制, 此设置会影响广告填充,请谨慎设置
|
nativeExpressAD2.setVideoOption2(builder.build());
|
nativeExpressAD2.loadAd(count);
|
}
|
|
/**
|
* 穿山甲广告
|
*
|
* @param codeId
|
* @param width
|
* @param height
|
* @param count
|
* @param adLoadListener
|
*/
|
private void loadCSJ(String codeId, int width, int height, int count, final ICSJAdLoadListener adLoadListener) {
|
count = count > 3 ? 3 : count;
|
AdSlot adSlot = new AdSlot.Builder()
|
.setCodeId(codeId)
|
.setSupportDeepLink(true)
|
.setExpressViewAcceptedSize(width, height)
|
.setAdCount(count) //请求广告数量为1到3条
|
.build();
|
mTTAdNative.loadNativeExpressAd(adSlot, new TTAdNative.NativeExpressAdListener() {
|
@Override
|
public void onError(int i, String s) {
|
adLoadListener.onSuccess(null);
|
}
|
|
@Override
|
public void onNativeExpressAdLoad(List<TTNativeExpressAd> list) {
|
adLoadListener.onSuccess(list);
|
}
|
});
|
}
|
|
|
/**
|
* 渲染模板和填充广告
|
*
|
* @param activity
|
* @param ad
|
* @param fl_ad
|
* @param adEventListener
|
*/
|
public static void renderAndFillAd(Activity activity, final ExpressAdContainer ad, final FrameLayout fl_ad, final IAdEventListener adEventListener) {
|
|
if (ad == null) {//广告为空
|
fl_ad.setVisibility(View.GONE);
|
} else {
|
fl_ad.setVisibility(View.VISIBLE);
|
if (ad.getGdt() != null) {
|
if (fl_ad.getChildCount() > 0 && fl_ad.getChildAt(0) == ad.getGdt()) {
|
return;
|
}
|
fl_ad.removeAllViews();
|
ad.getGdt().render();
|
if (ad.getGdt().getParent() != null) {
|
((ViewGroup) ad.getGdt().getParent()).removeAllViews();
|
}
|
fl_ad.addView(ad.getGdt());
|
} else if (ad.getGdt2() != null) {
|
if (fl_ad.getChildCount() > 0 && fl_ad.getChildAt(0) == ad.getGdt2().getAdView()) {
|
return;
|
}
|
fl_ad.removeAllViews();
|
|
ad.getGdt2().setAdEventListener(new AdEventListener() {
|
@Override
|
public void onClick() {
|
|
}
|
|
@Override
|
public void onExposed() {
|
|
}
|
|
@Override
|
public void onRenderSuccess() {
|
if (ad.getGdt2().getAdView().getParent() != null) {
|
((ViewGroup) ad.getGdt2().getAdView().getParent()).removeAllViews();
|
}
|
fl_ad.addView(ad.getGdt2().getAdView());
|
}
|
|
@Override
|
public void onRenderFail() {
|
|
}
|
|
@Override
|
public void onAdClosed() {
|
if (adEventListener != null) {
|
adEventListener.closeAd(ad);
|
}
|
}
|
});
|
ad.getGdt2().render();
|
|
} else if (ad.getCsj() != null) {
|
if (fl_ad.getChildCount() > 0 && fl_ad.getChildAt(0) == ad.getCsj().getExpressAdView()) {
|
return;
|
}
|
|
ad.getCsj().setDislikeCallback(activity, new TTAdDislike.DislikeInteractionCallback() {
|
|
@Override
|
public void onSelected(int i, String s) {
|
if (adEventListener != null) {
|
adEventListener.closeAd(ad);
|
}
|
}
|
|
@Override
|
public void onCancel() {
|
|
}
|
|
@Override
|
public void onRefuse() {
|
|
}
|
});
|
ad.getCsj().render();
|
if (ad.getCsj().getExpressAdView().getParent() != null) {
|
((ViewGroup) ad.getCsj().getExpressAdView().getParent()).removeAllViews();
|
}
|
fl_ad.addView(ad.getCsj().getExpressAdView());
|
}
|
}
|
|
}
|
|
|
/**
|
* 渲染广告
|
*
|
* @param activity
|
* @param ad
|
* @param adRenderListener
|
* @param adEventListener
|
*/
|
public static void renderAd(Activity activity, final ExpressAdContainer ad, final IAdRenderListener adRenderListener, final IAdEventListener adEventListener) {
|
|
if (ad == null) {//广告为空
|
return;
|
}
|
|
if (ad.getGdt() != null) {
|
ad.getGdt().render();
|
List<ExpressAdContainer> list = new ArrayList<>();
|
list.add(ad);
|
if (adRenderListener != null)
|
adRenderListener.onRenderSuccess(list);
|
} else if (ad.getGdt2() != null) {
|
ad.getGdt2().setAdEventListener(new AdEventListener() {
|
@Override
|
public void onClick() {
|
|
}
|
|
@Override
|
public void onExposed() {
|
|
}
|
|
@Override
|
public void onRenderSuccess() {
|
List<ExpressAdContainer> list = new ArrayList<>();
|
list.add(ad);
|
if (adRenderListener != null)
|
adRenderListener.onRenderSuccess(list);
|
}
|
|
@Override
|
public void onRenderFail() {
|
List<ExpressAdContainer> list = new ArrayList<>();
|
list.add(ad);
|
if (adRenderListener != null)
|
adRenderListener.onRenderFail(list);
|
}
|
|
@Override
|
public void onAdClosed() {
|
if (adEventListener != null)
|
adEventListener.closeAd(ad);
|
}
|
});
|
ad.getGdt2().render();
|
|
} else if (ad.getCsj() != null) {
|
ad.getCsj().setExpressInteractionListener(new TTNativeExpressAd.ExpressAdInteractionListener() {
|
@Override
|
public void onAdClicked(View view, int i) {
|
|
}
|
|
@Override
|
public void onAdShow(View view, int i) {
|
|
}
|
|
@Override
|
public void onRenderFail(View view, String s, int i) {
|
List<ExpressAdContainer> list = new ArrayList<>();
|
list.add(ad);
|
if (adRenderListener != null)
|
adRenderListener.onRenderFail(list);
|
}
|
|
@Override
|
public void onRenderSuccess(View view, float v, float v1) {
|
Log.d(TAG, "onRenderSuccess");
|
List<ExpressAdContainer> list = new ArrayList<>();
|
list.add(ad);
|
if (adRenderListener != null)
|
adRenderListener.onRenderSuccess(list);
|
}
|
});
|
if (activity != null)
|
ad.getCsj().setDislikeCallback(activity, new TTAdDislike.DislikeInteractionCallback() {
|
|
@Override
|
public void onSelected(int i, String s) {
|
if (adEventListener != null) {
|
adEventListener.closeAd(ad);
|
}
|
}
|
|
@Override
|
public void onCancel() {
|
|
}
|
|
@Override
|
public void onRefuse() {
|
|
}
|
});
|
ad.getCsj().render();
|
}
|
|
|
}
|
|
/**
|
* 为广告绑定关闭事件
|
*
|
* @param activity
|
* @param ad
|
* @param adEventListener
|
*/
|
public static void bindCloseListener(Activity activity, final ExpressAdContainer ad, final IAdEventListener adEventListener) {
|
|
if (ad == null) {//广告为空
|
return;
|
}
|
|
if (ad.getGdt() != null) {
|
return;
|
} else if (ad.getGdt2() != null) {
|
ad.getGdt2().setAdEventListener(new AdEventListener() {
|
@Override
|
public void onClick() {
|
|
}
|
|
@Override
|
public void onExposed() {
|
|
}
|
|
@Override
|
public void onRenderSuccess() {
|
|
}
|
|
@Override
|
public void onRenderFail() {
|
}
|
|
@Override
|
public void onAdClosed() {
|
if (adEventListener != null)
|
adEventListener.closeAd(ad);
|
}
|
});
|
|
} else if (ad.getCsj() != null) {
|
ad.getCsj().setExpressInteractionListener(new TTNativeExpressAd.ExpressAdInteractionListener() {
|
@Override
|
public void onAdClicked(View view, int i) {
|
|
}
|
|
@Override
|
public void onAdShow(View view, int i) {
|
|
}
|
|
@Override
|
public void onRenderFail(View view, String s, int i) {
|
|
}
|
|
@Override
|
public void onRenderSuccess(View view, float v, float v1) {
|
|
}
|
});
|
ad.getCsj().setDislikeCallback(activity, new TTAdDislike.DislikeInteractionCallback() {
|
|
@Override
|
public void onSelected(int i, String s) {
|
if (adEventListener != null) {
|
adEventListener.closeAd(ad);
|
}
|
}
|
|
@Override
|
public void onCancel() {
|
|
}
|
|
@Override
|
public void onRefuse() {
|
|
}
|
});
|
}
|
|
|
}
|
|
|
/**
|
* 填充广告
|
*
|
* @param ad
|
* @param fl_ad
|
*/
|
public static void fillAd(final ExpressAdContainer ad, final FrameLayout fl_ad) {
|
|
fl_ad.post(new Runnable() {
|
@Override
|
public void run() {
|
if (ad == null) {//广告为空
|
fl_ad.setVisibility(View.GONE);
|
} else {
|
fl_ad.setVisibility(View.VISIBLE);
|
if (ad.getGdt() != null) {
|
if (fl_ad.getChildCount() > 0 && fl_ad.getChildAt(0) == ad.getGdt()) {
|
return;
|
}
|
if (ad.getGdt().getParent() != null) {
|
((ViewGroup) ad.getGdt().getParent()).removeAllViews();
|
}
|
fl_ad.removeAllViews();
|
fl_ad.addView(ad.getGdt());
|
} else if (ad.getGdt2() != null) {
|
if (fl_ad.getChildCount() > 0 && fl_ad.getChildAt(0) == ad.getGdt2().getAdView()) {
|
return;
|
}
|
if (ad.getGdt2().getAdView().getParent() != null) {
|
((ViewGroup) ad.getGdt2().getAdView().getParent()).removeAllViews();
|
}
|
fl_ad.removeAllViews();
|
fl_ad.addView(ad.getGdt2().getAdView());
|
|
} else if (ad.getCsj() != null) {
|
if (fl_ad.getChildCount() > 0 && fl_ad.getChildAt(0) == ad.getCsj().getExpressAdView()) {
|
return;
|
}
|
if (ad.getCsj().getExpressAdView().getParent() != null) {
|
((ViewGroup) ad.getCsj().getExpressAdView().getParent()).removeAllViews();
|
}
|
fl_ad.removeAllViews();
|
fl_ad.addView(ad.getCsj().getExpressAdView());
|
}
|
}
|
if (fl_ad.getChildCount() > 0) {
|
fl_ad.getChildAt(0).setVisibility(View.VISIBLE);
|
fl_ad.getChildAt(0).post(new Runnable() {
|
@Override
|
public void run() {
|
|
}
|
});
|
}
|
}
|
});
|
|
|
}
|
|
|
interface IGDTAdLoadListener {
|
public void onSuccess(List<NativeExpressADView> adList);
|
|
public void onSuccess2(List<NativeExpressADData2> adList);
|
}
|
|
interface ICSJAdLoadListener {
|
public void onSuccess(List<TTNativeExpressAd> adList);
|
}
|
|
|
public interface IAdLoadListener {
|
public void onSuccess(List<ExpressAdContainer> adList);
|
}
|
|
public interface IAdRenderListener {
|
public void onRenderSuccess(List<ExpressAdContainer> adList);
|
|
public void onRenderFail(List<ExpressAdContainer> adList);
|
}
|
|
public interface IAdEventListener {
|
public void closeAd(ExpressAdContainer ad);
|
}
|
|
|
public interface IAdShowListener {
|
public void show();
|
}
|
|
}
|