优化重复注册

This commit is contained in:
2026-02-04 10:20:34 +08:00
parent 16c9e5f61a
commit 79e089363d
2 changed files with 20 additions and 3 deletions
@@ -46,6 +46,7 @@ import com.sw.platecabinet.utils.Debouncer
import com.sw.platecabinet.utils.LogFileUtil import com.sw.platecabinet.utils.LogFileUtil
import com.sw.platecabinet.utils.PermissionHelper import com.sw.platecabinet.utils.PermissionHelper
import com.sw.platecabinet.utils.PlateUtils import com.sw.platecabinet.utils.PlateUtils
import com.sw.platecabinet.utils.RegisterCallbackHandler
import com.sw.platecabinet.utils.SoundPoolUtil import com.sw.platecabinet.utils.SoundPoolUtil
import com.sw.platecabinet.utils.SpTool import com.sw.platecabinet.utils.SpTool
import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.EventBus
@@ -184,14 +185,15 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
private val livenessType = LivenessType.RGB private val livenessType = LivenessType.RGB
private var openRectInfoDraw = false private var openRectInfoDraw = false
private val regDebouncer = Debouncer(3000) private val regDebouncer = Debouncer(3000)
private var registerHandler: RegisterCallbackHandler? = null
private fun initArcViewModel() { private fun initArcViewModel() {
recognizeViewModel.setLiveType(livenessType) recognizeViewModel.setLiveType(livenessType)
recognizeViewModel.prepareRegister() recognizeViewModel.prepareRegister()
recognizeViewModel.setOnRegisterFinishedCallback { facePreviewInfo, userFaceInfo -> recognizeViewModel.setOnRegisterFinishedCallback { facePreviewInfo, userFaceInfo ->
regDebouncer.debounce { registerHandler?.setCallback {
if (!isCollectFace) { if (!isCollectFace) {
return@debounce return@setCallback
} }
if (this.userFaceInfo == null && userFaceInfo != null) { if (this.userFaceInfo == null && userFaceInfo != null) {
recognizeViewModel.updateRegisterStatus(RecognizeViewModel.REGISTER_STATUS_DONE) recognizeViewModel.updateRegisterStatus(RecognizeViewModel.REGISTER_STATUS_DONE)
@@ -201,7 +203,6 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
isCollectFace = false isCollectFace = false
sendFaceData(faceData, headBmp) sendFaceData(faceData, headBmp)
} }
return@debounce
} }
} }
} }
@@ -685,6 +686,7 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
private var tempUserId: String = "" private var tempUserId: String = ""
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
registerHandler = RegisterCallbackHandler()
try { try {
if (isFirstOpen) { if (isFirstOpen) {
goInitActivity() goInitActivity()
@@ -0,0 +1,15 @@
package com.sw.platecabinet.utils
class RegisterCallbackHandler {
private var isCallbackCalled = false
private val lock = Any()
fun setCallback(callback: () -> Unit) {
synchronized(lock) {
if (!isCallbackCalled) {
isCallbackCalled = true
callback()
}
}
}
}