[6.7.0]冷启动更改
This commit is contained in:
@@ -55,6 +55,7 @@ import com.zhjt.mogo_core_function_devatools.badcase.BadCaseManager
|
||||
import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseConfig
|
||||
import com.zhjt.mogo_core_function_devatools.binding.BindingCarManager
|
||||
import com.zhjt.mogo_core_function_devatools.block.MoGoBlockProviderImpl
|
||||
import com.zhjt.mogo_core_function_devatools.coldstart.ColdStartManager
|
||||
import com.zhjt.mogo_core_function_devatools.env.EnvChangeManager
|
||||
import com.zhjt.mogo_core_function_devatools.exam.ExamControlManager
|
||||
import com.zhjt.mogo_core_function_devatools.funcconfig.FuncConfigCenter.Companion.bizConfigCenter
|
||||
@@ -172,6 +173,7 @@ class DevaToolsProvider : IDevaToolsProvider, IAppStateListener {
|
||||
BindingCarManager.init(mContext!!)
|
||||
// apmEnvProvider.init(if(DebugConfig.isDebug()) "0" else "1", "${ DebugConfig.getNetMode() }", mDockerVersion ?: "")
|
||||
BadCaseManager.init(mContext!!)
|
||||
ColdStartManager.init(mContext!!)
|
||||
if (DebugConfig.isDebug()) {
|
||||
SdtManager.init(mContext!!, true, DetectResultImpl())
|
||||
}
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.zhjt.mogo_core_function_devatools.coldstart
|
||||
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
import com.mogo.commons.utils.MogoAnalyticUtils
|
||||
import com.mogo.eagle.core.data.app.AppConfigInfo
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager
|
||||
import com.mogo.eagle.core.utilcode.util.AppUtils
|
||||
|
||||
/**
|
||||
* 冷启动关键节点埋点统计管理
|
||||
*/
|
||||
object ColdStartAnalyticsManager {
|
||||
|
||||
private const val coldStartStep = "cold_start_step" //冷启动步骤埋点Key
|
||||
|
||||
private const val eventParamPlateNumber = "plateNumber" //车牌号
|
||||
private const val eventParamCarSn = "carSn" //鹰眼SN
|
||||
private const val eventParamMapVersion = "mapVersion" //工控机版本
|
||||
private const val eventParamEyeVersion = "eyeVersion" //鹰眼版本
|
||||
private const val eventParamAppFlavor = "appFlavor" //渠道信息
|
||||
private const val eventParamBranchHash = "branchHash" //Git Hash
|
||||
private const val eventParamLatitude = "latitude" //纬度
|
||||
private const val eventParamLongitude = "longitude" //经度
|
||||
private const val eventParamStep = "step" //冷启动步骤
|
||||
|
||||
const val ipcConnectSuccess = "ipcConnectSuccess" //域控连接成功
|
||||
const val ipcConnectFail = "ipcConnectFail"//域控连接失败
|
||||
const val ssmConnectSuccess = "ssmConnectSuccess" //SSM连接成功
|
||||
const val ssmConnectFail = "ssmConnectFail"//SSM连接失败
|
||||
const val coldStartSuccess = "coldStartSuccess" //冷启动成功
|
||||
const val coldStartFail = "coldStartFail"//冷启动失败
|
||||
const val coldStartNow = "coldStartNow" //立即用车
|
||||
|
||||
/**
|
||||
* 冷启动埋点统计
|
||||
* @param plateNumber 车牌号
|
||||
* @param carSn 鹰眼SN
|
||||
* @param mapVersion 工控机版本
|
||||
* @param eyeVersion 鹰眼版本
|
||||
* @param appFlavor 渠道信息
|
||||
* @param branchHash Git Hash
|
||||
* @param latitude 纬度
|
||||
* @param longitude 经度
|
||||
* @param step 冷启动步骤
|
||||
*/
|
||||
private fun realColdStartStepAnalytics(plateNumber: String,carSn: String,mapVersion: String,eyeVersion: String,
|
||||
appFlavor: String,branchHash: String,latitude: String,longitude: String,
|
||||
step: String){
|
||||
val coldStartParams = HashMap<String,Any>()
|
||||
coldStartParams[eventParamPlateNumber] = plateNumber
|
||||
coldStartParams[eventParamCarSn] = carSn
|
||||
coldStartParams[eventParamMapVersion] = mapVersion
|
||||
coldStartParams[eventParamEyeVersion] = eyeVersion
|
||||
coldStartParams[eventParamAppFlavor] = appFlavor
|
||||
coldStartParams[eventParamBranchHash] = branchHash
|
||||
coldStartParams[eventParamLatitude] = latitude
|
||||
coldStartParams[eventParamLongitude] = longitude
|
||||
coldStartParams[eventParamStep] = step
|
||||
MogoAnalyticUtils.track(coldStartStep,coldStartParams)
|
||||
}
|
||||
|
||||
/**
|
||||
* 冷启动埋点统计
|
||||
* @param step 冷启动步骤
|
||||
*/
|
||||
fun coldStartStepAnalytics(step: String){
|
||||
realColdStartStepAnalytics(AppConfigInfo.plateNumber, SharedPrefsMgr.getInstance().sn,
|
||||
CallerAutoPilotStatusListenerManager.getDockerVersion() ?: "",
|
||||
AppUtils.getAppVersionName(), AppConfigInfo.flavor,AppConfigInfo.workingBranchHash,
|
||||
CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().latitude.toString(),
|
||||
CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().longitude.toString(),step)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.zhjt.mogo_core_function_devatools.coldstart
|
||||
|
||||
import com.mogo.eagle.core.utilcode.util.SPUtils
|
||||
|
||||
/**
|
||||
* 冷启动配置参数
|
||||
*/
|
||||
object ColdStartConfig {
|
||||
|
||||
private var isShowing: Boolean = false
|
||||
|
||||
private const val coldStartTime = "COLD_START_TIME" //启动时间
|
||||
private const val coldStartNow = "COLD_START_NOW" //立即用车
|
||||
|
||||
fun getShowWindowStatus(): Boolean{
|
||||
return isShowing
|
||||
}
|
||||
|
||||
fun setShowWindowStatus(isShowing: Boolean){
|
||||
this.isShowing = isShowing
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取上一次冷启动启动成功日期
|
||||
*/
|
||||
fun getColdStartSuccessTime(): Long{
|
||||
return SPUtils.getInstance().getLong(coldStartTime)
|
||||
}
|
||||
|
||||
/**
|
||||
* 记录冷启动成功日期
|
||||
*/
|
||||
fun setColdStartSuccessTime(successTime: Long){
|
||||
SPUtils.getInstance().put(coldStartTime,successTime)
|
||||
}
|
||||
|
||||
/**
|
||||
* 记录立即用车点击时间
|
||||
*/
|
||||
fun setColdStartNowState(coldStartNowTime: Long){
|
||||
SPUtils.getInstance().put(coldStartNow,coldStartNowTime)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取立即用车点击时间
|
||||
*/
|
||||
fun getColdStartNowTime(): Long{
|
||||
return SPUtils.getInstance().getLong(coldStartNow)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.zhjt.mogo_core_function_devatools.coldstart
|
||||
|
||||
import android.content.Context
|
||||
import android.util.Log
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.api.datacenter.IDataCenterBizListener
|
||||
import com.mogo.eagle.core.function.api.och.IOchFunctionCallNotify
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
import com.mogo.eagle.core.function.call.datacenter.CallerDataCenterBizListener
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
|
||||
import com.mogo.eagle.core.utilcode.util.TimeUtils
|
||||
import com.mogo.eagle.core.utilcode.util.TimeUtils.millis2String
|
||||
import com.zhjt.mogo.adas.data.AdasConstants
|
||||
|
||||
/**
|
||||
* 冷启动管理
|
||||
*/
|
||||
object ColdStartManager: IMoGoAutopilotStatusListener, IDataCenterBizListener {
|
||||
|
||||
const val TAG = "ColdStartManager"
|
||||
private var isColdStartNow: Boolean = false //当天是否点击了“立即用车”
|
||||
private var isColdStartSuccess: Boolean = false //当天是否冷启动成功
|
||||
private var loginStatus: Boolean = false //当前登录状态
|
||||
private var ipcConnectedTime: Long = System.currentTimeMillis()
|
||||
|
||||
|
||||
fun init(context: Context){
|
||||
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
|
||||
CallerDataCenterBizListener.addListener(TAG,this)
|
||||
val currentDay = millis2String(System.currentTimeMillis(), TimeUtils.getMdFormat())
|
||||
//获取当天是否点击过“立即用车”
|
||||
val coldStartNowDay = millis2String(ColdStartConfig.getColdStartNowTime(), TimeUtils.getMdFormat())
|
||||
if(coldStartNowDay == currentDay){
|
||||
isColdStartNow = true
|
||||
}
|
||||
//获取当天是否冷启动成功
|
||||
val coldStartSuccessDay = millis2String(ColdStartConfig.getColdStartSuccessTime(), TimeUtils.getMdFormat())
|
||||
if(coldStartSuccessDay == currentDay){
|
||||
isColdStartSuccess = true
|
||||
}
|
||||
}
|
||||
|
||||
override fun onAutopilotIpcConnectStatusChanged(
|
||||
status: AdasConstants.IpcConnectionStatus,
|
||||
reason: String?
|
||||
){
|
||||
//域控连接异常
|
||||
if(status != AdasConstants.IpcConnectionStatus.CONNECTED){
|
||||
//当前进入主页方式为立即用车,则在主页面不再展示冷启动页面
|
||||
if(isColdStartNow && !isColdStartSuccess){
|
||||
return
|
||||
}
|
||||
if(isColdStartNow && ColdStartConfig.getColdStartNowTime() > ColdStartConfig.getColdStartSuccessTime()){
|
||||
return
|
||||
}
|
||||
//已登录且距离上次冷启动成功超过1分钟,再次展示冷启动页面
|
||||
if(!ColdStartConfig.getShowWindowStatus() && loginStatus && System.currentTimeMillis().minus(ColdStartConfig.getColdStartSuccessTime())>60000){
|
||||
if(System.currentTimeMillis().minus(ipcConnectedTime) > 60000){
|
||||
CallerHmiManager.showColdStartWindow()
|
||||
}
|
||||
}
|
||||
}else{
|
||||
ipcConnectedTime = System.currentTimeMillis()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 当前登录状态
|
||||
* @param isLogin 是否登录
|
||||
*/
|
||||
override fun invokeLoginStatus(isLogin: Boolean) {
|
||||
super.invokeLoginStatus(isLogin)
|
||||
loginStatus = isLogin
|
||||
}
|
||||
|
||||
}
|
||||
@@ -55,6 +55,7 @@ import com.mogo.eagle.core.function.hmi.ui.tools.ModifyBindingCarDialog
|
||||
import com.mogo.eagle.core.function.hmi.ui.tools.ToBindingCarDialog
|
||||
import com.mogo.eagle.core.function.hmi.ui.tools.UpgradeAppDialog
|
||||
import com.mogo.eagle.core.function.hmi.ui.utils.HmiActionLog
|
||||
import com.mogo.eagle.core.function.hmi.ui.widget.ColdStartAgainWindow
|
||||
import com.mogo.eagle.core.function.hmi.ui.widget.HDMapVisualAngleAdjustLayout
|
||||
import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarView
|
||||
import com.mogo.eagle.core.function.hmi.xiaozhi.XiaoZhiStateManager
|
||||
@@ -585,4 +586,13 @@ class MoGoHmiProvider : IMoGoHmiProvider {
|
||||
override fun isHdMapVisualAngleAdjustShow(): Boolean {
|
||||
return popOfVisualAngleAdjust.get()?.get()?.isShowing() ?: false
|
||||
}
|
||||
|
||||
override fun showColdStartWindow() {
|
||||
val activity = AppStateManager.currentActivity() ?: return
|
||||
ThreadUtils.runOnUiThread {
|
||||
val coldStartWindow = ColdStartAgainWindow(activity)
|
||||
coldStartWindow.showFloatWindow()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -22,6 +22,7 @@ import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.eagle.core.widget.media.video.SimpleVideoPlayer
|
||||
import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder
|
||||
import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack
|
||||
import com.zhjt.mogo_core_function_devatools.coldstart.ColdStartConfig
|
||||
import me.jessyan.autosize.utils.AutoSizeUtils
|
||||
|
||||
/**
|
||||
@@ -107,12 +108,14 @@ class ColdStartAgainWindow constructor(activity: Activity){
|
||||
mWindowParams!!.x = 0
|
||||
mWindowParams!!.y = 0
|
||||
mWindowManager!!.addView(mFloatLayout, mWindowParams)
|
||||
ColdStartConfig.setShowWindowStatus(true)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun hideFloatWindow() {
|
||||
if (mFloatLayout.parent != null) mWindowManager!!.removeView(mFloatLayout)
|
||||
ColdStartConfig.setShowWindowStatus(false)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -23,11 +23,14 @@ import com.mogo.eagle.core.utilcode.util.ResourceUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.zhjt.mogo.adas.data.AdasConstants
|
||||
import com.zhjt.mogo_core_function_devatools.coldstart.ColdStartAnalyticsManager
|
||||
import com.zhjt.mogo_core_function_devatools.coldstart.ColdStartConfig
|
||||
import kotlinx.android.synthetic.main.view_cold_start.view.ivColdStartStatus
|
||||
import kotlinx.android.synthetic.main.view_cold_start.view.ivIpcConnectStatus
|
||||
import kotlinx.android.synthetic.main.view_cold_start.view.ivSsmConnectStatus
|
||||
import kotlinx.android.synthetic.main.view_cold_start.view.tvColdStartContent
|
||||
import kotlinx.android.synthetic.main.view_cold_start.view.tvColdStartNodeState
|
||||
import kotlinx.android.synthetic.main.view_cold_start.view.tvColdStartNow
|
||||
import kotlinx.android.synthetic.main.view_cold_start.view.tvIpcConnectContent
|
||||
import kotlinx.android.synthetic.main.view_cold_start.view.tvSsmConnectContent
|
||||
import kotlinx.android.synthetic.main.view_cold_start.view.tvSystemStartupTitle
|
||||
@@ -76,9 +79,13 @@ class ColdStartView @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
private fun initView(){
|
||||
tvSystemStartupTitle.setOnLongClickListener {
|
||||
//立即用车
|
||||
tvColdStartNow.setOnClickListener{
|
||||
hideColdStartView()
|
||||
true
|
||||
//立即用车埋点统计
|
||||
ColdStartAnalyticsManager.coldStartStepAnalytics(ColdStartAnalyticsManager.coldStartNow)
|
||||
//保存点击时间
|
||||
ColdStartConfig.setColdStartNowState(System.currentTimeMillis())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -218,6 +225,10 @@ class ColdStartView @JvmOverloads constructor(
|
||||
if(it.eventStatus == SsmInfo.CSState.COLD_START_READY){
|
||||
//冷启动就绪
|
||||
showColdStartSuccessView()
|
||||
//冷启动成功埋点统计
|
||||
ColdStartAnalyticsManager.coldStartStepAnalytics(ColdStartAnalyticsManager.coldStartSuccess)
|
||||
//记录冷启动成功时间
|
||||
ColdStartConfig.setColdStartSuccessTime(System.currentTimeMillis())
|
||||
}
|
||||
tvColdStartContent.text = getColdStartEventStatus(it.eventStatus)
|
||||
nodeStatusSb.clear()
|
||||
@@ -301,7 +312,7 @@ class ColdStartView @JvmOverloads constructor(
|
||||
private fun showIPCConnectSuccessView(){
|
||||
ipcRotationAnim?.cancel()
|
||||
ivIpcConnectStatus.rotation = 0f
|
||||
tvSystemStartupTitle.text = resources.getString(R.string.cold_start_in_progress_title)
|
||||
tvSystemStartupTitle.text = resources.getString(R.string.cold_start_title_ssm_wait)
|
||||
ivIpcConnectStatus.setImageDrawable(ResourceUtils.getDrawable(R.drawable.icon_cold_start_success))
|
||||
tvIpcConnectContent.text = resources.getString(R.string.ipc_connect_success)
|
||||
//开启连接SSM倒计时
|
||||
@@ -310,7 +321,9 @@ class ColdStartView @JvmOverloads constructor(
|
||||
viewSsmConnectDivider.visibility = View.VISIBLE
|
||||
ivSsmConnectStatus.setImageDrawable(ResourceUtils.getDrawable(R.drawable.icon_cold_start_process))
|
||||
//旋转动画
|
||||
ssmRotationAnim = ObjectAnimator.ofFloat(ivSsmConnectStatus, "rotation", 0f, 360f)
|
||||
if(ssmRotationAnim == null){
|
||||
ssmRotationAnim = ObjectAnimator.ofFloat(ivSsmConnectStatus, "rotation", 0f, 360f)
|
||||
}
|
||||
ssmRotationAnim?.repeatCount = ValueAnimator.INFINITE
|
||||
ssmRotationAnim?.repeatMode = ValueAnimator.RESTART
|
||||
ssmRotationAnim?.duration = 1500
|
||||
@@ -326,12 +339,15 @@ class ColdStartView @JvmOverloads constructor(
|
||||
viewColdStartDivider.visibility = View.GONE
|
||||
ivColdStartStatus.visibility = View.GONE
|
||||
tvColdStartContent.visibility = View.GONE
|
||||
//域控连接成功埋点统计
|
||||
ColdStartAnalyticsManager.coldStartStepAnalytics(ColdStartAnalyticsManager.ipcConnectSuccess)
|
||||
}
|
||||
|
||||
/**
|
||||
* 展示域控连接失败视图
|
||||
*/
|
||||
private fun showIPCConnectFailView(reason: String?){
|
||||
tvSystemStartupTitle.text = resources.getString(R.string.cold_start_title_tel_exception)
|
||||
if(tvIpcConnectContent.text.isNotEmpty() && tvIpcConnectContent.text.equals(reason)){
|
||||
return
|
||||
}
|
||||
@@ -349,13 +365,17 @@ class ColdStartView @JvmOverloads constructor(
|
||||
viewColdStartDivider.visibility = View.GONE
|
||||
ivColdStartStatus.visibility = View.GONE
|
||||
tvColdStartContent.visibility = View.GONE
|
||||
|
||||
//域控连接失败埋点统计
|
||||
ColdStartAnalyticsManager.coldStartStepAnalytics(ColdStartAnalyticsManager.ipcConnectFail)
|
||||
}
|
||||
|
||||
private fun showIPCConnecting(){
|
||||
tvSystemStartupTitle.text = resources.getString(R.string.cold_start_title_tel_wait)
|
||||
ivIpcConnectStatus.setImageDrawable(ResourceUtils.getDrawable(R.drawable.icon_cold_start_process))
|
||||
tvIpcConnectContent.text = "正在连接域控..."
|
||||
ipcRotationAnim = ObjectAnimator.ofFloat(ivIpcConnectStatus, "rotation", 0f, 360f)
|
||||
tvIpcConnectContent.text = "正在重连域控..."
|
||||
if(ipcRotationAnim == null){
|
||||
ipcRotationAnim = ObjectAnimator.ofFloat(ivIpcConnectStatus, "rotation", 0f, 360f)
|
||||
}
|
||||
ipcRotationAnim?.repeatCount = ValueAnimator.INFINITE
|
||||
ipcRotationAnim?.repeatMode = ValueAnimator.RESTART
|
||||
ipcRotationAnim?.duration = 1500
|
||||
@@ -383,6 +403,8 @@ class ColdStartView @JvmOverloads constructor(
|
||||
coldStartProcess()
|
||||
//主动查询冷启动状态
|
||||
CallerAutoPilotControlManager.sendSsmFuncQueryColdStartState()
|
||||
//SSM连接成功埋点统计
|
||||
ColdStartAnalyticsManager.coldStartStepAnalytics(ColdStartAnalyticsManager.ssmConnectSuccess)
|
||||
}
|
||||
ssmConnectStatus = true
|
||||
coldStartStatus = false
|
||||
@@ -392,7 +414,7 @@ class ColdStartView @JvmOverloads constructor(
|
||||
* 展示SSM连接成功视图
|
||||
*/
|
||||
private fun showSSMConnectSuccessView(){
|
||||
tvSystemStartupTitle.text = resources.getString(R.string.cold_start_in_progress_title)
|
||||
tvSystemStartupTitle.text = resources.getString(R.string.cold_start_title_sys_wait)
|
||||
//取消旋转动画
|
||||
ssmRotationAnim?.cancel()
|
||||
//取消连接SSM超时等待倒计时
|
||||
@@ -409,7 +431,9 @@ class ColdStartView @JvmOverloads constructor(
|
||||
tvColdStartContent.text = "启动中…"
|
||||
ivColdStartStatus.setImageDrawable(ResourceUtils.getDrawable(R.drawable.icon_cold_start_process))
|
||||
//开启冷启动连接状态动画
|
||||
coldStartRotationAnim = ObjectAnimator.ofFloat(ivColdStartStatus, "rotation", 0f, 360f)
|
||||
if(coldStartRotationAnim == null){
|
||||
coldStartRotationAnim = ObjectAnimator.ofFloat(ivColdStartStatus, "rotation", 0f, 360f)
|
||||
}
|
||||
coldStartRotationAnim?.repeatCount = ValueAnimator.INFINITE
|
||||
coldStartRotationAnim?.repeatMode = ValueAnimator.RESTART
|
||||
coldStartRotationAnim?.duration = 1500
|
||||
@@ -421,7 +445,7 @@ class ColdStartView @JvmOverloads constructor(
|
||||
* 展示SSM连接失败视图
|
||||
*/
|
||||
private fun showSSMConnectFailView(){
|
||||
tvSystemStartupTitle.text = resources.getString(R.string.cold_start_fail_title)
|
||||
tvSystemStartupTitle.text = resources.getString(R.string.cold_start_title_ssm_exception)
|
||||
//取消旋转动画
|
||||
ssmRotationAnim?.cancel()
|
||||
ivSsmConnectStatus.rotation = 0f
|
||||
@@ -448,6 +472,8 @@ class ColdStartView @JvmOverloads constructor(
|
||||
connectSSMTimer?.cancel()
|
||||
//展示连接SSM失败视图
|
||||
showSSMConnectFailView()
|
||||
//SSM连接失败埋点统计
|
||||
ColdStartAnalyticsManager.coldStartStepAnalytics(ColdStartAnalyticsManager.ssmConnectFail)
|
||||
}
|
||||
}
|
||||
connectSSMTimer?.start()
|
||||
@@ -468,6 +494,8 @@ class ColdStartView @JvmOverloads constructor(
|
||||
coldStartStatus = false
|
||||
//展示冷启动失败视图
|
||||
showColdStartFailView()
|
||||
//冷启动失败埋点统计
|
||||
ColdStartAnalyticsManager.coldStartStepAnalytics(ColdStartAnalyticsManager.coldStartFail)
|
||||
}
|
||||
}
|
||||
connectColdStartTimer?.start()
|
||||
@@ -478,7 +506,7 @@ class ColdStartView @JvmOverloads constructor(
|
||||
* 冷启动失败视图
|
||||
*/
|
||||
private fun showColdStartFailView(){
|
||||
tvSystemStartupTitle.text = resources.getString(R.string.cold_start_fail_title)
|
||||
tvSystemStartupTitle.text = resources.getString(R.string.cold_start_title_sys_exception)
|
||||
coldStartRotationAnim?.cancel()
|
||||
ivColdStartStatus.rotation = 0f
|
||||
ivColdStartStatus.setImageDrawable(ResourceUtils.getDrawable(R.drawable.icon_cold_start_fail))
|
||||
@@ -490,7 +518,7 @@ class ColdStartView @JvmOverloads constructor(
|
||||
* 冷启动成功视图
|
||||
*/
|
||||
private fun showColdStartSuccessView(){
|
||||
tvSystemStartupTitle.text = resources.getString(R.string.cold_start_success_title)
|
||||
tvSystemStartupTitle.text = resources.getString(R.string.cold_start_title_sys_success)
|
||||
coldStartRotationAnim?.cancel()
|
||||
ivColdStartStatus.rotation = 0f
|
||||
ivColdStartStatus.setImageDrawable(ResourceUtils.getDrawable(R.drawable.icon_cold_start_success))
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
@@ -14,9 +14,9 @@
|
||||
android:textSize="@dimen/sp_70"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
android:text="@string/cold_start_in_progress_title"
|
||||
android:layout_marginTop="@dimen/dp_432"
|
||||
android:layout_marginStart="@dimen/dp_261"
|
||||
android:text="@string/cold_start_title_tel_wait"
|
||||
/>
|
||||
|
||||
<ImageView
|
||||
@@ -120,5 +120,32 @@
|
||||
android:textColor="#B2FFFFFF"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvColdStartNow"
|
||||
android:layout_width="@dimen/dp_351"
|
||||
android:layout_height="@dimen/dp_99"
|
||||
android:background="@drawable/bg_cold_start_now"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
android:layout_marginEnd="@dimen/dp_191"
|
||||
android:layout_marginBottom="@dimen/dp_183"
|
||||
android:text="@string/cold_start_now"
|
||||
android:textSize="@dimen/sp_36"
|
||||
android:textColor="@color/white"
|
||||
android:gravity="center"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
android:text="@string/cold_start_now_tip"
|
||||
android:textSize="@dimen/sp_28"
|
||||
android:textColor="#82FFFFFF"
|
||||
android:layout_marginEnd="@dimen/dp_191"
|
||||
android:layout_marginBottom="@dimen/dp_116"
|
||||
/>
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -220,10 +220,21 @@
|
||||
<string name="cold_start_in_progress_title">系统启动中…</string>
|
||||
<string name="cold_start_success_title">系统启动成功</string>
|
||||
<string name="cold_start_fail_title">系统启动失败</string>
|
||||
<string name="ssm_connect_loading">正在连接SSM…</string>
|
||||
<string name="ssm_connect_success">已连接SSM</string>
|
||||
<string name="ssm_connect_fail">SSM连接异常,建议重启车辆并上报问题</string>
|
||||
<string name="ssm_connect_loading">正在等待SSM信息</string>
|
||||
<string name="ssm_connect_success">与SSM通信正常</string>
|
||||
<string name="ssm_connect_fail">超时未收到SSM信息,建议重启车辆并上报问题</string>
|
||||
<string name="cold_start_success_content">系统启动成功,即将进入主页</string>
|
||||
<string name="cold_start_fail_content">系统启动异常,建议重启车辆并上报问题</string>
|
||||
<string name="cold_start_fail_content">系统启动异常,建议上报问题,可尝试重启车辆</string>
|
||||
|
||||
<string name="cold_start_title_tel_wait">等待连接域控</string>
|
||||
<string name="cold_start_title_tel_exception">连接域控异常</string>
|
||||
<string name="cold_start_title_ssm_wait">等待SSM信息</string>
|
||||
<string name="cold_start_title_ssm_exception">与SSM通信异常</string>
|
||||
<string name="cold_start_title_sys_wait">等待系统启动</string>
|
||||
<string name="cold_start_title_sys_success">系统启动成功,即将进入主页</string>
|
||||
<string name="cold_start_title_sys_exception">系统启动异常</string>
|
||||
|
||||
<string name="cold_start_now">立即用车</string>
|
||||
<string name="cold_start_now_tip">启动未完成时,可能会导致自动驾驶等功能无法使用</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -302,4 +302,9 @@ interface IMoGoHmiProvider :IProvider{
|
||||
* 视角弹窗是否已展示
|
||||
*/
|
||||
fun isHdMapVisualAngleAdjustShow(): Boolean
|
||||
|
||||
/**
|
||||
* 展示冷启动弹窗
|
||||
*/
|
||||
fun showColdStartWindow()
|
||||
}
|
||||
@@ -440,4 +440,12 @@ object CallerHmiManager {
|
||||
fun isHdMapVisualAngleAdjustShow(): Boolean {
|
||||
return hmiProviderApi?.isHdMapVisualAngleAdjustShow() ?: false
|
||||
}
|
||||
|
||||
/**
|
||||
* 展示冷启动弹窗
|
||||
*/
|
||||
fun showColdStartWindow(){
|
||||
hmiProviderApi?.showColdStartWindow()
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user