package com.weikou.beibeivideo.util.ad;
|
|
import android.app.Activity;
|
import android.content.Context;
|
import android.os.SystemClock;
|
import android.util.Log;
|
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.entity.ad.SplashAdLoadInfo;
|
import com.weikou.beibeivideo.util.BeibeiConstant;
|
import com.weikou.beibeivideo.util.DimenUtils;
|
import com.weikou.beibeivideo.util.downutil.StringUtils;
|
|
public class SplashAdUtil {
|
|
private static final String TAG = "SplashAdUtil";
|
|
/**
|
* 加载开屏广告
|
*
|
* @param adType
|
* @param context
|
* @param skip
|
* @param tv_time
|
* @param splashAdListener
|
*/
|
public static void loadAD(String pid, AdUtil.AD_TYPE adType, Context context, final View skip, final TextView tv_time, final SplashAdListener splashAdListener) {
|
if (adType == null) {
|
splashAdListener.close();
|
return;
|
}
|
if (AdUtil.AD_TYPE.csj == adType) {
|
loadCSJ(pid, context, skip, splashAdListener);
|
} else if (AdUtil.AD_TYPE.gdt == adType) {
|
loadGDT(pid, context, skip, tv_time, splashAdListener);
|
} else {
|
splashAdListener.close();
|
}
|
}
|
|
private static SplashAD gdtSplashAD;
|
|
private static void loadGDT(String code, Context context, final View skip, final TextView tv_time, final SplashAdListener splashAdListener) {
|
|
String channel = ManifestDataUtil.getAppMetaData(context, "UMENG_CHANNEL");
|
if (StringUtils.isNullOrEmpty(code))
|
code = BeibeiConstant.GDT_SPLASH_POSITION_ID;
|
skip.setVisibility(View.VISIBLE);
|
gdtSplashAD = new SplashAD(context, skip, code, new SplashADListener() {
|
@Override
|
public void onADDismissed() {
|
splashAdListener.close();
|
}
|
|
@Override
|
public void onNoAD(AdError adError) {
|
Log.i(TAG, "GDT:onNoAD-" + adError.getErrorMsg());
|
splashAdListener.noAd();
|
}
|
|
|
@Override
|
public void onADPresent() {
|
if (skip != null)
|
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) {
|
if (tv_time != null)
|
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) {
|
Log.i(TAG, "GDT:onADLoaded-" + l);
|
splashAdListener.onAdLoad(new SplashAdLoadInfo(gdtSplashAD, System.currentTimeMillis() + (l - SystemClock.elapsedRealtime())));
|
}
|
}, 0);
|
gdtSplashAD.fetchAdOnly();
|
}
|
|
|
/**
|
* 加载穿山甲广告
|
*
|
* @param context
|
* @param skip
|
* @param splashAdListener
|
*/
|
private static void loadCSJ(String code, Context context, final View skip, final SplashAdListener splashAdListener) {
|
if (skip != null)
|
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;
|
if (StringUtils.isNullOrEmpty(code))
|
code = CSJConstant.SPLASH_AD;
|
|
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;
|
}
|
|
splashAdListener.onAdLoad(new SplashAdLoadInfo(System.currentTimeMillis() + 1000 * 60 * 30L, ad));
|
|
}
|
}, 4000);
|
|
|
}
|
|
public interface SplashAdListener {
|
|
public void onAdLoad(SplashAdLoadInfo adLoadInfo);
|
|
public void close();
|
|
public void noAd();
|
}
|
|
}
|