package com.zx.ad.platform.csj;

import android.content.Context;
import android.util.Log;

import com.bytedance.sdk.openadsdk.TTAdConfig;
import com.bytedance.sdk.openadsdk.TTAdConstant;
import com.bytedance.sdk.openadsdk.TTAdManager;
import com.bytedance.sdk.openadsdk.TTAdSdk;


/**
 * 可以用一个单例来保存TTAdManager实例，在需要初始化sdk的时候调用
 */
public class TTAdManagerHolder {

    private static final String TAG = "TTAdManagerHolder";

    private static boolean sInit;



    public static TTAdManager get() {

        return TTAdSdk.getAdManager();
    }


    public static void init(final Context context,String appId,TTAdSdk.InitCallback initCallback) {
        doInit(context,appId,initCallback);
    }

    //step1:接入网盟广告sdk的初始化操作，详情见接入文档和穿山甲平台说明
    private static void doInit(Context context,String appId,TTAdSdk.InitCallback initCallback) {
        if (!sInit) {
            //TTAdSdk.init(context, buildConfig(context));

            TTAdSdk.init(context, buildConfig(context,appId), new TTAdSdk.InitCallback() {
                @Override
                public void success() {
                    if (initCallback!=null){
                        initCallback.success();
                    }
                    sInit = true;
                    Log.i(TAG, "success: " + TTAdSdk.isInitSuccess());
                }

                @Override
                public void fail(int code, String msg) {
                    Log.i(TAG, "fail:  code = " + code + " msg = " + msg);
                    if (initCallback!=null){
                        initCallback.fail(code,msg);
                    }
                    sInit = true;
                }
            });

        }else {
            if (initCallback!=null){
                if (TTAdSdk.isInitSuccess()){
                    initCallback.success();
                }else {
                    initCallback.fail(-1,"wxw initFail");
                }
            }
        }
    }


    private static TTAdConfig buildConfig(Context context,String appId) {

        return new TTAdConfig.Builder()
                .appId(appId)
                .useTextureView(true) //使用TextureView控件播放视频,默认为SurfaceView,当有SurfaceView冲突的场景，可以使用TextureView
                .allowShowNotify(true) //是否允许sdk展示通知栏提示
                .debug(false) //测试阶段打开，可以通过日志排查问题，上线时去除该调用
                .directDownloadNetworkType(TTAdConstant.NETWORK_STATE_WIFI, TTAdConstant.NETWORK_STATE_5G, TTAdConstant.NETWORK_STATE_4G) //允许直接下载的网络状态集合
                .supportMultiProcess(false)//是否支持多进程
                .needClearTaskReset()
                .build();
    }
}
