fix: NFC 互斥检查加 nfcController.isOpen()

考勤打卡(PunchViewModel)和任务打卡(NfcTaskManager)共用 NFC 硬件。
增加 nfcController.isOpen() 检查,防止两者同时操作 NFC。

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

View File

@@ -63,8 +63,8 @@ class NfcTaskManager @Inject constructor(
* @param onResult 结果回调主线程success + message
*/
fun startTaskPunch(taskId: Long, onResult: (success: Boolean, message: String) -> Unit) {
if (isScanning) {
Timber.d("NFC任务打卡: 已在扫描中,忽略")
if (isScanning || nfcController.isOpen()) {
Timber.d("NFC任务打卡: NFC 正在使用中,忽略")
return
}
isScanning = true
@@ -123,8 +123,8 @@ class NfcTaskManager @Inject constructor(
*/
fun startActivePunch(onResult: (success: Boolean, message: String) -> Unit) {
if (isScanning) {
Timber.d("NFC主动打卡: 已在扫<E59CA8><E689AB>忽略")
return
if (isScanning || nfcController.isOpen()) {
Timber.d("NFC主动打卡: NFC 正在使用中,忽略")
}
isScanning = true
Timber.d("NFC主动<EFBFBD><EFBFBD>卡: 开启(返回键触发)")