CustomerSplashAdapter.java 源代码
package main.GroMore;
import android.content.Context;
import android.os.SystemClock;
import android.util.Log;
import android.view.ViewGroup;
import com.alipay.sdk.data.a;
import com.bytedance.sdk.openadsdk.AdSlot;
import com.bytedance.sdk.openadsdk.TTSplashAd;
import com.bytedance.sdk.openadsdk.mediation.MediationConstant;
import com.bytedance.sdk.openadsdk.mediation.bridge.custom.splash.MediationCustomSplashLoader;
import com.bytedance.sdk.openadsdk.mediation.custom.MediationCustomServiceConfig;
import com.qq.e.ads.splash.SplashAD;
import com.qq.e.ads.splash.SplashADListener;
import com.qq.e.comm.util.AdError;
import java.util.concurrent.Callable;
import java.util.concurrent.TimeUnit;
import utils.HiLogcatUtil;
public class CustomerSplashAdapter extends MediationCustomSplashLoader {
private static final String TAG = "AppConst.TAG_PRE" + CustomerSplashAdapter.class.getSimpleName();
private boolean isLoadSuccess;
private volatile SplashAD mSplashAD;
private TTSplashAd mTTSplashAd;
@Override
public void showAd(final ViewGroup viewGroup) {
ThreadUtils.runOnUIThreadByThreadPool(new Runnable() {
@Override
public void run() {
ViewGroup viewGroup2;
if (CustomerSplashAdapter.this.mSplashAD == null || (viewGroup2 = viewGroup) == null) {
return;
}
viewGroup2.removeAllViews();
CustomerSplashAdapter.this.mSplashAD.showAd(viewGroup);
}
});
}
@Override
public void load(final Context context, AdSlot adSlot, final MediationCustomServiceConfig mediationCustomServiceConfig) {
HiLogcatUtil.i(TAG, " Thread = " + Thread.currentThread().getName() + " 加载到自定义的banner了 serviceConfig = " + mediationCustomServiceConfig.getADNNetworkName() + "::" + mediationCustomServiceConfig.getADNNetworkSlotId() + "::" + mediationCustomServiceConfig.getCustomAdapterJson() + "::" + mediationCustomServiceConfig.getAdStyleType() + "::" + mediationCustomServiceConfig.getSubAdtype());
ThreadUtils.runOnThreadPool(new Runnable() {
@Override
public void run() {
SplashADListener splashADListener = new SplashADListener() {
@Override
public void onADDismissed() {
Log.i(CustomerSplashAdapter.TAG, "onADDismissed");
CustomerSplashAdapter.this.callSplashAdDismiss();
}
@Override
public void onNoAD(AdError adError) {
CustomerSplashAdapter.this.isLoadSuccess = false;
if (adError != null) {
Log.i(CustomerSplashAdapter.TAG, "onNoAD errorCode = " + adError.getErrorCode() + " errorMessage = " + adError.getErrorMsg());
CustomerSplashAdapter.this.callLoadFail(adError.getErrorCode(), adError.getErrorMsg());
return;
}
CustomerSplashAdapter.this.callLoadFail(40000, "no ad");
}
@Override
public void onADPresent() {
Log.i(CustomerSplashAdapter.TAG, "onADPresent");
}
@Override
public void onADClicked() {
Log.i(CustomerSplashAdapter.TAG, "onADClicked");
CustomerSplashAdapter.this.callSplashAdClicked();
}
@Override
public void onADTick(long j) {
Log.i(CustomerSplashAdapter.TAG, "onADTick");
}
@Override
public void onADExposure() {
Log.i(CustomerSplashAdapter.TAG, "onADExposure");
CustomerSplashAdapter.this.callSplashAdShow();
}
@Override
public void onADLoaded(long j) {
Log.i(CustomerSplashAdapter.TAG, "onADLoaded");
if (j - SystemClock.elapsedRealtime() > 1000) {
CustomerSplashAdapter.this.isLoadSuccess = true;
if (CustomerSplashAdapter.this.isClientBidding()) {
double ecpm = CustomerSplashAdapter.this.mSplashAD.getECPM();
if (ecpm < 0.0d) {
ecpm = 0.0d;
}
Log.e(CustomerSplashAdapter.TAG, "ecpm:" + ecpm);
CustomerSplashAdapter.this.callLoadSuccess(ecpm);
return;
}
CustomerSplashAdapter.this.callLoadSuccess();
return;
}
CustomerSplashAdapter.this.isLoadSuccess = false;
CustomerSplashAdapter.this.callLoadFail(40000, "ad has expired");
}
};
if (CustomerSplashAdapter.this.isServerBidding()) {
CustomerSplashAdapter.this.mSplashAD = new SplashAD(context, mediationCustomServiceConfig.getADNNetworkSlotId(), splashADListener, a.a, CustomerSplashAdapter.this.getAdm());
} else {
CustomerSplashAdapter.this.mSplashAD = new SplashAD(context, mediationCustomServiceConfig.getADNNetworkSlotId(), splashADListener, a.a);
}
CustomerSplashAdapter.this.mSplashAD.fetchAdOnly();
}
});
}
@Override
public void onPause() {
super.onPause();
HiLogcatUtil.i(TAG, "onPause");
}
@Override
public void onResume() {
super.onResume();
HiLogcatUtil.i(TAG, "onResume");
}
@Override
public void onDestroy() {
super.onDestroy();
HiLogcatUtil.i(TAG, "onDestroy");
this.mSplashAD = null;
}
@Override
public MediationConstant.AdIsReadyStatus isReadyCondition() {
try {
MediationConstant.AdIsReadyStatus adIsReadyStatus = (MediationConstant.AdIsReadyStatus) ThreadUtils.runOnThreadPool(new Callable<MediationConstant.AdIsReadyStatus>() {
@Override
public MediationConstant.AdIsReadyStatus call() throws Exception {
if (CustomerSplashAdapter.this.mSplashAD != null && CustomerSplashAdapter.this.mSplashAD.isValid()) {
return MediationConstant.AdIsReadyStatus.AD_IS_READY;
}
return MediationConstant.AdIsReadyStatus.AD_IS_NOT_READY;
}
}).get(500L, TimeUnit.MILLISECONDS);
return adIsReadyStatus != null ? adIsReadyStatus : MediationConstant.AdIsReadyStatus.AD_IS_NOT_READY;
} catch (Exception e) {
e.printStackTrace();
return MediationConstant.AdIsReadyStatus.AD_IS_NOT_READY;
}
}
public boolean isClientBidding() {
return getBiddingType() == 1;
}
public boolean isServerBidding() {
return getBiddingType() == 2;
}
}