package com.weikou.beibeivideo.util.ad;
|
|
import android.app.Activity;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.widget.TextView;
|
|
import com.bytedance.sdk.openadsdk.AdSlot;
|
import com.bytedance.sdk.openadsdk.TTAdManager;
|
import com.bytedance.sdk.openadsdk.TTAdNative;
|
import com.bytedance.sdk.openadsdk.TTSplashAd;
|
import com.lcjian.library.util.ManifestDataUtil;
|
import com.qq.e.ads.splash.SplashAD;
|
import com.qq.e.ads.splash.SplashADListener;
|
import com.qq.e.comm.util.AdError;
|
import com.weikou.beibeivideo.entity.ad.AdTypeVO;
|
import com.weikou.beibeivideo.util.BeibeiConstant;
|
import com.weikou.beibeivideo.util.DimenUtils;
|
import com.weikou.beibeivideo.util.downutil.StringUtils;
|
|
public class SplashAdUtil {
|
|
/**
|
* 加载开屏广告
|
*
|
* @param adType
|
* @param context
|
* @param skip
|
* @param vg_ad
|
* @param tv_time
|
* @param splashAdListener
|
*/
|
public static void loadAD(AdUtil.AD_TYPE adType, Activity context, final View skip, ViewGroup vg_ad, final TextView tv_time, final SplashAdListener splashAdListener) {
|
if (adType==null) {
|
splashAdListener.close();
|
return;
|
}
|
if (AdUtil.AD_TYPE.csj==adType) {
|
loadCSJ(context, skip, vg_ad, splashAdListener);
|
} else if (AdUtil.AD_TYPE.gdt==adType) {
|
loadGDT(context, skip, vg_ad, tv_time, splashAdListener);
|
} else {
|
splashAdListener.close();
|
}
|
}
|
|
private static void loadGDT(Activity context, final View skip, ViewGroup vg_ad, final TextView tv_time, final SplashAdListener splashAdListener) {
|
|
String channel = ManifestDataUtil.getAppMetaData(context, "UMENG_CHANNEL");
|
String code = BeibeiConstant.GDT_SPLASH_POSITION_ID;
|
if ("vivo".equalsIgnoreCase(channel)) {
|
code = BeibeiConstant.GDT_SPLASH_VIVO_POSITION_ID;
|
}
|
new SplashAD(context, skip, code, new SplashADListener() {
|
@Override
|
public void onADDismissed() {
|
splashAdListener.close();
|
}
|
|
@Override
|
public void onNoAD(AdError adError) {
|
splashAdListener.noAd();
|
}
|
|
|
@Override
|
public void onADPresent() {
|
skip.post(new Runnable() {
|
@Override
|
public void run() {
|
skip.setVisibility(View.VISIBLE);
|
}
|
});
|
}
|
|
@Override
|
public void onADClicked() {
|
System.out.println("");
|
}
|
|
@Override
|
public void onADTick(final long l) {
|
tv_time.post(new Runnable() {
|
@Override
|
public void run() {
|
tv_time.setText(l / 1000 + "");
|
}
|
});
|
}
|
|
@Override
|
public void onADExposure() {
|
System.out.println("");
|
}
|
|
@Override
|
public void onADLoaded(long l) {
|
System.out.println("");
|
skip.post(new Runnable() {
|
@Override
|
public void run() {
|
skip.setVisibility(View.VISIBLE);
|
}
|
});
|
}
|
}, 0).fetchAndShowIn(vg_ad);
|
}
|
|
|
/**
|
* 加载穿山甲广告
|
*
|
* @param context
|
* @param skip
|
* @param vg_ad
|
* @param splashAdListener
|
*/
|
private static void loadCSJ(Activity context, final View skip, final ViewGroup vg_ad, final SplashAdListener splashAdListener) {
|
skip.setVisibility(View.GONE);
|
TTAdManager ttAdManager = TTAdManagerHolder.get();
|
TTAdNative mTTAdNative = ttAdManager.createAdNative(context.getApplicationContext());
|
//穿山甲广告
|
int width = DimenUtils.getScreenWidth(context.getApplicationContext());
|
int height = DimenUtils.getScreenHeight(context.getApplicationContext());
|
if (width == 0)
|
width = 720;
|
if (height == 0)
|
height = 1080;
|
String channel = ManifestDataUtil.getAppMetaData(context, "UMENG_CHANNEL");
|
String code = CSJConstant.SPLASH_AD;
|
if ("vivo".equalsIgnoreCase(channel)) {
|
code = CSJConstant.SPLASH_AD_VIVO;
|
}
|
|
AdSlot adSlot = new AdSlot.Builder()
|
.setCodeId(code)
|
.setSupportDeepLink(true)
|
.setImageAcceptedSize(width, height)
|
.build();
|
mTTAdNative.loadSplashAd(adSlot, new TTAdNative.SplashAdListener() {
|
|
@Override
|
public void onError(int i, String s) {
|
splashAdListener.noAd();
|
}
|
|
@Override
|
public void onTimeout() {
|
splashAdListener.noAd();
|
}
|
|
@Override
|
public void onSplashAdLoad(TTSplashAd ad) {
|
if (ad == null) {
|
splashAdListener.noAd();
|
return;
|
}
|
View view = ad.getSplashView();
|
vg_ad.removeAllViews();
|
//把SplashView 添加到ViewGroup中
|
vg_ad.addView(view);
|
//设置SplashView的交互监听器
|
ad.setSplashInteractionListener(new TTSplashAd.AdInteractionListener() {
|
@Override
|
public void onAdClicked(View view, int type) {
|
}
|
|
@Override
|
public void onAdShow(View view, int type) {
|
}
|
|
@Override
|
public void onAdSkip() {
|
splashAdListener.close();
|
}
|
|
@Override
|
public void onAdTimeOver() {
|
splashAdListener.close();
|
}
|
});
|
}
|
});
|
|
|
}
|
|
public interface SplashAdListener {
|
public void close();
|
|
public void noAd();
|
}
|
|
}
|