feat: NFC 打卡成功后 EventBus 通知刷新

- 单个打卡成功 → emit TaskListRefresh(列表页刷新)
- 批量打卡成功 → emit HomeRefresh(首页统计刷新)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
dongliang
2026-05-06 12:38:23 +09:30
parent 1df7981318
commit ae899b3474

View File

@@ -2,6 +2,8 @@ package com.xiaoqu.watch.service.manager
import com.xiaoqu.watch.device.nfc.NfcController import com.xiaoqu.watch.device.nfc.NfcController
import com.xiaoqu.watch.device.sensor.VibrationController import com.xiaoqu.watch.device.sensor.VibrationController
import com.xiaoqu.watch.event.AppEvent
import com.xiaoqu.watch.event.EventBus
import com.xiaoqu.watch.network.ApiResult import com.xiaoqu.watch.network.ApiResult
import com.xiaoqu.watch.network.api.TaskApi import com.xiaoqu.watch.network.api.TaskApi
import com.xiaoqu.watch.network.safeApiCall import com.xiaoqu.watch.network.safeApiCall
@@ -30,7 +32,8 @@ import javax.inject.Singleton
class NfcTaskManager @Inject constructor( class NfcTaskManager @Inject constructor(
private val nfcController: NfcController, private val nfcController: NfcController,
private val vibrationController: VibrationController, private val vibrationController: VibrationController,
private val taskApi: TaskApi private val taskApi: TaskApi,
private val eventBus: EventBus
) { ) {
companion object { companion object {
private const val DEFAULT_NFC_TIMEOUT_MS = 20_000L private const val DEFAULT_NFC_TIMEOUT_MS = 20_000L
@@ -82,6 +85,8 @@ class NfcTaskManager @Inject constructor(
is ApiResult.Success -> { is ApiResult.Success -> {
Timber.d("NFC任务打卡: 打卡成功") Timber.d("NFC任务打卡: 打卡成功")
vibrationController.executeByPlanId(PLAN_PUNCH_SUCCESS) vibrationController.executeByPlanId(PLAN_PUNCH_SUCCESS)
// 通知列表页刷新
eventBus.emit(AppEvent.TaskListRefresh)
onResult(true, "打卡成功") onResult(true, "打卡成功")
} }
is ApiResult.Error -> { is ApiResult.Error -> {
@@ -216,6 +221,8 @@ class NfcTaskManager @Inject constructor(
is ApiResult.Success -> { is ApiResult.Success -> {
Timber.d("NFC主动打卡: 批量打卡成功") Timber.d("NFC主动打卡: 批量打卡成功")
vibrationController.executeByPlanId(PLAN_PUNCH_SUCCESS) vibrationController.executeByPlanId(PLAN_PUNCH_SUCCESS)
// 通知首页刷新统计
eventBus.emit(AppEvent.HomeRefresh)
onResult(true, "打卡成功") onResult(true, "打卡成功")
} }
is ApiResult.Error -> { is ApiResult.Error -> {