[6.8.0]冷启动三期进度条调整

This commit is contained in:
xuxinchao
2024-11-22 17:49:17 +08:00
parent 42a981b3e9
commit ac9f70e3f1
3 changed files with 59 additions and 20 deletions

View File

@@ -24,7 +24,9 @@ import com.mogo.eagle.core.utilcode.util.ResourceUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.zhjt.mogo.adas.data.AdasConstants
import com.zhjt.mogo_core_function_devatools.coldstart.ColdStartConfig
import kotlinx.android.synthetic.main.view_cold_start_process.view.clColdStartLayout
import kotlinx.android.synthetic.main.view_cold_start_process.view.ivColdStartProcess
import kotlinx.android.synthetic.main.view_cold_start_process.view.ivColdStartResult
import system_master.SsmInfo
import system_master.SystemStatusInfo
import java.util.Locale
@@ -51,6 +53,7 @@ class ColdStartProcessView @JvmOverloads constructor(
const val COLD_START_SUCCESS_TICK_TIME = 500L //冷启动成功视图呼吸时长
}
private var ipcConnectStatus = false //连接域控状态,默认是未连接
private var ssmConnectStatus = false //SSM连接状态默认是未连接
private var coldStartStatus = false //冷启动状态,默认是未冷启动成功
@@ -77,17 +80,15 @@ class ColdStartProcessView @JvmOverloads constructor(
coldStartProcessNormalAnim = FrameAnimatorContainerUtils(R.array.cold_start_process_normal,40,ivColdStartProcess)
coldStartProcessAbnormalAnim = FrameAnimatorContainerUtils(R.array.cold_start_process_abnormal,40,ivColdStartProcess)
transition = TransitionDrawable(
arrayOf(
ContextCompat.getDrawable(context, R.drawable.icon_cold_start_success_01), // 当前图片
ContextCompat.getDrawable(context, R.drawable.icon_cold_start_success_02) // 要渐变到的图片
)
)
ivColdStartProcess.setImageDrawable(transition)
ivColdStartResult.setImageDrawable(transition)
transition?.isCrossFadeEnabled = true
ivColdStartProcess.setOnClickListener {
clColdStartLayout.setOnClickListener {
CallerHmiManager.showColdStartWindow()
}
}
@@ -112,8 +113,10 @@ class ColdStartProcessView @JvmOverloads constructor(
override fun showColdStartProcessView() {
super.showColdStartProcessView()
if(this.visibility != View.VISIBLE){
this.visibility = View.VISIBLE
ThreadUtils.runOnUiThread {
if(this.visibility != View.VISIBLE){
this.visibility = View.VISIBLE
}
}
}
@@ -129,9 +132,11 @@ class ColdStartProcessView @JvmOverloads constructor(
coldStartNormalView()
//开启连接SSM倒计时
connectSSMProcess()
ipcConnectStatus = true
}else{
//域控连接失败
coldStartAbnormalView()
ipcConnectStatus = false
}
}
@@ -211,6 +216,8 @@ class ColdStartProcessView @JvmOverloads constructor(
if(it.eventStatus == SsmInfo.CSState.COLD_START_UNREADY || it.eventStatus == SsmInfo.CSState.COLD_START_TIMEOUT){
//展示冷启动失败视图
showColdStartFailView()
//取消冷启动等待
connectColdStartTimer?.cancel()
}
}
}
@@ -222,12 +229,15 @@ class ColdStartProcessView @JvmOverloads constructor(
*/
private fun coldStartNormalView(){
ThreadUtils.runOnUiThread {
if(coldStartProcessNormalAnim?.isPlaying() == true){
return@runOnUiThread
}
ivColdStartProcess.visibility = View.VISIBLE
ivColdStartResult.visibility = View.GONE
if(coldStartProcessAbnormalAnim?.isPlaying() == true){
coldStartProcessAbnormalAnim?.stop()
}
if(coldStartProcessNormalAnim?.isPlaying() == false){
coldStartProcessNormalAnim?.start()
}
coldStartProcessNormalAnim?.start()
}
}
@@ -236,12 +246,15 @@ class ColdStartProcessView @JvmOverloads constructor(
*/
private fun coldStartAbnormalView(){
ThreadUtils.runOnUiThread {
if(coldStartProcessAbnormalAnim?.isPlaying() == true){
return@runOnUiThread
}
ivColdStartProcess.visibility = View.VISIBLE
ivColdStartResult.visibility = View.GONE
if(coldStartProcessNormalAnim?.isPlaying() == true){
coldStartProcessNormalAnim?.stop()
}
if(coldStartProcessAbnormalAnim?.isPlaying() == false){
coldStartProcessAbnormalAnim?.start()
}
coldStartProcessAbnormalAnim?.start()
}
}
@@ -256,6 +269,9 @@ class ColdStartProcessView @JvmOverloads constructor(
if(coldStartProcessAbnormalAnim?.isPlaying() == true){
coldStartProcessAbnormalAnim?.stop()
}
ivColdStartProcess.visibility = View.GONE
ivColdStartResult.visibility = View.VISIBLE
ivColdStartResult.setImageDrawable((ResourceUtils.getDrawable(R.drawable.icon_cold_start_success_02)))
var label = true
coldStartSuccessTimer = object: CountDownTimer(COLD_START_SUCCESS_SHOW_TIME,COLD_START_SUCCESS_TICK_TIME){
override fun onTick(millisUntilFinished: Long) {
@@ -294,7 +310,9 @@ class ColdStartProcessView @JvmOverloads constructor(
if(coldStartProcessAbnormalAnim?.isPlaying() == true){
coldStartProcessAbnormalAnim?.stop()
}
ivColdStartProcess.setImageDrawable((ResourceUtils.getDrawable(R.drawable.icon_cold_start_fail_02)))
ivColdStartProcess.visibility = View.GONE
ivColdStartResult.visibility = View.VISIBLE
ivColdStartResult.setImageDrawable((ResourceUtils.getDrawable(R.drawable.icon_cold_start_fail_02)))
}
}

View File

@@ -1,8 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ivColdStartProcess"
android:layout_width="@dimen/dp_510"
android:layout_height="@dimen/dp_72"
android:contentDescription="@string/cold_start_process">
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/clColdStartLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto">
</ImageView>
<ImageView
android:id="@+id/ivColdStartProcess"
android:layout_width="@dimen/dp_450"
android:layout_height="@dimen/dp_12"
android:contentDescription="@string/cold_start_process"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="@dimen/dp_30"
/>
<ImageView
android:id="@+id/ivColdStartResult"
android:layout_width="@dimen/dp_510"
android:layout_height="@dimen/dp_72"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:contentDescription="@string/cold_start_process"
android:visibility="gone"
/>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -218,7 +218,6 @@
<com.mogo.eagle.core.function.hmi.ui.widget.ColdStartProcessView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="45dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"