[6.8.0]冷启动进度条修改

This commit is contained in:
xuxinchao
2024-11-26 19:48:02 +08:00
parent 720e7da7a3
commit 18fea9fac5

View File

@@ -4,7 +4,6 @@ import android.animation.Animator
import android.animation.ObjectAnimator
import android.animation.ValueAnimator
import android.content.Context
import android.graphics.drawable.TransitionDrawable
import android.os.CountDownTimer
import android.text.TextUtils
import android.util.AttributeSet
@@ -12,7 +11,6 @@ import android.util.Log
import android.view.LayoutInflater
import android.view.View
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.content.ContextCompat
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoColdStartStateListener
import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener
@@ -52,8 +50,6 @@ class ColdStartProcessView @JvmOverloads constructor(
const val TAG = "ColdStartProcessView"
const val LOAD_SSM_WAITING_TIME = 180000L //SSM加载超时等待时间
const val COLD_START_WAITING_TIME = 600000L //冷启动超时等待时间
const val COLD_START_SUCCESS_SHOW_TIME = 3000L //冷启动成功视图展示时长
const val COLD_START_SUCCESS_TICK_TIME = 500L //冷启动成功视图呼吸时长
}
private var ipcConnectStatus = false //连接域控状态,默认是未连接
@@ -71,8 +67,8 @@ class ColdStartProcessView @JvmOverloads constructor(
private var coldStartProcessNormalAnim: FrameAnimatorContainerUtils ?= null
private var coldStartProcessAbnormalAnim: FrameAnimatorContainerUtils ?= null
private var transition: TransitionDrawable ?= null
private var coldStartSuccessTimer: CountDownTimer?= null //冷启动成功动画倒计时
private var successAlpha: ObjectAnimator ?= null //冷启动成功呼吸动画
private var failAlpha: ObjectAnimator ?= null //冷启动失败呼吸动画
init {
LayoutInflater.from(context).inflate(R.layout.view_cold_start_process, this, true)
@@ -80,15 +76,6 @@ class ColdStartProcessView @JvmOverloads constructor(
}
private fun initView(){
transition = TransitionDrawable(
arrayOf(
ContextCompat.getDrawable(context, R.drawable.icon_cold_start_success_01), // 当前图片
ContextCompat.getDrawable(context, R.drawable.icon_cold_start_success_02) // 要渐变到的图片
)
)
ivColdStartResult.setImageDrawable(transition)
transition?.isCrossFadeEnabled = true
clColdStartLayout.setOnClickListener {
CallerHmiManager.showColdStartWindow()
}
@@ -110,15 +97,25 @@ class ColdStartProcessView @JvmOverloads constructor(
coldStartProcessAbnormalAnim?.release()
connectSSMTimer?.cancel()
connectColdStartTimer?.cancel()
successAlpha?.cancel()
failAlpha?.cancel()
}
override fun showColdStartProcessView() {
super.showColdStartProcessView()
ThreadUtils.runOnUiThread {
if(this.visibility != View.VISIBLE){
if(this@ColdStartProcessView.visibility != View.VISIBLE){
this.visibility = View.VISIBLE
coldStartProcessNormalAnim = FrameAnimatorContainerUtils(R.array.cold_start_process_normal,40,ivColdStartProcess)
coldStartProcessAbnormalAnim = FrameAnimatorContainerUtils(R.array.cold_start_process_abnormal,40,ivColdStartProcess)
coldStartProcessNormalAnim = FrameAnimatorContainerUtils(R.array.cold_start_process_normal,40,ivColdStartProcess)
ipcConnectStatus = true
ssmConnectStatus = false
coldStartStatus = false
newColdStart = false
//域控连接成功
coldStartNormalView()
//开启连接SSM倒计时
connectSSMProcess()
}
}
}
@@ -212,6 +209,8 @@ class ColdStartProcessView @JvmOverloads constructor(
//冷启动就绪
coldStartStatus = true
showColdStartSuccessView()
//取消冷启动等待
connectColdStartTimer?.cancel()
}
//记录冷启动成功时间
ColdStartConfig.setColdStartSuccessTime(System.currentTimeMillis())
@@ -274,19 +273,21 @@ class ColdStartProcessView @JvmOverloads constructor(
}
ivColdStartProcess.visibility = View.GONE
ivColdStartResult.visibility = View.VISIBLE
failAlpha?.cancel()
ivColdStartResult.setImageDrawable((ResourceUtils.getDrawable(R.drawable.icon_cold_start_success_02)))
val successAlpha: ObjectAnimator = ObjectAnimator.ofFloat(ivColdStartResult,"alpha",1f,0.5f)
successAlpha.duration = 500
successAlpha.repeatMode = ValueAnimator.REVERSE
successAlpha.repeatCount = 6
successAlpha.start()
successAlpha.addListener(object: Animator.AnimatorListener{
successAlpha = ObjectAnimator.ofFloat(ivColdStartResult,"alpha",1f,0.5f)
successAlpha?.duration = 500
successAlpha?.repeatMode = ValueAnimator.REVERSE
successAlpha?.repeatCount = 6
successAlpha?.start()
successAlpha?.addListener(object: Animator.AnimatorListener{
override fun onAnimationStart(animation: Animator) {
}
override fun onAnimationEnd(animation: Animator) {
ivColdStartResult.visibility = View.GONE
this@ColdStartProcessView.visibility = View.GONE
}
override fun onAnimationCancel(animation: Animator) {
@@ -299,31 +300,6 @@ class ColdStartProcessView @JvmOverloads constructor(
})
// var label = true
// coldStartSuccessTimer = object: CountDownTimer(COLD_START_SUCCESS_SHOW_TIME,COLD_START_SUCCESS_TICK_TIME){
// override fun onTick(millisUntilFinished: Long) {
// ThreadUtils.runOnUiThread {
// label = if(label){
// transition?.startTransition(500)
// false
// }else{
// transition?.reverseTransition(500)
// true
// }
// }
// }
//
// override fun onFinish() {
// ThreadUtils.runOnUiThread {
// this@ColdStartProcessView.visibility = View.GONE
// coldStartProcessNormalAnim?.release()
// coldStartProcessAbnormalAnim?.release()
// }
// }
//
// }
// coldStartSuccessTimer?.start()
}
}
@@ -340,12 +316,13 @@ class ColdStartProcessView @JvmOverloads constructor(
}
ivColdStartProcess.visibility = View.GONE
ivColdStartResult.visibility = View.VISIBLE
successAlpha?.cancel()
ivColdStartResult.setImageDrawable((ResourceUtils.getDrawable(R.drawable.icon_cold_start_fail_02)))
val failAlpha: ObjectAnimator = ObjectAnimator.ofFloat(ivColdStartResult,"alpha",1f,0.5f)
failAlpha.duration = 500
failAlpha.repeatMode = ValueAnimator.REVERSE
failAlpha.repeatCount = ValueAnimator.INFINITE
failAlpha.start()
failAlpha = ObjectAnimator.ofFloat(ivColdStartResult,"alpha",1f,0.5f)
failAlpha?.duration = 500
failAlpha?.repeatMode = ValueAnimator.REVERSE
failAlpha?.repeatCount = ValueAnimator.INFINITE
failAlpha?.start()
}
}