|
|
@@ -1,6 +1,5 @@
|
|
|
package com.grkj.iscs.view.dialog
|
|
|
|
|
|
-import android.content.Context
|
|
|
import android.graphics.Bitmap
|
|
|
import android.view.InputDevice
|
|
|
import android.view.KeyEvent
|
|
|
@@ -9,18 +8,17 @@ 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.FileStreamReqParam
|
|
|
import com.grkj.iscs.model.vo.card.CardInfoRespVO
|
|
|
import com.grkj.iscs.model.vo.user.UserInfoRespVO
|
|
|
-import com.grkj.iscs.util.CommonUtils
|
|
|
import com.grkj.iscs.util.Executor
|
|
|
import com.grkj.iscs.util.FingerprintUtil
|
|
|
-import com.grkj.iscs.util.NetApi
|
|
|
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
|
|
|
|
|
|
-class LoginDialog(val presenter: LoginPresenter?, val ctx: Context, private var callBack: ((Boolean, CardInfoRespVO?, UserInfoRespVO?) -> Unit)? = null) :
|
|
|
+class LoginDialog(val presenter: LoginPresenter?, val ctx: BaseActivity<*>, private var callBack: ((Boolean, CardInfoRespVO?, UserInfoRespVO?) -> Unit)? = null) :
|
|
|
BaseDialog<DialogLoginBinding>(ctx) {
|
|
|
|
|
|
private var cardNo = ""
|
|
|
@@ -30,6 +28,9 @@ class LoginDialog(val presenter: LoginPresenter?, val ctx: Context, private var
|
|
|
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)
|
|
|
@@ -63,19 +64,37 @@ class LoginDialog(val presenter: LoginPresenter?, val ctx: Context, private var
|
|
|
mBinding?.llEasyContainer?.visibility = View.VISIBLE
|
|
|
mBinding?.ivIcon?.setImageResource(mPairList[loginType].second)
|
|
|
mBinding?.tvTip?.text = mPairList[loginType].first
|
|
|
- if (loginType == 1) {
|
|
|
- FingerprintUtil.init(ctx)
|
|
|
- FingerprintUtil.start()
|
|
|
- FingerprintUtil.setScanListener(object : FingerprintUtil.OnScanListener {
|
|
|
- override fun onScan(bitmap: Bitmap) {
|
|
|
- presenter?.fingerprintLogin(bitmap) { isSuccess, cardInfoRespVO, userInfoRespVO ->
|
|
|
- if (isSuccess) {
|
|
|
- dismiss()
|
|
|
+ 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)
|
|
|
}
|
|
|
- callBack?.invoke(isSuccess, cardInfoRespVO, userInfoRespVO)
|
|
|
}
|
|
|
}
|
|
|
- })
|
|
|
+ faceDetectorHelper.startDetector()
|
|
|
+ }
|
|
|
+ 1 -> {
|
|
|
+ FingerprintUtil.init(ctx)
|
|
|
+ FingerprintUtil.start()
|
|
|
+ FingerprintUtil.setScanListener(object : FingerprintUtil.OnScanListener {
|
|
|
+ override fun onScan(bitmap: Bitmap) {
|
|
|
+ presenter?.fingerprintLogin(bitmap) { isSuccess, cardInfoRespVO, userInfoRespVO ->
|
|
|
+ if (isSuccess) {
|
|
|
+ dismiss()
|
|
|
+ }
|
|
|
+ callBack?.invoke(isSuccess, cardInfoRespVO, userInfoRespVO)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
show()
|