优化重复注册

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.PermissionHelper
import com.sw.platecabinet.utils.PlateUtils
import com.sw.platecabinet.utils.RegisterCallbackHandler
import com.sw.platecabinet.utils.SoundPoolUtil
import com.sw.platecabinet.utils.SpTool
import org.greenrobot.eventbus.EventBus
@@ -184,14 +185,15 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
private val livenessType = LivenessType.RGB
private var openRectInfoDraw = false
private val regDebouncer = Debouncer(3000)
private var registerHandler: RegisterCallbackHandler? = null
private fun initArcViewModel() {
recognizeViewModel.setLiveType(livenessType)
recognizeViewModel.prepareRegister()
recognizeViewModel.setOnRegisterFinishedCallback { facePreviewInfo, userFaceInfo ->
regDebouncer.debounce {
registerHandler?.setCallback {
if (!isCollectFace) {
return@debounce
return@setCallback
}
if (this.userFaceInfo == null && userFaceInfo != null) {
recognizeViewModel.updateRegisterStatus(RecognizeViewModel.REGISTER_STATUS_DONE)
@@ -201,7 +203,6 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
isCollectFace = false
sendFaceData(faceData, headBmp)
}
return@debounce
}
}
}
@@ -685,6 +686,7 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
private var tempUserId: String = ""
override fun onResume() {
super.onResume()
registerHandler = RegisterCallbackHandler()
try {
if (isFirstOpen) {
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()
}
}
}
}