package com.mogo.launcher.startup import android.content.Context 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.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.launcher.BuildConfig import com.mogo.launcher.R import com.mogo.test.crashreport.CrashReportConstants import com.shuyu.gsyvideoplayer.player.IjkPlayerManager import com.zhidaoauto.map.sdk.open.HDTypes 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 // 使用与渠道配置一样的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 = "${BuildConfig.APP_IDENTITY_MODE_HEAD}_${BuildConfig.APP_IDENTITY_MODE_BODY}_${BuildConfig.APP_IDENTITY_MODE_TAIL}" // 各个module需要的url FunctionBuildConfig.urlJson = GsonUtils.fromJson(BuildConfig.URLs, UrlConfig::class.java) //不能启动自动驾驶的档位 FunctionBuildConfig.unableLaunchAutopilotGear = BuildConfig.UNABLE_LAUNCH_AUTOPILOT_GEAR // 临时配置json FunctionBuildConfig.tempConfig = BuildConfig.tempConfig //是否支持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 } 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) DebugConfig.setProductFlavor(BuildConfig.FLAVOR_product) DebugConfig.setSocketAppId(BuildConfig.SOCKET_APP_ID) DebugConfig.setMapVersion(BuildConfig.MAP_SDK_VERSION) DebugConfig.setMapOptVersion(BuildConfig.MAP_SDK_OPT_VERSION) DebugConfig.setMultiDisplay(BuildConfig.IS_MULTI_DISPLAY) DebugConfig.setCarModelChange(BuildConfig.IS_CAR_MODEL_CHANGE) DebugConfig.setReplaceStatusview(BuildConfig.IS_REPLACE_STATUSVIEW) } private fun initOtherConfig(context: Context) { // 配置BuglyAppID:MoGoEagleEye CrashReportConstants.buglyAppID = "ac71228f85" if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)) { HdMapBuildConfig.currentCarVrIconRes = R.raw.chuzuche } else if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { HdMapBuildConfig.currentCarVrIconRes = R.raw.xiaobache } else if (AppIdentityModeUtils.isSweeper(FunctionBuildConfig.appIdentityMode)) { HdMapBuildConfig.currentCarVrIconRes = R.raw.huanwei } if (AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)){ HdMapBuildConfig.currentCarVrIconRes = R.raw.xiaobache } if (AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)){ HdMapBuildConfig.currentCarVrIconRes = R.raw.m1 } if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) { HdMapBuildConfig.currentCarVrIconRes = R.raw.m2 } if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) { if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode) || AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode) || AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode) || AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) { //是否显示 限速UI HmiBuildConfig.isShowLimitingVelocityView = false //白天模式 FunctionBuildConfig.skinMode = 1 } else if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)) { //是否显示 限速UI HmiBuildConfig.isShowLimitingVelocityView = false } else if (AppIdentityModeUtils.isCharter(FunctionBuildConfig.appIdentityMode)) { //是否显示 限速UI HmiBuildConfig.isShowLimitingVelocityView = false //白天模式 FunctionBuildConfig.skinMode = 1 } } val mapParams = MapParams.init() mapParams.setDebugMode(false) // 1-使用本地地图数据,0-使用在线地图数据 //.setDataFileSource(1) .setDebugMode(false) .setIsRecordLogs(false) .setCoordinateType(MapParams.COORDINATETYPE_GCJ02) .setPerspectiveMode(MapParams.MAP_PERSPECTIVE_UP_CAR) .setHDVisibileArray( intArrayOf( HDTypes.DIVIDER.type, HDTypes.ROAD_AREA.type, HDTypes.STOP_LINE.type, HDTypes.ARROW.type, HDTypes.STATION_BRIDGE.type, HDTypes.ZEBRA_LINE.type, HDTypes.GREEN_BELT.type, HDTypes.DIVERSION.type, HDTypes.SAFE_ISLAND.type, HDTypes.ALPHANUMERIC.type, HDTypes.GUARDBAR.type, HDTypes.TRAFFIC_DEVICE.type, HDTypes.CABLE.type, HDTypes.SIGNAL_LINE.type ) ) // .setZoom( 20 ) // .setPointToCenter( 0.734375f, 0.5f ) //todo 2D模式下需要注意ADAS部分遮挡 //.setPointToCenter(0.5f, 0.5f) // 根据 FunctionBuildConfig 配置的皮肤样式设置题图的样式 if (FunctionBuildConfig.skinMode == 1) { mapParams.setStyleMode(MapParams.MAP_STYLE_DAY_VR) } else { mapParams.setStyleMode(MapParams.MAP_STYLE_NIGHT_VR) } //todo 临时放在这 @梁利辉 if (AppIdentityModeUtils.isBusPassenger(FunctionBuildConfig.appIdentityMode)) { mapParams.setShadowEnable(false) } if(AppIdentityModeUtils.isShuttlePassenger(FunctionBuildConfig.appIdentityMode)) { // shuttle m2 车需要偏移 if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) { mapParams.setCarPosition(-0.5f) mapParams.setDefaultPerspective(MapParams.MAP_STYLE_VR_ERHAI_B2) } } MapAutoApi.init(context, mapParams) } }