[6.7.0]冷启动更改
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user