From 7c631025ba4ebb523026363724a97f63edc6f0fb Mon Sep 17 00:00:00 2001 From: dongliang Date: Thu, 7 May 2026 21:41:33 +0930 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=80=9A=E7=9F=A5=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=9C=80=E5=90=8E=E4=BB=BB=E5=8A=A1=E5=90=8E?= =?UTF-8?q?=E8=B7=B3=E5=88=B0=E6=96=B0=E4=BB=BB=E5=8A=A1=E9=A1=B5=E8=80=8C?= =?UTF-8?q?=E9=9D=9E=E9=A6=96=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原因:filterTaskIds 过滤为空数组后 isNotEmpty()=false 跳过了通知模式分支,走了正常 status=2 查询显示了新任务 修复:ids != null 就进通知分支,空数组+hasActioned 直接回首页 Co-Authored-By: Claude Opus 4.6 (1M context) --- .../xiaoqu/watch/ui/task/TaskListFragment.kt | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) 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 fa8d835..d35cf15 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 @@ -133,13 +133,26 @@ class TaskListFragment : BaseFragment() { // 已操作过的刷新不显示 loading(保持当前内容,避免黑屏) if (!hasActioned) showLoading() - // 通知跳转:有 taskIds 时不走 queryTaskIds,直接按 ID 构建列表 + // 通知跳转模式 val ids = filterTaskIds - if (ids != null && ids.isNotEmpty()) { - taskList = ids.map { TaskItem(id = it) } - Timber.d("任务列表: 通知模式, ${ids.size} 个任务") - if (taskList.isNotEmpty()) { + if (ids != null) { + if (ids.isNotEmpty()) { + taskList = ids.map { TaskItem(id = it) } + Timber.d("任务列表: 通知模式, ${ids.size} 个任务") + if (taskIndex >= taskList.size) taskIndex = taskList.size - 1 fetchCurrentDetail() + } else if (hasActioned) { + // 通知模式所有任务操作完毕 → 回首页 + tipDialog.show( + status = QuTipDialog.Status.SUCCESS, + title = "全部完成", + back = true, step = 1, countdown = 2, + onBack = { + if (isAdded && view != null) { + findNavController().popBackStack(R.id.homeFragment, false) + } + } + ) } else { showEmpty() } @@ -166,7 +179,10 @@ class TaskListFragment : BaseFragment() { title = "全部完成", back = true, step = 1, countdown = 2, onBack = { - if (isAdded && view != null) findNavController().popBackStack() + if (isAdded && view != null) { + // 直接回到首页(跳过中间可能的导航栈) + findNavController().popBackStack(R.id.homeFragment, false) + } } ) } else {