package com.mogo.launcher.startup import android.content.Context import com.google.gson.reflect.TypeToken import com.mogo.commons.debug.DebugConfig import com.mogo.eagle.core.data.app.AppConfigInfo import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.config.HdMapBuildConfig import com.mogo.eagle.core.data.config.HmiBuildConfig import com.mogo.eagle.core.data.app.UrlConfig import com.mogo.eagle.core.data.config.JunkConfig import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.eagle.core.utilcode.util.StringUtils import com.mogo.launcher.BuildConfig import com.mogo.launcher.R import com.shuyu.gsyvideoplayer.player.IjkPlayerManager import com.zhidaoauto.map.sdk.open.MapAutoApi import com.zhidaoauto.map.sdk.open.MapParams import com.zhjt.mogo_core_function_devatools.env.EnvChangeManager import tv.danmaku.ijk.media.player.IjkMediaPlayer object ConfigStartUp { @JvmStatic fun init(context: Context) { initDebugConfig() initBuildConfig() initOtherConfig(context) } private fun initBuildConfig() { //ijk关闭log IjkPlayerManager.setLogLevel(IjkMediaPlayer.IJK_LOG_SILENT); // 初始化构建APP的时候的分支及提交HASH,用于辅助定位问题 AppConfigInfo.workingBranchName = BuildConfig.WORKING_BRANCH_NAME AppConfigInfo.workingBranchHash = BuildConfig.WORKING_BRANCH_HASH AppConfigInfo.appBuildTime = BuildConfig.APP_BUILD_TIME AppConfigInfo.flavor = BuildConfig.FLAVOR // 使用与渠道配置一样的gps提供者提供的数据,app/productFlavors/fPadLenovo.gradle GPS_PROVIDER 0-Android系统,1-工控机,2-OBU FunctionBuildConfig.gpsProvider = BuildConfig.GPS_PROVIDER // 演示模式,上一次勾选的数据 FunctionBuildConfig.isDemoMode = BuildConfig.IS_DEMO_MODE // app安装的身份信息 FunctionBuildConfig.appIdentityMode = "Product_${BuildConfig.APP_IDENTITY_MODE_BODY}_${BuildConfig.APP_IDENTITY_MODE_TAIL}" // 支持的业务类型 if(!StringUtils.isEmpty(BuildConfig.supportBusiness)&&BuildConfig.supportBusiness!="null"){ FunctionBuildConfig.supportBusiness = GsonUtils.fromJson(BuildConfig.supportBusiness, object : TypeToken>() {}.type) } // 各个module需要的url FunctionBuildConfig.urlJson = GsonUtils.fromJson(BuildConfig.URLs, UrlConfig::class.java) //不能启动自动驾驶的档位 FunctionBuildConfig.launchAutopilotGear = BuildConfig.LAUNCH_AUTOPILOT_GEAR // 各车型宣传视频本地配置json FunctionBuildConfig.mediaUrlConfig = BuildConfig.mediaUrlConfig FunctionBuildConfig.musicUrlConfig = BuildConfig.musicUrlConfig //是否支持Patch升级 FunctionBuildConfig.isSupportPatchUpgrade = BuildConfig.IS_SUPPORT_PATCH_UPGRADE // // 这里影响当前Activity的身份信息,多进程先保持与原来一样,主进程为司机端,:passenger 进程为乘客端 TODO 暂时不启用,仅做洱海交付,独立乘客屏+宣传视频 // if (ProcessUtils.getCurrentProcessName().contains(":passenger")) { // if (AppIdentityModeUtils.isBus(BuildConfig.APP_IDENTITY_MODE)) { // FunctionBuildConfig.appIdentityMode = 0xA1 // } else if (AppIdentityModeUtils.isTaxi(BuildConfig.APP_IDENTITY_MODE)) { // FunctionBuildConfig.appIdentityMode = 0x01 // } // } else { // if (AppIdentityModeUtils.isBus(BuildConfig.APP_IDENTITY_MODE)) { // FunctionBuildConfig.appIdentityMode = 0xA0 // } else if (AppIdentityModeUtils.isTaxi(BuildConfig.APP_IDENTITY_MODE)) { // FunctionBuildConfig.appIdentityMode = 0x00 // } // } // 不同身份对应不同的IP地址 FunctionBuildConfig.adasConnectIP = BuildConfig.ADAS_CONNECT_IP // 是否开启secure校验 FunctionBuildConfig.isSecure = BuildConfig.secure // 清扫车 默认业务模式 FunctionBuildConfig.sweeperDefaultMode = BuildConfig.SWEEPER_DEFAULT_MODE // 清扫车 是否能切换当前业务模式 FunctionBuildConfig.sweeperCanSwitchMode = BuildConfig.SWEEPER_CAN_SWITCH_MODE //是否开启卡顿检测 JunkConfig.isSupportJunkDetect = BuildConfig.IS_SUPPORT_JUNK_DETECT } private fun initDebugConfig() { var mode = BuildConfig.NET_ENV val envConfig = EnvChangeManager.getEnvConfig() if (envConfig != null) { mode = envConfig.netMode } DebugConfig.setNetMode(mode) DebugConfig.setDebug(BuildConfig.DEBUG) DebugConfig.setLauncher(BuildConfig.IS_LAUNCHER) DebugConfig.setCarMachineType(BuildConfig.CAR_MACHINE_TYPE) // todo DebugConfig.setProductFlavor(BuildConfig.FLAVOR_product) DebugConfig.setProjectFlavor(BuildConfig.FLAVOR_project) DebugConfig.setSocketAppId(BuildConfig.SOCKET_APP_ID) DebugConfig.setMapVersion(BuildConfig.MAP_SDK_VERSION) DebugConfig.setMapOptVersion(BuildConfig.MAP_SDK_OPT_VERSION) DebugConfig.setCarModelChange(BuildConfig.IS_CAR_MODEL_CHANGE) } private fun initOtherConfig(context: Context) { if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)){ HdMapBuildConfig.currentCarVrIconRes = R.raw.xiaoba } if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { HdMapBuildConfig.currentCarVrIconRes = R.raw.m2 } if (AppIdentityModeUtils.isC1(FunctionBuildConfig.appIdentityMode)){ HdMapBuildConfig.currentCarVrIconRes = R.raw.huanwei } if (AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)){ HdMapBuildConfig.currentCarVrIconRes = R.raw.m1 } if (AppIdentityModeUtils.isT1T2(FunctionBuildConfig.appIdentityMode)){ HdMapBuildConfig.currentCarVrIconRes = R.raw.chuzuche } if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) { //是否显示 限速UI HmiBuildConfig.isShowLimitingVelocityView = false //白天模式 FunctionBuildConfig.skinMode = 1 } if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { } val mapParams = MapParams.init() mapParams.setDebugMode(false) // 1-使用本地地图数据,0-使用在线地图数据 // .setDataFileSource(1) .setIsRecordLogs(false) .setCoordinateType(MapParams.COORDINATETYPE_GCJ02) MapAutoApi.init(context, mapParams) } }