diff --git a/app/src/main/java/com/xiaoqu/watch/service/manager/EdgeTtsManager.kt b/app/src/main/java/com/xiaoqu/watch/service/manager/EdgeTtsManager.kt index 23e9599..71cd6ed 100644 --- a/app/src/main/java/com/xiaoqu/watch/service/manager/EdgeTtsManager.kt +++ b/app/src/main/java/com/xiaoqu/watch/service/manager/EdgeTtsManager.kt @@ -80,6 +80,9 @@ class EdgeTtsManager @Inject constructor( /** 当前 MediaPlayer */ private var mediaPlayer: MediaPlayer? = null + /** 当前合成协程 Job(用于取消进行中的请求) */ + private var synthesizeJob: kotlinx.coroutines.Job? = null + /** 是否正在播放 */ var isPlaying: Boolean = false private set @@ -99,10 +102,10 @@ class EdgeTtsManager @Inject constructor( fun speak(text: String, voice: String = VOICE_XIAOXIAO, onError: ((String) -> Unit)? = null) { if (text.isBlank()) return - // 停止当前播放 + // 停止当前播放和进行中的请求 stop() - CoroutineScope(Dispatchers.IO).launch { + synthesizeJob = CoroutineScope(Dispatchers.IO).launch { try { // 检查缓存 val cacheFile = getCacheFile(text, voice) @@ -129,8 +132,10 @@ class EdgeTtsManager @Inject constructor( } } - /** 停止播放 */ + /** 停止播放和进行中的合成请求 */ fun stop() { + synthesizeJob?.cancel() + synthesizeJob = null try { mediaPlayer?.apply { if (isPlaying) stop() diff --git a/app/src/main/java/com/xiaoqu/watch/ui/home/HomeFragment.kt b/app/src/main/java/com/xiaoqu/watch/ui/home/HomeFragment.kt index 2ff8801..2fb2e4d 100644 --- a/app/src/main/java/com/xiaoqu/watch/ui/home/HomeFragment.kt +++ b/app/src/main/java/com/xiaoqu/watch/ui/home/HomeFragment.kt @@ -367,7 +367,7 @@ class HomeFragment : BaseFragment() { /** 更新时钟和日期 */ private fun updateClock() { val info = DateUtil.getDateInfo() - tvClock.text = DateUtil.formatTime() + tvClock.text = DateUtil.formatTimeShort() tvDate.text = "${info.month}月${info.day}日 ${info.week}" // 同步更新打卡面板时钟 if (punchPanel.isShowing) { diff --git a/app/src/main/java/com/xiaoqu/watch/ui/task/TaskListFragment.kt b/app/src/main/java/com/xiaoqu/watch/ui/task/TaskListFragment.kt index 472748a..27e529d 100644 --- a/app/src/main/java/com/xiaoqu/watch/ui/task/TaskListFragment.kt +++ b/app/src/main/java/com/xiaoqu/watch/ui/task/TaskListFragment.kt @@ -1042,7 +1042,13 @@ class TaskListFragment : BaseFragment() { !detail.expireTime.isNullOrEmpty() -> parts.add("截止时间:${formatTimeForTts(detail.expireTime!!)}") } if (detail.point > 0) parts.add("积分:${detail.point.toInt()}分") - if (detail.content.isNotBlank()) parts.add("备注:${detail.content}") + // 备注:优先 taskRequire,没有则用 content(和页面显示逻辑一致) + val note = when { + !detail.taskRequire.isNullOrEmpty() -> detail.taskRequire + detail.content.isNotEmpty() -> detail.content + else -> null + } + if (!note.isNullOrBlank()) parts.add("备注:$note") if (parts.isEmpty()) return diff --git a/app/src/main/res/drawable/bg_tts_button.xml b/app/src/main/res/drawable/bg_tts_button.xml index f77c685..40625ab 100644 --- a/app/src/main/res/drawable/bg_tts_button.xml +++ b/app/src/main/res/drawable/bg_tts_button.xml @@ -2,5 +2,5 @@ - + diff --git a/app/src/main/res/layout/fragment_task_list.xml b/app/src/main/res/layout/fragment_task_list.xml index 3973e87..80a0a06 100644 --- a/app/src/main/res/layout/fragment_task_list.xml +++ b/app/src/main/res/layout/fragment_task_list.xml @@ -365,14 +365,14 @@ - +