diff --git a/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt b/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt index 1bbbd40..88a614e 100644 --- a/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt +++ b/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt @@ -183,23 +183,26 @@ class LoginByFaceActivity : BaseActivity(), private var rgbFaceRectTransformer: FaceRectTransformer? = null private val livenessType = LivenessType.RGB private var openRectInfoDraw = false + private val regDebouncer = Debouncer(3000) private fun initArcViewModel() { recognizeViewModel.setLiveType(livenessType) recognizeViewModel.prepareRegister() recognizeViewModel.setOnRegisterFinishedCallback { facePreviewInfo, userFaceInfo -> - if (!isCollectFace) { - return@setOnRegisterFinishedCallback - } - if (this.userFaceInfo == null && userFaceInfo != null) { - recognizeViewModel.updateRegisterStatus(RecognizeViewModel.REGISTER_STATUS_DONE) - this.userFaceInfo = userFaceInfo - getFaceDataBlock { faceData, headBmp -> - isCollecting.set(false) - isCollectFace = false - sendFaceData(faceData, headBmp) + regDebouncer.debounce { + if (!isCollectFace) { + return@debounce + } + if (this.userFaceInfo == null && userFaceInfo != null) { + recognizeViewModel.updateRegisterStatus(RecognizeViewModel.REGISTER_STATUS_DONE) + this.userFaceInfo = userFaceInfo + getFaceDataBlock { faceData, headBmp -> + isCollecting.set(false) + isCollectFace = false + sendFaceData(faceData, headBmp) + } + return@debounce } - return@setOnRegisterFinishedCallback } } recognizeViewModel.ftInitCode.observe(this, Observer { ftInitCode: Int? ->