package com.mogo.cloud;

import static com.mogo.cloud.passport.MoGoAiCloudClientConfig.HTTP_DNS_ENV_RELEASE;

import androidx.annotation.Nullable;
import androidx.multidex.MultiDexApplication;

import com.auto.zhidao.logsdk.CrashSystem;
import com.mogo.cloud.passport.MoGoAiCloudClient;
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
import com.mogo.cloud.passport.location.ICurrentLocation;
import com.mogo.cloud.passport.location.SimpleLocation;

import java.util.Random;

/**
 *
 */
public class MoGoApplication extends MultiDexApplication {

    private static final String TAG = "MoGoApplication";

    @Override
    public void onCreate() {
        super.onCreate();

        // Crash 日志收集
        CrashSystem crashSystem = CrashSystem.getInstance(this);
        crashSystem.init();
        //设置debug模式，日志不上传
        crashSystem.setDebug(BuildConfig.DEBUG);

        // TODO 这里是模拟数据，真实情况需要传入真实的经纬度信息
        Random random = new Random();
//        double randomLat = random.nextDouble();
//        double randomLon = random.nextDouble();
        double randomLat = 112.582654;
        double randomLon = 26.816478;

        /*
         * 注：thridPartyKey 自有App ：wbvpzgar
         * BYD：bydauto
         */
        // 配置云服务API
        MoGoAiCloudClientConfig clientConfig = MoGoAiCloudClientConfig.getInstance();
        // 设置网络环境：HTTP_DNS_ENV_QA、HTTP_DNS_ENV_RELEASE、HTTP_DNS_ENV_DEV
        clientConfig.setNetMode(HTTP_DNS_ENV_RELEASE);
        // 设置是否是第三APP登录，false：自有车机   true：外部三方车机
        clientConfig.setThirdLogin(true);
        // 设置是否输出日志
        clientConfig.setShowDebugLog(true);
        // 设置是否输出网络日志
        clientConfig.setShowNetDebugLog(true);
        // 设置是否是直播推流的主播 true-主播，false-观众
        clientConfig.setAnchor(false);
        // 设置从蘑菇AI开放平台获取的APPKey
        clientConfig.setThirdPartyAppKey("pfieouqg");
        // 设置AI云平台分配给三方应用的签名密钥，需要从AI云平台申请
        // 设置车机设备的唯一标识（这些表识必须是通过后台录入的设备）
        // TODO 这里使用的是测试的sn
        clientConfig.setThirdPartyDeviceId("12345678998765432169");
        // 设置应用服务AppId  长链、鉴权   //todo 需要卸载智慧驾驶、行车记录仪
        clientConfig.setServiceAppId("com.mogo.launcher");
        // 设置是否属于高精定位设备
        clientConfig.setIsAccuracyDevice(false);

        // 设置DNS经纬度位置
        clientConfig.setIHttpCurrentLocation(() -> new SimpleLocation("0734", randomLat, randomLon));

        clientConfig.setUseOriginSocket(true);
        // 初始化SDK，可以设置状态回调来监听
        MoGoAiCloudClient.getInstance().init(this, clientConfig);
    }
}
