Frankensteinly преди 11 месеца
родител
ревизия
f69de0fb74

+ 17 - 28
app/src/main/java/com/grkj/iscs/activity/LoginActivity.kt

@@ -1,9 +1,6 @@
 package com.grkj.iscs.activity
 
 import android.content.Intent
-import android.view.InputDevice
-import android.view.KeyEvent
-import android.widget.EditText
 import com.grkj.iscs.base.BaseMvpActivity
 import com.grkj.iscs.databinding.ActivityLoginBinding
 import com.grkj.iscs.dialog.CardLoginDialog
@@ -13,6 +10,8 @@ import com.grkj.iscs.util.passwordStyle
 
 class LoginActivity : BaseMvpActivity<ILoginView, LoginPresenter, ActivityLoginBinding>() {
 
+    private var cardLoginDialog: CardLoginDialog? = null
+
     override val viewBinding: ActivityLoginBinding
         get() = ActivityLoginBinding.inflate(layoutInflater)
 
@@ -40,8 +39,21 @@ class LoginActivity : BaseMvpActivity<ILoginView, LoginPresenter, ActivityLoginB
 //        }
 
 
+        cardLoginDialog = CardLoginDialog(this) {
+            presenter?.cardLogin(it) { itLoginRst, itCardInfo ->
+                if (itLoginRst) {
+                    cardLoginDialog?.dismiss()
+                    val intent = Intent(this, HomeActivity::class.java)
+                    if (itCardInfo != null) {
+                        intent.putExtra("cardInfo", itCardInfo)
+                    }
+                    startActivity(intent)
+                }
+            }
+        }
+
         mBinding?.tvCardLogin?.setOnClickListener {
-            CardLoginDialog(this).show()
+            cardLoginDialog?.show()
         }
     }
 
@@ -50,6 +62,7 @@ class LoginActivity : BaseMvpActivity<ILoginView, LoginPresenter, ActivityLoginB
         mBinding?.etAccount?.setText("")
         mBinding?.etPassword?.setText("")
         presenter?.registerListener()
+        cardLoginDialog?.show()
     }
 
     override fun onStop() {
@@ -60,28 +73,4 @@ class LoginActivity : BaseMvpActivity<ILoginView, LoginPresenter, ActivityLoginB
     override fun initPresenter(): LoginPresenter {
         return LoginPresenter()
     }
-
-    var cardNo = ""
-    // TODO 待移除,放开限制,由人员操作约束,登录页不再提供刷卡登录功能,由单独页面提供
-    override fun dispatchKeyEvent(event: KeyEvent): Boolean {
-        if (event.action == KeyEvent.ACTION_UP && event.source == InputDevice.SOURCE_KEYBOARD) {
-            val view = currentFocus
-            if (view is EditText) {
-                val text = view.text?.toString()
-                if (text!!.isNotEmpty()) {
-                    val rst = text.substring(0, text.length - 1)
-                    view.setText(rst)
-                }
-            }
-            cardNo += event.keyCharacterMap.getDisplayLabel(event.keyCode)
-            // 检测到回车开始处理
-            if (event.keyCode == 66) {
-                // 处理cardNo
-                println("cardNo : $cardNo")
-                // 重置cardNo
-                cardNo = ""
-            }
-        }
-        return super.dispatchKeyEvent(event)
-    }
 }

+ 28 - 1
app/src/main/java/com/grkj/iscs/dialog/CardLoginDialog.kt

@@ -1,10 +1,15 @@
 package com.grkj.iscs.dialog
 
 import android.content.Context
+import android.view.InputDevice
+import android.view.KeyEvent
 import com.grkj.iscs.base.BaseDialog
 import com.grkj.iscs.databinding.DialogCardLoginBinding
 
-class CardLoginDialog(ctx: Context) : BaseDialog<DialogCardLoginBinding>(ctx) {
+class CardLoginDialog(ctx: Context, private var callBack: ((String) -> Unit)? = null) :
+    BaseDialog<DialogCardLoginBinding>(ctx) {
+
+    private var cardNo = ""
 
     override val viewBinding: DialogCardLoginBinding
         get() = DialogCardLoginBinding.inflate(layoutInflater)
@@ -12,4 +17,26 @@ class CardLoginDialog(ctx: Context) : BaseDialog<DialogCardLoginBinding>(ctx) {
     override fun initView() {
 
     }
+
+    override fun dispatchKeyEvent(event: KeyEvent): Boolean {
+        if (event.action == KeyEvent.ACTION_UP && event.source == InputDevice.SOURCE_KEYBOARD) {
+//            val view = currentFocus
+//            if (view is EditText) {
+//                val text = view.text?.toString()
+//                if (text!!.isNotEmpty()) {
+//                    val rst = text.substring(0, text.length - 1)
+//                    view.setText(rst)
+//                }
+//            }
+            // 检测到回车开始处理
+            if (event.keyCode == 66) {
+                callBack?.invoke(cardNo)
+                // 重置cardNo
+                cardNo = ""
+                return super.dispatchKeyEvent(event)
+            }
+            cardNo += event.keyCharacterMap.getDisplayLabel(event.keyCode)
+        }
+        return super.dispatchKeyEvent(event)
+    }
 }

+ 15 - 0
app/src/main/java/com/grkj/iscs/presenter/LoginPresenter.kt

@@ -51,6 +51,21 @@ class LoginPresenter : BasePresenter<ILoginView>() {
         }
     }
 
+    fun cardLogin(card: String, callBack: (Boolean, CardInfoRespVO?) -> Unit) {
+        NetApi.cardLogin(card) {
+            if (it == true) {
+                NetApi.getCardInfo { itInfo ->
+                    itInfo?.let { info ->
+                        SPUtils.setLoginUser(mContext!!, info)
+                    }
+                    callBack.invoke(it, itInfo)
+                }
+            } else {
+                callBack.invoke(false, null)
+            }
+        }
+    }
+
     fun registerListener() {
         BusinessManager.registerStatusListener(this) { dockBean ->
             dockBean.deviceList.forEach { deviceBean ->

+ 4 - 0
app/src/main/java/com/grkj/iscs/util/NetApi.kt

@@ -32,6 +32,8 @@ object NetApi {
                     val newToken = it.toBean(Token::class.java)
                     newToken.saveToSp(MyApplication.instance!!.applicationContext)
                     callBack.invoke(true)
+                } ?: run {
+                    callBack.invoke(false)
                 }
             }, isGet = false, isAuth = false)
     }
@@ -66,6 +68,8 @@ object NetApi {
                     val newToken = it.toBean(Token::class.java)
                     newToken.saveToSp(MyApplication.instance!!.applicationContext)
                     callBack.invoke(true)
+                } ?: run {
+                    callBack.invoke(false)
                 }
             }, isGet = false, isAuth = false)
     }

+ 9 - 2
app/src/main/res/layout/dialog_card_login.xml

@@ -1,8 +1,15 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
+    android:layout_height="match_parent"
+    android:gravity="center">
 
+    <TextView
+        style="@style/CommonTextView"
+        android:layout_width="@dimen/dialog_card_login_width"
+        android:layout_height="@dimen/dialog_card_login_height"
+        android:background="@color/white"
+        android:textColor="@color/main_color"
+        android:text="@string/swipe_card_on_machine" />
 
 </RelativeLayout>

+ 3 - 0
app/src/main/res/values/dimens.xml

@@ -48,4 +48,7 @@
     <dimen name="login_btn_text_size">13dp</dimen>
 
     <dimen name="home_module_margin">3dp</dimen>
+
+    <dimen name="dialog_card_login_width">320dp</dimen>
+    <dimen name="dialog_card_login_height">180dp</dimen>
 </resources>