[6.5.0]红绿灯优化
This commit is contained in:
@@ -179,9 +179,9 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight
|
||||
lastLightTime = System.currentTimeMillis()
|
||||
if (lightCountDownTimer == null){
|
||||
UiThreadHandler.post {
|
||||
lightCountDownTimer = object : CountDownTimer(300000, 1000) {
|
||||
lightCountDownTimer = object : CountDownTimer(300000, 500) {
|
||||
override fun onTick(millisUntilFinished: Long) {
|
||||
if ((System.currentTimeMillis() - lastLightTime) > 1500) {
|
||||
if ((System.currentTimeMillis() - lastLightTime) > 1000) {
|
||||
//隐藏红绿灯显示
|
||||
hide("倒计时结束隐藏", DataSourceType.TELEMATIC_UNION_V2N)
|
||||
lightCountDownTimer?.cancel()
|
||||
|
||||
@@ -55,24 +55,24 @@ class TrafficLightPromptView @JvmOverloads constructor(
|
||||
when(msg.what){
|
||||
LIGHT_CHECK->{
|
||||
if(startTime == 0L){
|
||||
sendEmptyMessageDelayed(LIGHT_CHECK, 1000L)
|
||||
sendEmptyMessageDelayed(LIGHT_CHECK, 500L)
|
||||
return
|
||||
}
|
||||
val endTime = System.nanoTime()
|
||||
val internal = TimeUnit.NANOSECONDS.toMillis(endTime - startTime)
|
||||
if(internal > 700){
|
||||
if(internal > 400){
|
||||
UiThreadHandler.post {
|
||||
tvTrafficNum?.text = "0."
|
||||
tvTrafficNumDecimal?.text = "00"
|
||||
}
|
||||
}
|
||||
if(internal>1500){
|
||||
if(internal>900){
|
||||
UiThreadHandler.post{
|
||||
this@TrafficLightPromptView.visibility = GONE
|
||||
}
|
||||
return
|
||||
}
|
||||
sendEmptyMessageDelayed(LIGHT_CHECK, 1000L)
|
||||
sendEmptyMessageDelayed(LIGHT_CHECK, 500L)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -118,7 +118,7 @@ class TrafficLightPromptView @JvmOverloads constructor(
|
||||
when(currentState){
|
||||
TrafficLightEnum.GREEN->{
|
||||
if(this@TrafficLightPromptView.visibility == View.GONE){
|
||||
mLightHandler.sendEmptyMessageDelayed(LIGHT_CHECK, 1000L)
|
||||
mLightHandler.sendEmptyMessageDelayed(LIGHT_CHECK, 500L)
|
||||
this@TrafficLightPromptView.visibility = View.VISIBLE
|
||||
}
|
||||
if(user == 0){
|
||||
@@ -131,7 +131,7 @@ class TrafficLightPromptView @JvmOverloads constructor(
|
||||
}
|
||||
TrafficLightEnum.RED->{
|
||||
if(this@TrafficLightPromptView.visibility == View.GONE){
|
||||
mLightHandler.sendEmptyMessageDelayed(LIGHT_CHECK, 1000L)
|
||||
mLightHandler.sendEmptyMessageDelayed(LIGHT_CHECK, 500L)
|
||||
this@TrafficLightPromptView.visibility = View.VISIBLE
|
||||
}
|
||||
if(user == 0){
|
||||
@@ -144,7 +144,7 @@ class TrafficLightPromptView @JvmOverloads constructor(
|
||||
}
|
||||
TrafficLightEnum.YELLOW->{
|
||||
if(this@TrafficLightPromptView.visibility == View.GONE){
|
||||
mLightHandler.sendEmptyMessageDelayed(LIGHT_CHECK, 1000L)
|
||||
mLightHandler.sendEmptyMessageDelayed(LIGHT_CHECK, 500L)
|
||||
this@TrafficLightPromptView.visibility = View.VISIBLE
|
||||
}
|
||||
if(user == 0){
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.mogo.eagle.core.function.hmi.ui.widget
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.widget.ImageView
|
||||
@@ -46,6 +45,9 @@ class FusionTrafficLightView @JvmOverloads constructor(
|
||||
private var fusionTrafficLightPointer: ImageView ?= null //融合红绿灯指针
|
||||
private var fusionTrafficLightProportion: ProportionChartView ?= null //占比进度条
|
||||
|
||||
private var currentLightState = TrafficLightEnum.BLACK //当前灯态
|
||||
private var currentLightDuration = 0 //当前灯态倒计时
|
||||
|
||||
|
||||
init {
|
||||
val typedArray = context.obtainStyledAttributes(attrs, R.styleable.FusionTrafficLightView)
|
||||
@@ -103,6 +105,11 @@ class FusionTrafficLightView @JvmOverloads constructor(
|
||||
) {
|
||||
super.showFusionTrafficLight(currentState, currentDuration, nextState,
|
||||
nextDuration, nextTwoState, nextTwoDuration, lightSource)
|
||||
if(currentLightState == currentState && currentLightDuration == currentDuration){
|
||||
return
|
||||
}
|
||||
currentLightState = currentState
|
||||
currentLightDuration = currentDuration
|
||||
ThreadUtils.runOnUiThread {
|
||||
//如果当前红绿灯视图为隐藏状态则设置为显示状态
|
||||
if(this@FusionTrafficLightView.visibility == View.GONE){
|
||||
|
||||
Reference in New Issue
Block a user