From 1cb37113869e67f29b46ab74ecd537690080fb7c Mon Sep 17 00:00:00 2001 From: renwj Date: Sat, 14 Jan 2023 16:51:47 +0800 Subject: [PATCH] =?UTF-8?q?[2.13.2]V2N=E4=BA=8B=E4=BB=B6=E6=92=AD=E6=8A=A5?= =?UTF-8?q?=E8=AF=AD=E9=9F=B3=E6=8F=90=E7=A4=BA=E7=AD=96=E7=95=A5=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/function/hmi/ui/MoGoHmiFragment.kt | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) 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 a786c3ec4f..770380de6b 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 @@ -111,6 +111,7 @@ import me.jessyan.autosize.utils.AutoSizeUtils import mogo_msg.MogoReportMsg import record_cache.RecordPanelOuterClass import java.util.* +import java.util.concurrent.atomic.AtomicReference /** @@ -171,7 +172,7 @@ class MoGoHmiFragment : MvpFragment(), private var adUpgradeDialog: AdUpgradeDialog? = null - private var lastSpeakJob: Job? = null + private val lastSpeakJob by lazy { AtomicReference() } private var lastShowV2XJob: Job? = null @@ -901,7 +902,7 @@ class MoGoHmiFragment : MvpFragment(), override fun onShow(reminder: IReminder) { listener?.onShow() lastShowV2XJob?.safeCancel() - lastSpeakJob?.safeCancel() + lastSpeakJob.get()?.safeCancel() showingV2XTip = reminder lifecycleScope.launch { delay(expireTime) @@ -914,7 +915,7 @@ class MoGoHmiFragment : MvpFragment(), lifecycleScope.launch { speak(it, ttsContent) }.also { itx -> - lastSpeakJob = itx + lastSpeakJob.set(itx) } } } @@ -970,10 +971,7 @@ class MoGoHmiFragment : MvpFragment(), "$M_HMI$TAG", "--- show v2x dialog 1 ---: info -> v2x-type: $v2xType : expireTime: $expireTime" ) - lastShowV2XJob?.safeCancel() - lastSpeakJob?.safeCancel() - lifecycleScope.launch { delay(expireTime) }.also { itx -> @@ -984,10 +982,18 @@ class MoGoHmiFragment : MvpFragment(), } if (ttsContent != null && !TextUtils.isEmpty(ttsContent) && playTTS) { - lifecycleScope.launch { + val last = lastSpeakJob.get() + Log.d("CODE", "---- 0 ------: last: $last") + if (last != null && !last.isCompleted) { + Log.d("CODE", "---- 1 ------") + return + } + lifecycleScope.launch(Dispatchers.Default) { + Log.d("CODE", "---- 2 ------") speak(it, ttsContent) + Log.d("CODE", "---- 3 ------") }.also { itx -> - lastSpeakJob = itx + lastSpeakJob.set(itx) } } }