|
@@ -1,12 +1,20 @@
|
|
|
package com.grkj.iscs.view.activity
|
|
package com.grkj.iscs.view.activity
|
|
|
|
|
|
|
|
import android.content.Intent
|
|
import android.content.Intent
|
|
|
|
|
+import android.graphics.Bitmap
|
|
|
|
|
+import android.view.InputDevice
|
|
|
|
|
+import android.view.KeyEvent
|
|
|
import android.widget.ImageView
|
|
import android.widget.ImageView
|
|
|
import com.grkj.iscs.BusinessManager
|
|
import com.grkj.iscs.BusinessManager
|
|
|
import com.grkj.iscs.R
|
|
import com.grkj.iscs.R
|
|
|
import com.grkj.iscs.databinding.ActivityLoginBinding
|
|
import com.grkj.iscs.databinding.ActivityLoginBinding
|
|
|
|
|
+import com.grkj.iscs.extentions.toByteArrays
|
|
|
|
|
+import com.grkj.iscs.extentions.toHexStrings
|
|
|
import com.grkj.iscs.modbus.ModBusController
|
|
import com.grkj.iscs.modbus.ModBusController
|
|
|
|
|
+import com.grkj.iscs.model.vo.card.CardInfoRespVO
|
|
|
|
|
+import com.grkj.iscs.model.vo.user.UserInfoRespVO
|
|
|
import com.grkj.iscs.util.AppUtils
|
|
import com.grkj.iscs.util.AppUtils
|
|
|
|
|
+import com.grkj.iscs.util.FingerprintUtil
|
|
|
import com.grkj.iscs.util.log.LogUtil
|
|
import com.grkj.iscs.util.log.LogUtil
|
|
|
import com.grkj.iscs.view.base.BaseMvpActivity
|
|
import com.grkj.iscs.view.base.BaseMvpActivity
|
|
|
import com.grkj.iscs.view.dialog.LoginDialog
|
|
import com.grkj.iscs.view.dialog.LoginDialog
|
|
@@ -18,6 +26,7 @@ import com.zhy.adapter.recyclerview.base.ViewHolder
|
|
|
class LoginActivity : BaseMvpActivity<ILoginView, LoginPresenter, ActivityLoginBinding>() {
|
|
class LoginActivity : BaseMvpActivity<ILoginView, LoginPresenter, ActivityLoginBinding>() {
|
|
|
|
|
|
|
|
private var cardLoginDialog: LoginDialog? = null
|
|
private var cardLoginDialog: LoginDialog? = null
|
|
|
|
|
+ private var cardNo = ""
|
|
|
|
|
|
|
|
override val viewBinding: ActivityLoginBinding
|
|
override val viewBinding: ActivityLoginBinding
|
|
|
get() = ActivityLoginBinding.inflate(layoutInflater)
|
|
get() = ActivityLoginBinding.inflate(layoutInflater)
|
|
@@ -40,7 +49,9 @@ class LoginActivity : BaseMvpActivity<ILoginView, LoginPresenter, ActivityLoginB
|
|
|
holder.setText(R.id.tv_name, pair.first)
|
|
holder.setText(R.id.tv_name, pair.first)
|
|
|
holder.getView<ImageView>(R.id.iv_icon).setImageResource(pair.second)
|
|
holder.getView<ImageView>(R.id.iv_icon).setImageResource(pair.second)
|
|
|
holder.setOnClickListener(R.id.root) {
|
|
holder.setOnClickListener(R.id.root) {
|
|
|
- showLoginDialog(position)
|
|
|
|
|
|
|
+ if (position == 0 || position == 3) {
|
|
|
|
|
+ showLoginDialog(position)
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -50,22 +61,14 @@ class LoginActivity : BaseMvpActivity<ILoginView, LoginPresenter, ActivityLoginB
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
- * @param loginType 0:人脸 1:工卡 2:账号 3:指纹
|
|
|
|
|
|
|
+ * @param loginType 0:人脸 1:指纹 2:工卡 3:账号
|
|
|
*/
|
|
*/
|
|
|
private fun showLoginDialog(loginType: Int) {
|
|
private fun showLoginDialog(loginType: Int) {
|
|
|
cardLoginDialog ?: run {
|
|
cardLoginDialog ?: run {
|
|
|
LogUtil.i("创建Swipe dialog : ${presenter == null}")
|
|
LogUtil.i("创建Swipe dialog : ${presenter == null}")
|
|
|
cardLoginDialog = LoginDialog(presenter, this) { isSuccess, cardInfoRespVO, userInfoRespVO ->
|
|
cardLoginDialog = LoginDialog(presenter, this) { isSuccess, cardInfoRespVO, userInfoRespVO ->
|
|
|
if (isSuccess) {
|
|
if (isSuccess) {
|
|
|
- val intent = Intent(this, HomeActivity::class.java)
|
|
|
|
|
- if (cardInfoRespVO != null) {
|
|
|
|
|
- intent.putExtra("cardInfo", cardInfoRespVO)
|
|
|
|
|
- }
|
|
|
|
|
- if (userInfoRespVO != null) {
|
|
|
|
|
- intent.putExtra("userInfo", userInfoRespVO)
|
|
|
|
|
- }
|
|
|
|
|
- startActivity(intent)
|
|
|
|
|
- BusinessManager.submitKeyData(this@LoginActivity)
|
|
|
|
|
|
|
+ goHome(cardInfoRespVO, userInfoRespVO)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -78,12 +81,59 @@ class LoginActivity : BaseMvpActivity<ILoginView, LoginPresenter, ActivityLoginB
|
|
|
BusinessManager.connectDock(true)
|
|
BusinessManager.connectDock(true)
|
|
|
}
|
|
}
|
|
|
presenter?.registerListener()
|
|
presenter?.registerListener()
|
|
|
|
|
+
|
|
|
|
|
+ FingerprintUtil.init(this)
|
|
|
|
|
+ FingerprintUtil.start()
|
|
|
|
|
+ FingerprintUtil.setScanListener(object : FingerprintUtil.OnScanListener {
|
|
|
|
|
+ override fun onScan(bitmap: Bitmap) {
|
|
|
|
|
+ presenter?.fingerprintLogin(bitmap) { isSuccess, cardInfoRespVO, userInfoRespVO ->
|
|
|
|
|
+ if (isSuccess) {
|
|
|
|
|
+ goHome(cardInfoRespVO, userInfoRespVO)
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ override fun dispatchKeyEvent(event: KeyEvent): Boolean {
|
|
|
|
|
+ if (event.action == KeyEvent.ACTION_UP && event.source == InputDevice.SOURCE_KEYBOARD) {
|
|
|
|
|
+ // 检测到回车开始处理
|
|
|
|
|
+ if (event.keyCode == 66) {
|
|
|
|
|
+ cardNo = cardNo.toLong().toByteArrays().toHexStrings(false)
|
|
|
|
|
+ LogUtil.i("Swipe card login: $cardNo")
|
|
|
|
|
+ presenter?.cardLogin(cardNo) { isSuccess, cardInfoRespVO, userInfoRespVO ->
|
|
|
|
|
+ if (isSuccess) {
|
|
|
|
|
+ goHome(cardInfoRespVO, userInfoRespVO)
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // 重置cardNo
|
|
|
|
|
+ cardNo = ""
|
|
|
|
|
+ return super.dispatchKeyEvent(event)
|
|
|
|
|
+ }
|
|
|
|
|
+ cardNo += event.keyCharacterMap.getDisplayLabel(event.keyCode)
|
|
|
|
|
+ }
|
|
|
|
|
+ return super.dispatchKeyEvent(event)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private fun goHome(cardInfoRespVO: CardInfoRespVO?, userInfoRespVO: UserInfoRespVO?) {
|
|
|
|
|
+ val intent = Intent(this@LoginActivity, HomeActivity::class.java)
|
|
|
|
|
+ if (cardInfoRespVO != null) {
|
|
|
|
|
+ intent.putExtra("cardInfo", cardInfoRespVO)
|
|
|
|
|
+ }
|
|
|
|
|
+ if (userInfoRespVO != null) {
|
|
|
|
|
+ intent.putExtra("userInfo", userInfoRespVO)
|
|
|
|
|
+ }
|
|
|
|
|
+ startActivity(intent)
|
|
|
|
|
+ BusinessManager.submitKeyData(this@LoginActivity)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
override fun onStop() {
|
|
override fun onStop() {
|
|
|
super.onStop()
|
|
super.onStop()
|
|
|
cardLoginDialog?.dismiss()
|
|
cardLoginDialog?.dismiss()
|
|
|
presenter?.unregisterListener()
|
|
presenter?.unregisterListener()
|
|
|
|
|
+ cardNo = ""
|
|
|
|
|
+ FingerprintUtil.stop()
|
|
|
|
|
+ FingerprintUtil.unInit()
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
override fun initPresenter(): LoginPresenter {
|
|
override fun initPresenter(): LoginPresenter {
|