优化重复注册
This commit is contained in:
@@ -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()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user