修复同一个appid下但方向不同的事件提醒tts播报

This commit is contained in:
chenfufeng
2021-09-14 11:13:14 +08:00
parent acbd85d98b
commit c2ab7087cb
7 changed files with 90 additions and 104 deletions

View File

@@ -140,8 +140,12 @@ class WarningFloat {
* 设置视图状态监听showdismiss
* @param listener 设置视图状态监听
*/
fun setWarningStatusListener(listener: WarningStatusListener?) =
apply { config.listener = listener }
fun addWarningStatusListener(listener: WarningStatusListener?) =
apply {
if (listener != null) {
config.statusListenerMap.add(listener)
}
}
/**
* 创建浮窗包括Activity浮窗和系统浮窗如若系统浮窗无权限先进行权限申请

View File

@@ -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? =

View File

@@ -54,7 +54,7 @@ data class WarningNotificationConfig(
var floatAnimator: OnFloatAnimator? = DefaultAnimator(),
// 设置视图状态监听showdismiss
var listener: WarningStatusListener? = null,
var statusListenerMap: ArrayList< WarningStatusListener> = ArrayList(),
// Callbacks
var callbacks: OnFloatCallbacks? = null,

View File

@@ -66,7 +66,7 @@ class MoGoWarningFragment : MvpFragment<MoGoWarningContract.View?, WaringPresent
)
)
if (mWarningFloat != null) {
if (mWarningFloat != null && mWarningFloat!!.config.floatTag != tag) {
WarningFloat.dismiss(mWarningFloat!!.config.floatTag, true)
}
@@ -77,7 +77,21 @@ class MoGoWarningFragment : MvpFragment<MoGoWarningContract.View?, WaringPresent
//.setCountDownTime(10000)
.setGravity(Gravity.CENTER_HORIZONTAL, offsetY = 110)
.setImmersionStatusBar(true)
.setWarningStatusListener(listener)
.addWarningStatusListener(listener)
.addWarningStatusListener(object : WarningStatusListener {
override fun onShow() {
// 创建弹窗成功才进行TTS播报
Logger.d(
"MoGoWarningFragment",
"mWarningFloat = $mWarningFloat---ttsContent = $ttsContent"
)
if (mWarningFloat != null && !TextUtils.isEmpty(ttsContent)) {
Logger.d("MoGoWarningFragment", "---> ttsContent = $ttsContent")
AIAssist.getInstance(activity)
.speakTTSVoice(ttsContent)
}
}
})
.setAnimator(object : DefaultAnimator() {
override fun enterAnim(
view: View,
@@ -99,17 +113,6 @@ class MoGoWarningFragment : MvpFragment<MoGoWarningContract.View?, WaringPresent
})
.show()
// 创建弹窗成功才进行TTS播报
Logger.d(
"MoGoWarningFragment",
"mWarningFloat = $mWarningFloat---ttsContent = $ttsContent"
)
if (mWarningFloat != null && !TextUtils.isEmpty(ttsContent)) {
Logger.d("MoGoWarningFragment", "---> ttsContent = $ttsContent")
AIAssist.getInstance(activity)
.speakTTSVoice(ttsContent)
}
}
}

View File

@@ -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