|
|
@@ -4,16 +4,18 @@ import android.graphics.Bitmap
|
|
|
import android.view.InputDevice
|
|
|
import android.view.KeyEvent
|
|
|
import android.view.View
|
|
|
+import com.grkj.iscs.BusinessManager
|
|
|
import com.grkj.iscs.R
|
|
|
import com.grkj.iscs.databinding.DialogLoginBinding
|
|
|
import com.grkj.iscs.extentions.toByteArrays
|
|
|
import com.grkj.iscs.extentions.toHexStrings
|
|
|
import com.grkj.iscs.model.vo.card.CardInfoRespVO
|
|
|
import com.grkj.iscs.model.vo.user.UserInfoRespVO
|
|
|
+import com.grkj.iscs.util.ArcSoftUtil
|
|
|
import com.grkj.iscs.util.Executor
|
|
|
import com.grkj.iscs.util.FingerprintUtil
|
|
|
+import com.grkj.iscs.util.ToastUtils
|
|
|
import com.grkj.iscs.util.log.LogUtil
|
|
|
-import com.grkj.iscs.view.activity.test.face.FaceDetectorHelper
|
|
|
import com.grkj.iscs.view.base.BaseActivity
|
|
|
import com.grkj.iscs.view.base.BaseDialog
|
|
|
import com.grkj.iscs.view.presenter.LoginPresenter
|
|
|
@@ -28,9 +30,6 @@ class LoginDialog(val presenter: LoginPresenter?, val ctx: BaseActivity<*>, priv
|
|
|
Pair(context.getString(R.string.please_scan_fingerprint), R.mipmap.login_fingerprint),
|
|
|
Pair(context.getString(R.string.please_swipe_card), R.mipmap.login_card)
|
|
|
)
|
|
|
- private val faceDetectorHelper by lazy {
|
|
|
- FaceDetectorHelper()
|
|
|
- }
|
|
|
|
|
|
override val viewBinding: DialogLoginBinding
|
|
|
get() = DialogLoginBinding.inflate(layoutInflater)
|
|
|
@@ -66,20 +65,10 @@ class LoginDialog(val presenter: LoginPresenter?, val ctx: BaseActivity<*>, priv
|
|
|
mBinding?.tvTip?.text = mPairList[loginType].first
|
|
|
when (loginType) {
|
|
|
0 -> {
|
|
|
- faceDetectorHelper.startPreview(ctx, mBinding?.preview!!, false) {
|
|
|
- // 注意切换线程
|
|
|
- Executor.runOnMain {
|
|
|
- mBinding?.preview?.visibility = View.INVISIBLE
|
|
|
- faceDetectorHelper.stopDetector()
|
|
|
- presenter?.faceLogin(it) { isSuccess, cardInfoRespVO, userInfoRespVO ->
|
|
|
- if (isSuccess) {
|
|
|
- dismiss()
|
|
|
- }
|
|
|
- callBack?.invoke(isSuccess, cardInfoRespVO, userInfoRespVO)
|
|
|
- }
|
|
|
- }
|
|
|
+ if (!ArcSoftUtil.isActivated) {
|
|
|
+ ToastUtils.tip(R.string.face_can_not_process)
|
|
|
}
|
|
|
- faceDetectorHelper.startDetector()
|
|
|
+ startFace()
|
|
|
}
|
|
|
1 -> {
|
|
|
FingerprintUtil.init(ctx)
|
|
|
@@ -132,14 +121,38 @@ class LoginDialog(val presenter: LoginPresenter?, val ctx: BaseActivity<*>, priv
|
|
|
return super.dispatchKeyEvent(event)
|
|
|
}
|
|
|
|
|
|
+ private fun startFace() {
|
|
|
+ ArcSoftUtil.initEngine(context)
|
|
|
+ ArcSoftUtil.initCamera(context, ctx.windowManager, mBinding?.preview!!) {
|
|
|
+ println("haha : ${it == null}")
|
|
|
+ it?.let { itBitmap ->
|
|
|
+ BusinessManager.sendLoadingEventMsg(context.getString(R.string.face_detected_do_login))
|
|
|
+ ArcSoftUtil.stop()
|
|
|
+ presenter?.faceLogin(itBitmap) { isSuccess, cardInfoRespVO, userInfoRespVO ->
|
|
|
+ BusinessManager.sendLoadingEventMsg(null, false)
|
|
|
+ if (isSuccess) {
|
|
|
+ dismiss()
|
|
|
+ }
|
|
|
+ callBack?.invoke(isSuccess, cardInfoRespVO, userInfoRespVO)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
override fun dismiss() {
|
|
|
super.dismiss()
|
|
|
- if (mLoginType == 3) {
|
|
|
- mBinding?.etAccount?.text?.clear()
|
|
|
- mBinding?.etPassword?.text?.clear()
|
|
|
- } else if (mLoginType == 1) {
|
|
|
- FingerprintUtil.stop()
|
|
|
- FingerprintUtil.unInit()
|
|
|
+ when (mLoginType) {
|
|
|
+ 0 -> {
|
|
|
+ ArcSoftUtil.stop()
|
|
|
+ }
|
|
|
+ 1 -> {
|
|
|
+ FingerprintUtil.stop()
|
|
|
+ FingerprintUtil.unInit()
|
|
|
+ }
|
|
|
+ 3 -> {
|
|
|
+ mBinding?.etAccount?.text?.clear()
|
|
|
+ mBinding?.etPassword?.text?.clear()
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|