diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/receiver/TurnLightBroadcastReceiver.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/receiver/TurnLightBroadcastReceiver.kt index 602986cc1b..5fcdff1252 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/receiver/TurnLightBroadcastReceiver.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/receiver/TurnLightBroadcastReceiver.kt @@ -30,7 +30,6 @@ class TurnLightBroadcastReceiver : BroadcastReceiver() { try { val type = intent.getIntExtra("type", 0) val lightInt = intent.getIntExtra("light", 0) - Logger.d("liyz", "TurnLightBroadcastReceiver type = $type ---- lightInt = $lightInt") showTurnLight(type, lightInt) } catch (e: Exception) { e.printStackTrace() diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt index 4dbd81db85..ea42adc372 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt @@ -637,11 +637,9 @@ class MoGoHmiFragment : MvpFragment } /** - * 显示转向灯效果 TODO + * 显示转向灯效果 */ override fun showTurnLight(light: Int) { - //Logger.d("liyz", "hmiFragment showTurnLight --- light = $light") -// turnLightView?.visibility = View.VISIBLE turnLightView.setTurnLight(light) } @@ -650,8 +648,6 @@ class MoGoHmiFragment : MvpFragment * 显示刹车效果 */ override fun showBrakeLight(light: Int) { - //Logger.d("liyz", "hmiFragment showBrakeLight --- light = $light") -// brakeView?.visibility = View.VISIBLE brakeView.setBrakeLight(light) } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/turnlight/BrakeViewStatus.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/turnlight/BrakeViewStatus.kt index a165c7d89e..eb15c8d42a 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/turnlight/BrakeViewStatus.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/turnlight/BrakeViewStatus.kt @@ -33,46 +33,53 @@ class BrakeViewStatus @JvmOverloads constructor( LayoutInflater.from(context).inflate(R.layout.view_brake_light_status, this, true) } + private var isBrake :Boolean = false + /** * 刹车动画 */ fun setBrakeLight(brakeLight: Int) { if (brakeLight == 1) { //TODO 暂时还不知道数据,如果一直猜会怎样? - var appearAnimation = AlphaAnimation(0f, 1f) - appearAnimation.duration = 300 - layout_brake.startAnimation(appearAnimation) - image_brake.startAnimation(appearAnimation) - tv_brake.startAnimation(appearAnimation) - layout_brake.visibility = View.VISIBLE - image_brake.visibility = View.VISIBLE - tv_brake.visibility = View.VISIBLE - - } else { //不踩刹车,就消失 - GlobalScope.launch(Dispatchers.Main) { - scaleImageAndTv() + if (!isBrake) { + var appearAnimation = AlphaAnimation(0f, 1f) + appearAnimation.duration = 300 + layout_brake.startAnimation(appearAnimation) + image_brake.startAnimation(appearAnimation) + tv_brake.startAnimation(appearAnimation) + layout_brake.visibility = View.VISIBLE + image_brake.visibility = View.VISIBLE + tv_brake.visibility = View.VISIBLE + isBrake = true } - - var disappearAnimation = AlphaAnimation(1f, 0f) - disappearAnimation.duration = 1200 - layout_brake.startAnimation(disappearAnimation) - image_brake.startAnimation(disappearAnimation) - tv_brake.startAnimation(disappearAnimation) - - disappearAnimation.setAnimationListener(object: Animation.AnimationListener{ - override fun onAnimationRepeat(p0: Animation?) { + } else { //不踩刹车,就消失 + if (isBrake) { + isBrake = false + GlobalScope.launch(Dispatchers.Main) { + scaleImageAndTv() } - override fun onAnimationStart(p0: Animation?) { - } + var disappearAnimation = AlphaAnimation(1f, 0f) + disappearAnimation.duration = 1200 + layout_brake.startAnimation(disappearAnimation) + image_brake.startAnimation(disappearAnimation) + tv_brake.startAnimation(disappearAnimation) - override fun onAnimationEnd(p0: Animation?) { - layout_brake.visibility = View.GONE - image_brake.visibility = View.GONE - tv_brake.visibility = View.GONE + disappearAnimation.setAnimationListener(object: Animation.AnimationListener{ + override fun onAnimationRepeat(p0: Animation?) { + } - stopAnimate() - } - }) + override fun onAnimationStart(p0: Animation?) { + } + + override fun onAnimationEnd(p0: Animation?) { + layout_brake.visibility = View.GONE + image_brake.visibility = View.GONE + tv_brake.visibility = View.GONE + + stopAnimate() + } + }) + } } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/turnlight/TurnLightViewStatus.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/turnlight/TurnLightViewStatus.kt index ecd6a13c84..6703519dbe 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/turnlight/TurnLightViewStatus.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/turnlight/TurnLightViewStatus.kt @@ -30,11 +30,56 @@ class TurnLightViewStatus @JvmOverloads constructor( LayoutInflater.from(context).inflate(R.layout.view_turn_light_status, this, true) } + private var isShowNormalBg :Boolean = false + private var isLeftLight :Boolean = false + private var isRightLight :Boolean = false + private var isDisappare :Boolean = false + /** * 转向灯动画 */ fun setTurnLight(directionLight: Int) { - //显示背景 + if (!isShowNormalBg && (directionLight == 1 || directionLight == 2)) { + showNormalAnimation() + isShowNormalBg = true + } + + //根据左右进行显示和隐藏,实际要判断每个来的时间和频度 + if (directionLight == 1) { //左转向 + if (!isLeftLight) { + left_select_image.visibility = View.VISIBLE + right_select_image.visibility = View.GONE + right_select_image.clearAnimation() + setAnimation(left_select_image) + isLeftLight = true + isRightLight = false + isDisappare = false + } + } else if (directionLight == 2) { //右转向 + if (!isRightLight) { + left_select_image.visibility = View.GONE + right_select_image.visibility = View.VISIBLE + left_select_image.clearAnimation() + setAnimation(right_select_image) + isRightLight = true + isLeftLight = false + isDisappare = false + } + + } else { //消失 + if (!isDisappare) { + animationDisappear() + stopAnimate() + isDisappare = true + isShowNormalBg = false + isLeftLight = false + isDisappare = false + } + } + } + + //显示背景 + private fun showNormalAnimation() { val appearAnimation = AlphaAnimation(0f, 1.0f) appearAnimation.duration = 600 val appearAnimationImage = AlphaAnimation(0f, 1.0f) @@ -46,22 +91,6 @@ class TurnLightViewStatus @JvmOverloads constructor( turn_light_layout.visibility = View.VISIBLE left_nor_image.visibility = View.VISIBLE right_nor_image.visibility = View.VISIBLE - - //根据左右进行显示和隐藏,实际要判断每个来的时间和频度 - if (directionLight == 1) { //左转向 - left_select_image.visibility = View.VISIBLE - right_select_image.visibility = View.GONE - right_select_image.clearAnimation() - setAnimation(left_select_image) - } else if (directionLight == 2) { //右转向 - left_select_image.visibility = View.GONE - right_select_image.visibility = View.VISIBLE - left_select_image.clearAnimation() - setAnimation(right_select_image) - } else { //消失 - animationDisappear() - stopAnimate() - } } //消失动画,当转向等数据为空时候 @@ -73,9 +102,10 @@ class TurnLightViewStatus @JvmOverloads constructor( val disappearAnimationBg = AlphaAnimation(1.0f, 0f) disappearAnimationBg.duration = 1000 - turn_light_layout.startAnimation(disappearAnimationBg) + left_nor_image.startAnimation(disappearAnimationLeft) right_nor_image.startAnimation(disappearAnimationLeft) + turn_light_layout.startAnimation(disappearAnimationBg) disappearAnimationLeft.setAnimationListener(object : Animation.AnimationListener { override fun onAnimationRepeat(p0: Animation?) { @@ -114,6 +144,9 @@ class TurnLightViewStatus @JvmOverloads constructor( } private fun stopAnimate() { + turn_light_layout.clearAnimation() + left_nor_image.clearAnimation() + right_nor_image.clearAnimation() left_select_image.clearAnimation() right_select_image.clearAnimation() } diff --git a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/OnAdasListenerAdapter.java b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/OnAdasListenerAdapter.java index 98f67a6b5c..9665f90b35 100644 --- a/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/OnAdasListenerAdapter.java +++ b/modules/mogo-module-adas/src/main/java/com/mogo/module/adas/OnAdasListenerAdapter.java @@ -69,7 +69,7 @@ public class OnAdasListenerAdapter implements OnAdasListener { int turnLight = bean.getTurn_light(); //转向灯状态 0是正常 1是左转 2是右转 AmiClientManager.getInstance().setTurnLightState(turnLight); int brakeLight = bean.getBrake_light(); //TODO - //Logger.d(TAG, "onCarStateData ---- turnLight = " + turnLight + "---brakeLight = " + brakeLight); +// Logger.d(TAG, "onCarStateData ---- turnLight = " + turnLight + "---brakeLight = " + brakeLight); //设置转向灯 CallerHmiManager.INSTANCE.showTurnLight(turnLight);