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;
    }
}