fix(face): 修复短时间内再次识别无法触发的问题
新增 RecognizeViewModel.resetFaceState(),在 resetRecognizeState() 时 同时清空粘性 LiveData 和 FaceHelper 内部 recognizeInfoMap, 防止旧 trackId 状态残留导致识别流程无法重新触发。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
ae708eeeed
commit
385ada4a0d
@@ -1,6 +1,11 @@
|
||||
package com.sw.platecabinet.utils
|
||||
|
||||
import timber.log.Timber
|
||||
|
||||
class Debouncer(private val delayMillis: Long) {
|
||||
companion object {
|
||||
const val TAG = "Debouncer"
|
||||
}
|
||||
private var lastActionTime = 0L
|
||||
|
||||
/**
|
||||
@@ -8,13 +13,15 @@ class Debouncer(private val delayMillis: Long) {
|
||||
* @param action 要执行的操作
|
||||
* @return Boolean 是否执行了操作 (true=已执行, false=被防抖)
|
||||
*/
|
||||
fun debounce(action: () -> Unit): Boolean {
|
||||
fun debounce(tag:String = TAG, action: () -> Unit): Boolean {
|
||||
val currentTime = System.currentTimeMillis()
|
||||
if (currentTime - lastActionTime >= delayMillis) {
|
||||
Timber.tag(tag).d("collectFace,recognizeUserId防止重复操作:执行action回调")
|
||||
lastActionTime = currentTime
|
||||
action()
|
||||
return true
|
||||
}
|
||||
Timber.tag(tag).d("collectFace,recognizeUserId防止重复操作-----------------------")
|
||||
return false
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user