优化重复注册
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.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()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user