Files
MoGoEagleEye/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt
2023-02-01 17:57:36 +08:00

147 lines
6.7 KiB
Kotlin
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.mogo.launcher.startup
import android.content.Context
import android.util.Log
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.deva.net.UrlConfig
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.util.GsonUtils
import com.mogo.eagle.core.utilcode.util.ProcessUtils
import com.mogo.launcher.BuildConfig
import com.mogo.launcher.R
import com.mogo.test.crashreport.CrashReportConstants
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
object ConfigStartUp {
@JvmStatic
fun init(context: Context) {
initDebugConfig()
initBuildConfig()
initOtherConfig(context)
}
private fun initBuildConfig() {
// 初始化构建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.gpsProvider = 2
// 演示模式,上一次勾选的数据
FunctionBuildConfig.isDemoMode = BuildConfig.IS_DEMO_MODE
// // app安装的身份信息
FunctionBuildConfig.appIdentityMode = BuildConfig.APP_IDENTITY_MODE
// 各个module需要的url
FunctionBuildConfig.urlJson = GsonUtils.fromJson(BuildConfig.URLs, UrlConfig::class.java)
Log.d("ConfigStartUp", "ProcessUtils.getCurrentProcessName():" + ProcessUtils.getCurrentProcessName())
// // 这里影响当前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.setNeedUploadCoordinatesInTime(BuildConfig.IS_NEED_UPLOAD_COORDINATES_IN_TIME)
DebugConfig.setMultiDisplay(BuildConfig.IS_MULTI_DISPLAY)
}
private fun initOtherConfig(context: Context) {
// 配置BuglyAppIDMoGoEagleEye
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.isPassenger(FunctionBuildConfig.appIdentityMode)) {
if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
//是否显示 限速UI
HmiBuildConfig.isShowLimitingVelocityView = false
//白天模式
FunctionBuildConfig.skinMode = 1
} else if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)) {
//是否显示 限速UI
HmiBuildConfig.isShowLimitingVelocityView = false
}
}
val mapParams = MapParams.init()
mapParams.setDebugMode(false) //todo 1-使用本地地图数据0-使用在线地图数据
//.setDataFileSource(1)
.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)
}
MapAutoApi.init(context, mapParams)
}
}