添加init界面,调整了认证后逻辑,调整了扫描枪扫描处理

This commit is contained in:
zxj
2025-08-01 18:23:54 +08:00
parent d20ee771b0
commit 47f6e814a6
22 changed files with 279 additions and 197 deletions
@@ -5,6 +5,7 @@ import android.content.Intent
import android.graphics.Point
import android.hardware.Camera
import android.os.Build
import android.os.CountDownTimer
import android.util.DisplayMetrics
import android.view.View
import android.view.ViewGroup
@@ -29,8 +30,8 @@ import com.sw.plate.utils.arcface.viewmodel.RecognizeViewModel
import com.sw.platecabinet.R
import com.sw.platecabinet.databinding.ActivityLoginFaceBinding
import com.sw.platecabinet.databinding.ItemTitleTimeBinding
import com.sw.platecabinet.model.response.EquipmentUserInfo
import com.sw.platecabinet.utils.PermissionHelper
import com.sw.platecabinet.utils.ThreadUtils
import timber.log.Timber
/**
@@ -39,6 +40,7 @@ import timber.log.Timber
class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
ViewTreeObserver.OnGlobalLayoutListener {
private val recognizeViewModel by viewModels<RecognizeViewModel>()
private var countDownTimer: CountDownTimer? = null
private val CAMERA_PERMISSION_REQUEST_CODE = 100
private val REQUIRED_PERMISSIONS: Array<String> = arrayOf(
@@ -55,11 +57,19 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
return binding.includeHeader
}
override fun initialize() {
ThreadUtils.launch {
viewModel.activeEngine()
}
companion object {
private var instance: LoginByFaceActivity? = null
fun finishActivity() {
instance?.finish()
}
}
override fun initialize() {
instance = this
viewModel.activeEngine()
initCountTime()
initArcViewModel()
initArcView()
openRectInfoDraw = true
@@ -157,6 +167,7 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
}
override fun onDestroy() {
instance = null
if (rgbCameraHelper != null) {
rgbCameraHelper!!.release()
rgbCameraHelper = null
@@ -356,6 +367,10 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
super.onResume()
resumeCamera()
viewModel.resetUserInfo()
countDownTimer?.let {
it.cancel()
it.start()
}
}
protected override fun onPause() {
@@ -369,4 +384,21 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
recognizeViewModel.onPreviewFrame(ByteArray(1382400), true)
}
override fun handleLoginSuccess(equipmentUserInfo: EquipmentUserInfo, isAdmin: Boolean) {
super.handleLoginSuccess(equipmentUserInfo, isAdmin)
finish()
}
fun initCountTime() {
val totalTimeInMillis = 30L * 1000
countDownTimer = object : CountDownTimer(totalTimeInMillis, 1000) {
override fun onTick(millisUntilFinished: Long) {
binding.tvToInit.text = "${(millisUntilFinished / 1000).toInt() + 1}"
}
override fun onFinish() {
finish()
}
}.start()
}
}