Explorar o código

登录页刷卡弹框调整

Frankensteinly hai 10 meses
pai
achega
b6fec5facf
Modificáronse 1 ficheiros con 34 adicións e 11 borrados
  1. 34 11
      app/src/main/java/com/grkj/iscs/view/activity/LoginActivity.kt

+ 34 - 11
app/src/main/java/com/grkj/iscs/view/activity/LoginActivity.kt

@@ -1,5 +1,6 @@
 package com.grkj.iscs.view.activity
 
+import android.content.Intent
 import com.grkj.iscs.R
 import com.grkj.iscs.databinding.ActivityLoginBinding
 import com.grkj.iscs.util.AppUtils
@@ -22,21 +23,23 @@ class LoginActivity : BaseMvpActivity<ILoginView, LoginPresenter, ActivityLoginB
         mBinding?.tvVersion?.text = "v${AppUtils.getPkgVerName(this)}"
 
         val pairList = mutableListOf(
-            Pair(getString(R.string.login_face), R.mipmap.login_face),
-            Pair(getString(R.string.login_fingerprint), R.mipmap.login_fingerprint),
-            Pair(getString(R.string.login_card), R.mipmap.login_card),
-            Pair(getString(R.string.login_account), R.mipmap.login_account))
+            Func(getString(R.string.login_face), R.mipmap.login_face) { },
+            Func(getString(R.string.login_fingerprint), R.mipmap.login_fingerprint) {},
+            Func(getString(R.string.login_card), R.mipmap.login_card) { showCardLoginDialog() },
+            Func(getString(R.string.login_account), R.mipmap.login_account) {}
+        )
 
 
-        mBinding?.rvType?.adapter = object : CommonAdapter<Pair<String, Int>>(this, R.layout.item_rv_login, pairList) {
-            override fun convert(holder: ViewHolder, pair: Pair<String, Int>, position: Int) {
-                holder.setText(R.id.tv_name, pair.first)
-                holder.setBackgroundRes(R.id.iv_icon, pair.second)
-                holder.setOnClickListener(R.id.root) {
-                    CardLoginDialog(this@LoginActivity).show()
+        mBinding?.rvType?.adapter =
+            object : CommonAdapter<Func>(this, R.layout.item_rv_login, pairList) {
+                override fun convert(holder: ViewHolder, func: Func, position: Int) {
+                    holder.setText(R.id.tv_name, func.name)
+                    holder.setBackgroundRes(R.id.iv_icon, func.icon)
+                    holder.setOnClickListener(R.id.root) {
+                        func.callBack.invoke()
+                    }
                 }
             }
-        }
 
 
         // TODO 只适配armeabi-v7a
@@ -61,6 +64,24 @@ class LoginActivity : BaseMvpActivity<ILoginView, LoginPresenter, ActivityLoginB
 //        }
     }
 
+    private fun showCardLoginDialog() {
+        cardLoginDialog ?: run {
+            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)
+                    }
+                }
+            }
+        }
+        cardLoginDialog?.show()
+    }
+
     override fun onResume() {
         super.onResume()
         presenter?.registerListener()
@@ -75,4 +96,6 @@ class LoginActivity : BaseMvpActivity<ILoginView, LoginPresenter, ActivityLoginB
     override fun initPresenter(): LoginPresenter {
         return LoginPresenter()
     }
+
+    data class Func(val name: String, val icon: Int, val callBack: () -> Unit)
 }