diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 12df6938f6..24ec7227ac 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -83,5 +83,6 @@
+
\ No newline at end of file
diff --git a/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/notification/WarningFloat.kt b/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/notification/WarningFloat.kt
index ffaf6c50bc..82e34be586 100644
--- a/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/notification/WarningFloat.kt
+++ b/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/notification/WarningFloat.kt
@@ -140,8 +140,12 @@ class WarningFloat {
* 设置视图状态监听;show,dismiss
* @param listener 设置视图状态监听
*/
- fun setWarningStatusListener(listener: WarningStatusListener?) =
- apply { config.listener = listener }
+ fun addWarningStatusListener(listener: WarningStatusListener?) =
+ apply {
+ if (listener != null) {
+ config.statusListenerMap.add(listener)
+ }
+ }
/**
* 创建浮窗,包括Activity浮窗和系统浮窗,如若系统浮窗无权限,先进行权限申请
diff --git a/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/notification/WarningFloatWindowHelper.kt b/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/notification/WarningFloatWindowHelper.kt
index b5c6688b18..bb7574d376 100644
--- a/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/notification/WarningFloatWindowHelper.kt
+++ b/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/notification/WarningFloatWindowHelper.kt
@@ -119,7 +119,9 @@ internal class WarningFloatWindowHelper(
* 入场动画
*/
private fun enterAnim(floatingView: View) {
- config.listener?.onShow()
+ config.statusListenerMap.forEach { listener ->
+ listener.onShow()
+ }
if (frameLayout == null || config.isAnim) return
enterAnimator = AnimatorManager(frameLayout!!, params, windowManager, config)
.enterAnim()?.apply {
@@ -158,7 +160,9 @@ internal class WarningFloatWindowHelper(
* 退出动画
*/
fun exitAnim() {
- config.listener?.onDismiss()
+ config.statusListenerMap.forEach { listener ->
+ listener.onDismiss()
+ }
if (frameLayout == null || (config.isAnim && enterAnimator == null)) return
enterAnimator?.cancel()
val animator: Animator? =
diff --git a/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/notification/WarningNotificationConfig.kt b/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/notification/WarningNotificationConfig.kt
index 757ef8293f..d19b42f2ff 100644
--- a/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/notification/WarningNotificationConfig.kt
+++ b/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/notification/WarningNotificationConfig.kt
@@ -54,7 +54,7 @@ data class WarningNotificationConfig(
var floatAnimator: OnFloatAnimator? = DefaultAnimator(),
// 设置视图状态监听;show,dismiss
- var listener: WarningStatusListener? = null,
+ var statusListenerMap: ArrayList< WarningStatusListener> = ArrayList(),
// Callbacks
var callbacks: OnFloatCallbacks? = null,
diff --git a/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/ui/MoGoWarningFragment.kt b/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/ui/MoGoWarningFragment.kt
index d82b497ad3..f63844b4ce 100644
--- a/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/ui/MoGoWarningFragment.kt
+++ b/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/ui/MoGoWarningFragment.kt
@@ -66,7 +66,7 @@ class MoGoWarningFragment : MvpFragment ttsContent = $ttsContent")
+ AIAssist.getInstance(activity)
+ .speakTTSVoice(ttsContent)
+ }
+ }
+ })
.setAnimator(object : DefaultAnimator() {
override fun enterAnim(
view: View,
@@ -99,17 +113,6 @@ class MoGoWarningFragment : MvpFragment ttsContent = $ttsContent")
- AIAssist.getInstance(activity)
- .speakTTSVoice(ttsContent)
- }
-
}
}
diff --git a/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/ui/widget/V2XWarningView.kt b/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/ui/widget/V2XWarningView.kt
index 6e8b2b9125..9e188c178e 100644
--- a/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/ui/widget/V2XWarningView.kt
+++ b/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/ui/widget/V2XWarningView.kt
@@ -54,6 +54,7 @@ class V2XWarningView @JvmOverloads constructor(
}
when (direction) {
WarningDirectionEnum.ALERT_WARNING_NON -> {
+ removeCallbacks(closeWarningTask)
hmiWarningTopImg.visibility = View.GONE
hmiWarningRightImg.visibility = View.GONE
hmiWarningBottomImg.visibility = View.GONE
diff --git a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt
index 69392f0a47..f0c25082c6 100644
--- a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt
+++ b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt
@@ -39,7 +39,6 @@ class MogoPrivateObuManager private constructor() {
private var mIMoGoWaringProvider: IMoGoWaringProvider? = null
private var mIMogoMapService: IMogoMapService? = null
private var mContext: Context? = null
- private var isStrikeTts = false
fun init(context: Context?) {
Logger.d(MogoObuConst.TAG_MOGO_OBU, "obuManager初始化--")
@@ -254,39 +253,33 @@ class MogoPrivateObuManager private constructor() {
ObuConstants.STATUS.UPDATE,// 更新
-> {
if (level == 2 || level == 3) {
- if (!isStrikeTts) {
- //显示警告红边
- mIMoGoWaringProvider!!.showWarning(direction)
- //显示弹框,语音提示
- mIMoGoWaringProvider!!.showWarningV2X(
- appId,
- alertContent,
- ttsContent,
- appId.toString(),
- object : WarningStatusListener {
- override fun onShow() {
- isStrikeTts = true
- }
-
- override fun onDismiss() {
- isStrikeTts = false
- }
+ //显示警告红边
+ mIMoGoWaringProvider!!.showWarning(direction)
+ //显示弹框,语音提示
+ mIMoGoWaringProvider!!.showWarningV2X(
+ appId,
+ alertContent,
+ ttsContent,// 只有第一次才tts,防止更新的时候不断的提醒
+ (appId + direction.direction).toString(),//使用当前事件类型+方向记录tag,当发生变化的时候关闭当前弹出新的
+ object : WarningStatusListener {
+ override fun onDismiss() {
+ // 关闭警告红边
+ mIMoGoWaringProvider?.showWarning(WarningDirectionEnum.ALERT_WARNING_NON)
}
- )
- // 更新数据
- TrafficDataConvertUtils.cvxRtiThreatIndInfo2TrafficData(info)?.let {
- TrafficMarkerDrawer.updateITrafficThreatLevelInfo(it)
}
- }
+ )
+ }
+ // 更新数据
+ TrafficDataConvertUtils.cvxRtiThreatIndInfo2TrafficData(info)?.let {
+ TrafficMarkerDrawer.updateITrafficThreatLevelInfo(it)
}
}
// 删除
ObuConstants.STATUS.DELETE -> {
- isStrikeTts = false
// 关闭警告红边
- mIMoGoWaringProvider!!.showWarning(WarningDirectionEnum.ALERT_WARNING_NON)
+ mIMoGoWaringProvider?.showWarning(WarningDirectionEnum.ALERT_WARNING_NON)
// 移除顶部弹窗
- mIMoGoWaringProvider?.disableWarningV2X(appId.toString())
+ mIMoGoWaringProvider?.disableWarningV2X((appId + direction.direction).toString())
// 更新数据
TrafficDataConvertUtils.cvxRtiThreatIndInfo2TrafficData(info)?.let {
// 事件结束,还原车辆颜色
@@ -351,34 +344,28 @@ class MogoPrivateObuManager private constructor() {
ObuConstants.STATUS.UPDATE// 更新
-> {
if (level == 2 || level == 3) {
- if (!isStrikeTts) {
- // 更新数据
- TrafficDataConvertUtils.cvxPtcThreatIndInfo2TrafficData(info)?.let {
- TrafficMarkerDrawer.updateITrafficInfo(it)
- }
- //显示警告红边
- mIMoGoWaringProvider!!.showWarning(direction)
- mIMoGoWaringProvider!!.showWarningV2X(
- v2xType,
- alertContent,
- ttsContent,
- v2xType.toString(),
- object : WarningStatusListener {
- override fun onShow() {
- isStrikeTts = true
- }
-
- override fun onDismiss() {
- isStrikeTts = false
- }
+ //显示警告红边
+ mIMoGoWaringProvider?.showWarning(direction)
+ mIMoGoWaringProvider?.showWarningV2X(
+ v2xType,
+ alertContent,
+ ttsContent,// 只有第一次才tts,防止更新的时候不断的提醒
+ (v2xType + direction.direction).toString(),//使用当前事件类型+方向记录tag,当发生变化的时候关闭当前弹出新的
+ object : WarningStatusListener {
+ override fun onDismiss() {
+ // 关闭警告红边
+ mIMoGoWaringProvider!!.showWarning(WarningDirectionEnum.ALERT_WARNING_NON)
}
- )
- }
+ }
+ )
+ }
+ // 更新数据
+ TrafficDataConvertUtils.cvxPtcThreatIndInfo2TrafficData(info)?.let {
+ TrafficMarkerDrawer.updateITrafficInfo(it)
}
}
// 删除
ObuConstants.STATUS.DELETE -> {
- isStrikeTts = false
// 关闭警告红边
mIMoGoWaringProvider!!.showWarning(WarningDirectionEnum.ALERT_WARNING_NON)
// 更新数据
@@ -500,7 +487,9 @@ class MogoPrivateObuManager private constructor() {
)
when (status) {
// 添加
- ObuConstants.STATUS.ADD -> {
+ ObuConstants.STATUS.ADD,
+ ObuConstants.STATUS.UPDATE,
+ -> {
changeTrafficLightStatus(appId, lights, indicator)
}
// 删除
@@ -509,9 +498,6 @@ class MogoPrivateObuManager private constructor() {
// 移除顶部弹窗
mIMoGoWaringProvider?.disableWarningV2X(appId.toString())
}
- else -> {
- changeTrafficLightStatus(appId, lights, indicator)
- }
}
}
@@ -544,15 +530,12 @@ class MogoPrivateObuManager private constructor() {
mIMoGoWaringProvider!!.showWarningV2X(
appId,
alertContent,
- ttsContent,
+ ttsContent,// 只有第一次才tts,防止更新的时候不断的提醒
appId.toString(),
object : WarningStatusListener {
- override fun onShow() {
- isStrikeTts = true
- }
-
override fun onDismiss() {
- isStrikeTts = false
+ //关闭显示警告红边
+ mIMoGoWaringProvider?.showWarning(WarningDirectionEnum.ALERT_WARNING_NON)
}
}
)
@@ -583,17 +566,9 @@ class MogoPrivateObuManager private constructor() {
mIMoGoWaringProvider!!.showWarningV2X(
WarningTypeEnum.TYPE_USECASE_ID_IVP_GREEN.useCaseId,
alertContent,
- ttsContent,
+ ttsContent,// 只有第一次才tts,防止更新的时候不断的提醒
appId.toString(),
- object : WarningStatusListener {
- override fun onShow() {
- isStrikeTts = true
- }
-
- override fun onDismiss() {
- isStrikeTts = false
- }
- }
+ null
)
}
// 黄灯
@@ -718,29 +693,26 @@ class MogoPrivateObuManager private constructor() {
// 添加,更新 add的时候,可能级别是2,
ObuConstants.STATUS.ADD,
ObuConstants.STATUS.UPDATE -> {
+ Log.d(
+ MogoObuConst.TAG_MOGO_OBU,
+ "appId2 = $appId --- level = $level ---ttsContent = $ttsContent --- alertContent = $alertContent --- direction = $direction"
+ )
if (level == 2 || level == 3) {
- Log.d(
- MogoObuConst.TAG_MOGO_OBU,
- "appId2 = $appId --- level = $level ---ttsContent = $ttsContent --- alertContent = $alertContent --- direction = $direction"
- )
- //显示警告红边
- mIMoGoWaringProvider?.showWarning(direction)
//显示弹框,语音提示
mIMoGoWaringProvider?.showWarningV2X(
appId,
alertContent,
- if (!isStrikeTts) ttsContent else "",
- (appId + direction.direction).toString(),
+ ttsContent,// 只有第一次才tts,防止更新的时候不断的提醒
+ (appId + direction.direction).toString(),//使用当前事件类型+方向记录tag,当发生变化的时候关闭当前弹出新的
object : WarningStatusListener {
- override fun onShow() {
- isStrikeTts = true
- }
-
override fun onDismiss() {
- isStrikeTts = false
+ // 关闭警告红边
+ mIMoGoWaringProvider!!.showWarning(WarningDirectionEnum.ALERT_WARNING_NON)
}
}
)
+ //显示警告红边
+ mIMoGoWaringProvider?.showWarning(direction)
}
//更新周边车辆进行预警颜色变换,车辆实时移动和变色
TrafficDataConvertUtils.cvxV2vThreatIndInfo2TrafficData(info)?.let {
@@ -749,11 +721,10 @@ class MogoPrivateObuManager private constructor() {
}
// 删除
ObuConstants.STATUS.DELETE -> {
- isStrikeTts = false
// 关闭警告红边
mIMoGoWaringProvider!!.showWarning(WarningDirectionEnum.ALERT_WARNING_NON)
// 移除顶部弹窗
- mIMoGoWaringProvider?.disableWarningV2X(appId.toString())
+ mIMoGoWaringProvider?.disableWarningV2X((appId + direction.direction).toString())
//更新周边车辆进行预警颜色变换,车辆实时移动和变色
TrafficDataConvertUtils.cvxV2vThreatIndInfo2TrafficData(info)?.let {
it.threatLevel = 0x01
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/warning/WarningStatusListener.java b/services/mogo-service-api/src/main/java/com/mogo/service/warning/WarningStatusListener.java
index 98e51e35b7..e4a7d98314 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/warning/WarningStatusListener.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/warning/WarningStatusListener.java
@@ -5,6 +5,9 @@ package com.mogo.service.warning;
* @date 2021/9/13 4:41 下午
*/
public interface WarningStatusListener {
- void onShow();
- void onDismiss();
+ default void onShow() {
+ }
+
+ default void onDismiss() {
+ }
}