From 79e089363d4da2f346e2ea2f576c8b22795f2d70 Mon Sep 17 00:00:00 2001 From: lvmeng <848755140@qq.com> Date: Wed, 4 Feb 2026 10:20:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=87=8D=E5=A4=8D=E6=B3=A8?= =?UTF-8?q?=E5=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../platecabinet/activity/LoginByFaceActivity.kt | 8 +++++--- .../platecabinet/utils/RegisterCallbackHandler.kt | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/com/sw/platecabinet/utils/RegisterCallbackHandler.kt 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 88a614e..9b8df31 100644 --- a/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt +++ b/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt @@ -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(), 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(), isCollectFace = false sendFaceData(faceData, headBmp) } - return@debounce } } } @@ -685,6 +686,7 @@ class LoginByFaceActivity : BaseActivity(), private var tempUserId: String = "" override fun onResume() { super.onResume() + registerHandler = RegisterCallbackHandler() try { if (isFirstOpen) { goInitActivity() diff --git a/app/src/main/java/com/sw/platecabinet/utils/RegisterCallbackHandler.kt b/app/src/main/java/com/sw/platecabinet/utils/RegisterCallbackHandler.kt new file mode 100644 index 0000000..5c11ee7 --- /dev/null +++ b/app/src/main/java/com/sw/platecabinet/utils/RegisterCallbackHandler.kt @@ -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() + } + } + } +} \ No newline at end of file