From 99210e0492a2d7f2cd0c16933ef2616bf4576a94 Mon Sep 17 00:00:00 2001 From: renwj Date: Thu, 16 Mar 2023 19:09:21 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[2.15.0][ByteX]=20=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E7=89=88=E6=9C=AC=EF=BC=8C=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E6=89=93=E5=8C=85=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle/ext.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/ext.gradle b/gradle/ext.gradle index be12586da1..022a85f90e 100644 --- a/gradle/ext.gradle +++ b/gradle/ext.gradle @@ -1,6 +1,6 @@ ext { gradle_version = '3.5.3' kotlin_version = '1.5.30' - plugin_version = '10.0.0_mogo' + plugin_version = '10.0.1_mogo' hook_log_plugin_version = '1.7.2' } \ No newline at end of file From 845a6b557c2765b5801b5f720a1df6b341eecfc3 Mon Sep 17 00:00:00 2001 From: renwj Date: Thu, 13 Apr 2023 15:25:10 +0800 Subject: [PATCH 2/2] =?UTF-8?q?[2.15.0][V2N]=20=E4=BC=98=E5=8C=96V2N?= =?UTF-8?q?=E9=A2=84=E8=AD=A6=E8=A7=A6=E5=8F=91=E5=90=8E=EF=BC=8C=E9=A2=84?= =?UTF-8?q?=E8=AD=A6=E7=BA=A2=E8=BE=B9=E6=80=BB=E9=97=AA=E4=B8=8D=E6=B6=88?= =?UTF-8?q?=E5=A4=B1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/function/hmi/ui/MoGoHmiProvider.kt | 4 +- .../function/hmi/ui/widget/V2XFogEventView.kt | 3 + .../function/hmi/ui/widget/V2XWarningView.kt | 125 +++++++++--------- 3 files changed, 70 insertions(+), 62 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt index 0d9980f57e..2ce5f50f64 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt @@ -121,19 +121,19 @@ class MoGoHmiProvider : IMoGoHmiProvider { return } listener?.onShow() + CallerV2XWarningListenerManager.dismiss() CallerV2XWarningListenerManager.show(v2xType, direction, expireTime) CallerLogger.d( "$M_HMI$TAG", "--- show v2x dialog 1 ---: info -> v2x-type: $v2xType : expireTime: $expireTime" ) lastShowV2XJob?.safeCancel() - ProcessLifecycleOwner.get().lifecycleScope.launch(Dispatchers.Main) { + ProcessLifecycleOwner.get().lifecycleScope.launch(Dispatchers.Default) { delay(expireTime) }.also { itx -> lastShowV2XJob = itx }.invokeOnCompletion { listener?.onDismiss() - CallerV2XWarningListenerManager.dismiss() } Log.d("CODE", "---- 00 ------ tts_content: $ttsContent") diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/V2XFogEventView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/V2XFogEventView.kt index 316927bb91..5c0cda896e 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/V2XFogEventView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/V2XFogEventView.kt @@ -75,6 +75,9 @@ class V2XFogEventView(context: Context, attrs: AttributeSet) : override fun show(v2xType: String, direction: WarningDirectionEnum, time: Long) { ThreadUtils.runOnUiThread { if(v2xType == EventTypeEnumNew.FOURS_FOG.poiType){ + if (animatorSet.isStarted) { + return@runOnUiThread + } animatorSet.start() } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/V2XWarningView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/V2XWarningView.kt index 638d98997e..a6aaa074e4 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/V2XWarningView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/V2XWarningView.kt @@ -18,6 +18,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_ import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import kotlinx.android.synthetic.main.view_v2x_warning.view.* +import java.util.concurrent.atomic.AtomicReference class V2XWarningView @JvmOverloads constructor( @@ -35,6 +36,8 @@ class V2XWarningView @JvmOverloads constructor( showWarning(ALERT_WARNING_NON) } + private val oldDirection = AtomicReference() + init { LayoutInflater.from(context).inflate(R.layout.view_v2x_warning, this, true) } @@ -45,18 +48,11 @@ class V2XWarningView @JvmOverloads constructor( } override fun show(v2xType: String, direction: WarningDirectionEnum, time: Long) { - ThreadUtils.runOnUiThread { - if (direction != ALERT_WARNING_NON) { - showWarning(direction) - } - } - + showWarning(direction, time) } override fun dismiss(direction: WarningDirectionEnum) { - ThreadUtils.runOnUiThread { - dismissWarning(direction) - } + dismissWarning(direction) } /** @@ -65,12 +61,16 @@ class V2XWarningView @JvmOverloads constructor( * @see WarningDirectionEnum */ private fun showWarning(direction: WarningDirectionEnum, time: Long = ALL_CLOSE_TIMER) { - UiThreadHandler.post { - // 如果传入的不是关闭显示,则设置倒计时,定时关闭红框警示 - if (direction != ALERT_WARNING_NON) { - removeCallbacks(closeWarningTask) - postDelayed(closeWarningTask, time) - } + // 如果传入的不是关闭显示,则设置倒计时,定时关闭红框警示 + if (oldDirection.get() == direction) { + return + } + if (direction != ALERT_WARNING_NON) { + oldDirection.set(direction) + removeCallbacks(closeWarningTask) + postDelayed(closeWarningTask, time) + } + post { when (direction) { ALERT_WARNING_NON -> { // nothing @@ -166,12 +166,16 @@ class V2XWarningView @JvmOverloads constructor( hmiWarningRightBottomImg.visibility = View.GONE } } - val alphaAnimation = AlphaAnimation(0f, 0.88f) - alphaAnimation.duration = 600 - alphaAnimation.interpolator = LinearInterpolator() - alphaAnimation.repeatCount = Animation.INFINITE - alphaAnimation.repeatMode = Animation.REVERSE - startAnimation(alphaAnimation) + if (direction == ALERT_WARNING_NON) { + dismissWarning(ALERT_WARNING_ALL) + } else { + val alphaAnimation = AlphaAnimation(0f, 0.88f) + alphaAnimation.duration = 600 + alphaAnimation.interpolator = LinearInterpolator() + alphaAnimation.repeatCount = Animation.INFINITE + alphaAnimation.repeatMode = Animation.REVERSE + startAnimation(alphaAnimation) + } } } @@ -180,51 +184,52 @@ class V2XWarningView @JvmOverloads constructor( return } removeCallbacks(closeWarningTask) - when (direction) { - ALERT_WARNING_TOP -> { - hmiWarningRightTopImg.visibility = View.GONE - } - ALERT_WARNING_RIGHT -> { - hmiWarningRightImg.visibility = View.GONE - } - ALERT_WARNING_BOTTOM -> { - hmiWarningBottomImg.visibility = View.GONE - } - ALERT_WARNING_LEFT -> { - hmiWarningLeftImg.visibility = View.GONE - } - ALERT_WARNING_TOP_RIGHT -> { - hmiWarningRightTopImg.visibility = View.GONE - } - ALERT_WARNING_BOTTOM_RIGHT -> { - hmiWarningRightBottomImg.visibility = View.GONE - } - ALERT_WARNING_BOTTOM_LEFT -> { - hmiWarningLeftBottomImg.visibility = View.GONE - } - ALERT_WARNING_TOP_LEFT -> { - hmiWarningLeftTopImg.visibility = View.GONE - } - ALERT_WARNING_ALL -> { - hmiWarningTopImg.visibility = View.GONE - hmiWarningRightImg.visibility = View.GONE - hmiWarningBottomImg.visibility = View.GONE - hmiWarningLeftImg.visibility = View.GONE - hmiWarningLeftTopImg.visibility = View.GONE - hmiWarningLeftBottomImg.visibility = View.GONE - hmiWarningRightTopImg.visibility = View.GONE - hmiWarningRightBottomImg.visibility = View.GONE - } - else -> { - CallerLogger.d("$M_HMI$TAG", "Not Support Direction") + post { + when (direction) { + ALERT_WARNING_TOP -> { + hmiWarningRightTopImg.visibility = View.GONE + } + ALERT_WARNING_RIGHT -> { + hmiWarningRightImg.visibility = View.GONE + } + ALERT_WARNING_BOTTOM -> { + hmiWarningBottomImg.visibility = View.GONE + } + ALERT_WARNING_LEFT -> { + hmiWarningLeftImg.visibility = View.GONE + } + ALERT_WARNING_TOP_RIGHT -> { + hmiWarningRightTopImg.visibility = View.GONE + } + ALERT_WARNING_BOTTOM_RIGHT -> { + hmiWarningRightBottomImg.visibility = View.GONE + } + ALERT_WARNING_BOTTOM_LEFT -> { + hmiWarningLeftBottomImg.visibility = View.GONE + } + ALERT_WARNING_TOP_LEFT -> { + hmiWarningLeftTopImg.visibility = View.GONE + } + ALERT_WARNING_ALL -> { + hmiWarningTopImg.visibility = View.GONE + hmiWarningRightImg.visibility = View.GONE + hmiWarningBottomImg.visibility = View.GONE + hmiWarningLeftImg.visibility = View.GONE + hmiWarningLeftTopImg.visibility = View.GONE + hmiWarningLeftBottomImg.visibility = View.GONE + hmiWarningRightTopImg.visibility = View.GONE + hmiWarningRightBottomImg.visibility = View.GONE + } + else -> { + CallerLogger.d("$M_HMI$TAG", "Not Support Direction") + } } + clearAnimation() } - clearAnimation() } override fun onDetachedFromWindow() { super.onDetachedFromWindow() CallerV2XWarningListenerManager.removeListener(TAG) } - } \ No newline at end of file