refactor(face): 重构倒计时工具,统一使用 CountDownUtil 实例化方案
- CountDownUtil 由 object 单例改为 class,各调用方持有独立实例,互不干扰 - 修复 onCompletion 取消时误触发 onFinish 的 bug - LoginByFaceActivity 新增 recognizeCountDownUtil / leftCountDownUtil 两个实例 - 移除 CountDownManager 及其所有调用,消除两套倒计时并存的混乱 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -49,7 +49,6 @@ import com.sw.platecabinet.ext.visible
|
||||
import com.sw.platecabinet.model.response.EquipmentUserInfo
|
||||
import com.sw.platecabinet.model.response.UserFaceModel
|
||||
import com.sw.platecabinet.utils.BitmapSaver
|
||||
import com.sw.platecabinet.utils.CountDownManager
|
||||
import com.sw.platecabinet.utils.CountDownUtil
|
||||
import com.sw.platecabinet.utils.Debouncer
|
||||
import com.sw.platecabinet.utils.LogFileUtil
|
||||
@@ -169,6 +168,12 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
|
||||
|
||||
private val leftDebouncer = Debouncer(30 * 1000)
|
||||
|
||||
/** 识别超时倒计时(15秒无操作跳回初始页) */
|
||||
private val recognizeCountDownUtil = CountDownUtil()
|
||||
|
||||
/** 用户离开画面后的倒计时(llCollectButton 显示状态下无人脸时触发) */
|
||||
private val leftCountDownUtil = CountDownUtil()
|
||||
|
||||
private var registerHandler: RegisterCallbackHandler? = null
|
||||
|
||||
private fun isFitData(userFaceInfo: UserFaceInfo?): Boolean {
|
||||
@@ -331,7 +336,7 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
|
||||
}
|
||||
|
||||
private fun recognizeFail() {
|
||||
CountDownManager.cancelCountDown()
|
||||
recognizeCountDownUtil.cancelCountDown()
|
||||
binding.tvToInit.text = ""
|
||||
binding.tvSimilarValue.text = ""
|
||||
binding.llCollectButton.visible()
|
||||
@@ -389,7 +394,7 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
|
||||
PlateUtils.open(this, item.equipmentBoxCode, false) {
|
||||
goInitActivity()
|
||||
}
|
||||
CountDownManager.cancelCountDown()
|
||||
recognizeCountDownUtil.cancelCountDown()
|
||||
}
|
||||
currentPlateInfo = item
|
||||
MyApp.plateList = items
|
||||
@@ -699,8 +704,9 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
|
||||
resumeCamera()
|
||||
registerHandler = RegisterCallbackHandler()
|
||||
|
||||
CountDownManager.startCountDown(
|
||||
totalSeconds = 15,
|
||||
recognizeCountDownUtil.startCountDown(
|
||||
total = 15,
|
||||
lifecycleScope = lifecycleScope,
|
||||
onTick = { remaining ->
|
||||
loadLogInfo("resetRecognizeState剩余时间:$remaining 秒")
|
||||
if (judgeRecognizeState()) return@startCountDown
|
||||
@@ -725,7 +731,7 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
|
||||
override fun onPause() {
|
||||
pauseCamera()
|
||||
super.onPause()
|
||||
CountDownManager.cancelCountDown()
|
||||
recognizeCountDownUtil.cancelCountDown()
|
||||
}
|
||||
|
||||
private fun pauseCamera() {
|
||||
@@ -883,19 +889,18 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
|
||||
|
||||
private var isCollectFace = false
|
||||
private fun leftCountDown() {
|
||||
CountDownUtil.startCountDown(total = 15, lifecycleScope = lifecycleScope, onStart = {
|
||||
leftCountDownUtil.startCountDown(total = 15, lifecycleScope = lifecycleScope, onStart = {
|
||||
loadLogInfo("onPreview-----------leftCountDown-------------")
|
||||
}, onTick = {
|
||||
loadLogInfo("leftCountDown.onTick:$it")
|
||||
if (facePreviewInfoList.isNullOrEmpty().not()) {
|
||||
loadLogInfo("leftCountDown.onTick-cancel()")
|
||||
CountDownUtil.cancelCountDown()
|
||||
leftCountDownUtil.cancelCountDown()
|
||||
return@startCountDown
|
||||
}
|
||||
}, onFinish = {
|
||||
CountDownUtil.cancelCountDown()
|
||||
if (facePreviewInfoList.isNullOrEmpty().not()) {
|
||||
loadLogInfo("leftCountDown.onFinish-cancel()")
|
||||
loadLogInfo("leftCountDown.onFinish-人脸未离开,不跳转")
|
||||
return@startCountDown
|
||||
}
|
||||
goInitActivity()
|
||||
|
||||
Reference in New Issue
Block a user