Bladeren bron

根据高保真调整登录弹框

Frankensteinly 10 maanden geleden
bovenliggende
commit
5aa91a93db

+ 3 - 2
app/src/main/java/com/grkj/iscs/view/activity/HomeActivity.kt

@@ -1,5 +1,6 @@
 package com.grkj.iscs.view.activity
 
+import android.widget.ImageView
 import com.grkj.iscs.R
 import com.grkj.iscs.databinding.ActivityHomeBinding
 import com.grkj.iscs.view.adapter.MenuAdapter
@@ -21,7 +22,7 @@ class HomeActivity : BaseMvpActivity<IHomeView, HomePresenter, ActivityHomeBindi
         get() = ActivityHomeBinding.inflate(layoutInflater)
 
     override fun initView() {
-        mBinding?.itemSetting?.ivIcon?.setBackgroundResource(R.mipmap.settings)
+        mBinding?.itemSetting?.ivIcon?.setImageResource(R.mipmap.settings)
         mBinding?.itemSetting?.tvName?.text = getString(R.string.settings)
         mBinding?.itemSetting?.root?.setOnClickListener {
 
@@ -38,7 +39,7 @@ class HomeActivity : BaseMvpActivity<IHomeView, HomePresenter, ActivityHomeBindi
         mBinding?.rvMenu?.adapter = object : CommonAdapter<Menu>(this, R.layout.item_rv_menu, mMenuList) {
             override fun convert(holder: ViewHolder, data: Menu, position: Int) {
                 holder.setText(R.id.tv_name, data.title)
-                holder.setBackgroundRes(R.id.iv_icon, data.icon!!)
+                holder.getView<ImageView>(R.id.iv_icon).setImageResource(data.icon!!)
                 holder.setOnClickListener(R.id.root) {
                     mBinding?.vp?.currentItem = position
                     notifyDataSetChanged()

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

@@ -1,20 +1,19 @@
 package com.grkj.iscs.view.activity
 
-import android.content.Intent
+import android.widget.ImageView
 import com.grkj.iscs.R
 import com.grkj.iscs.databinding.ActivityLoginBinding
 import com.grkj.iscs.util.AppUtils
 import com.grkj.iscs.view.base.BaseMvpActivity
-import com.grkj.iscs.view.dialog.CardLoginDialog
+import com.grkj.iscs.view.dialog.LoginDialog
 import com.grkj.iscs.view.iview.ILoginView
 import com.grkj.iscs.view.presenter.LoginPresenter
-import com.manu.mdatepicker.BuildConfig
 import com.zhy.adapter.recyclerview.CommonAdapter
 import com.zhy.adapter.recyclerview.base.ViewHolder
 
 class LoginActivity : BaseMvpActivity<ILoginView, LoginPresenter, ActivityLoginBinding>() {
 
-    private var cardLoginDialog: CardLoginDialog? = null
+    private var cardLoginDialog: LoginDialog? = null
 
     override val viewBinding: ActivityLoginBinding
         get() = ActivityLoginBinding.inflate(layoutInflater)
@@ -23,20 +22,20 @@ class LoginActivity : BaseMvpActivity<ILoginView, LoginPresenter, ActivityLoginB
         mBinding?.tvVersion?.text = "v${AppUtils.getPkgVerName(this)}"
 
         val pairList = mutableListOf(
-            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) {}
+            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)
         )
 
 
         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)
+            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.getView<ImageView>(R.id.iv_icon).setImageResource(pair.second)
                     holder.setOnClickListener(R.id.root) {
-                        func.callBack.invoke()
+                        showLoginDialog(position)
                     }
                 }
             }
@@ -64,28 +63,30 @@ class LoginActivity : BaseMvpActivity<ILoginView, LoginPresenter, ActivityLoginB
 //        }
     }
 
-    private fun showCardLoginDialog() {
+    /**
+     * @param loginType 0:人脸 1:指纹 2:工卡 3:账号
+     */
+    private fun showLoginDialog(loginType: Int) {
         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 = LoginDialog(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()
+        cardLoginDialog?.showByType(loginType)
     }
 
     override fun onResume() {
         super.onResume()
         presenter?.registerListener()
-        cardLoginDialog?.show()
     }
 
     override fun onStop() {
@@ -96,6 +97,4 @@ class LoginActivity : BaseMvpActivity<ILoginView, LoginPresenter, ActivityLoginB
     override fun initPresenter(): LoginPresenter {
         return LoginPresenter()
     }
-
-    data class Func(val name: String, val icon: Int, val callBack: () -> Unit)
 }

+ 0 - 4
app/src/main/java/com/grkj/iscs/view/base/BaseDialog.kt

@@ -47,8 +47,4 @@ abstract class BaseDialog<T : ViewBinding?>(
     }
 
     abstract fun initView()
-
-    open fun showDialog() {
-        show()
-    }
 }

+ 0 - 4
app/src/main/java/com/grkj/iscs/view/dialog/AuthDialog.kt

@@ -13,10 +13,6 @@ class AuthDialog(ctx: Context) : BaseDialog<DialogAuthBinding>(ctx) {
 
     }
 
-    override fun showDialog() {
-
-    }
-
     /**
      * 更新结果
      */

+ 0 - 45
app/src/main/java/com/grkj/iscs/view/dialog/CardLoginDialog.kt

@@ -1,45 +0,0 @@
-package com.grkj.iscs.view.dialog
-
-import android.content.Context
-import android.view.InputDevice
-import android.view.KeyEvent
-import com.grkj.iscs.view.base.BaseDialog
-import com.grkj.iscs.databinding.DialogCardLoginBinding
-import com.grkj.iscs.extentions.toByteArrays
-import com.grkj.iscs.extentions.toHexStrings
-
-class CardLoginDialog(ctx: Context, private var callBack: ((String) -> Unit)? = null) :
-    BaseDialog<DialogCardLoginBinding>(ctx) {
-
-    private var cardNo = ""
-
-    override val viewBinding: DialogCardLoginBinding
-        get() = DialogCardLoginBinding.inflate(layoutInflater)
-
-    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) {
-                cardNo = cardNo.toLong().toByteArrays().toHexStrings(false)
-                callBack?.invoke(cardNo)
-                // 重置cardNo
-                cardNo = ""
-                return super.dispatchKeyEvent(event)
-            }
-            cardNo += event.keyCharacterMap.getDisplayLabel(event.keyCode)
-        }
-        return super.dispatchKeyEvent(event)
-    }
-}

+ 1 - 5
app/src/main/java/com/grkj/iscs/view/dialog/KeyReturnConfirmDialog.kt

@@ -32,13 +32,9 @@ class KeyReturnConfirmDialog(ctx: Context): BaseDialog<DialogKeyReturnConfirmBin
         }
     }
 
-    override fun showDialog() {
-
-    }
-
     fun setDataAndShow(bleDevice: BleDevice) {
         this.bleDevice = bleDevice
-        showDialog()
+        show()
     }
 
     fun setKeyModeReady() {

+ 2 - 1
app/src/main/java/com/grkj/iscs/view/dialog/LoadingProgressDialog.kt

@@ -16,7 +16,8 @@ class LoadingProgressDialog(context: Context) :
         setCanceledOnTouchOutside(false)
     }
 
-    override fun showDialog() {
+    override fun show() {
+        super.show()
         if (!mBinding!!.avlivCommon.isShown) mBinding!!.avlivCommon.smoothToShow()
     }
 

+ 75 - 0
app/src/main/java/com/grkj/iscs/view/dialog/LoginDialog.kt

@@ -0,0 +1,75 @@
+package com.grkj.iscs.view.dialog
+
+import android.content.Context
+import android.view.InputDevice
+import android.view.KeyEvent
+import android.view.View
+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.view.base.BaseDialog
+
+class LoginDialog(ctx: Context, private var callBack: ((String) -> Unit)? = null) :
+    BaseDialog<DialogLoginBinding>(ctx) {
+
+    private var cardNo = ""
+    private var mLoginType = 3 // 0:人脸 1:指纹 2:工卡 3:账号
+    private val mPairList = mutableListOf(
+        Pair(context.getString(R.string.please_scan_face), R.mipmap.login_face),
+        Pair(context.getString(R.string.please_scan_fingerprint), R.mipmap.login_fingerprint),
+        Pair(context.getString(R.string.please_swipe_card), R.mipmap.login_card)
+    )
+
+    override val viewBinding: DialogLoginBinding
+        get() = DialogLoginBinding.inflate(layoutInflater)
+
+    override fun initView() {
+
+    }
+
+    /**
+     * 根据类型显示弹框
+     *
+     * @param loginType 1:人脸 2:指纹 3:工卡 4:账号
+     */
+    fun showByType(loginType: Int) {
+        mLoginType = loginType
+        if (loginType == 3) {
+            mBinding?.llAccountContainer?.visibility = View.VISIBLE
+            mBinding?.llEasyContainer?.visibility = View.GONE
+        } else {
+            mBinding?.llAccountContainer?.visibility = View.GONE
+            mBinding?.llEasyContainer?.visibility = View.VISIBLE
+            mBinding?.ivIcon?.setImageResource(mPairList[loginType].second)
+            mBinding?.tvTip?.text = mPairList[loginType].first
+        }
+        show()
+    }
+
+    override fun dispatchKeyEvent(event: KeyEvent): Boolean {
+        if (mLoginType != 2) {
+            return super.dispatchKeyEvent(event)
+        }
+        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) {
+                cardNo = cardNo.toLong().toByteArrays().toHexStrings(false)
+                callBack?.invoke(cardNo)
+                // 重置cardNo
+                cardNo = ""
+                return super.dispatchKeyEvent(event)
+            }
+            cardNo += event.keyCharacterMap.getDisplayLabel(event.keyCode)
+        }
+        return super.dispatchKeyEvent(event)
+    }
+}

+ 1 - 1
app/src/main/java/com/grkj/iscs/view/presenter/TicketDetailPresenter.kt

@@ -180,6 +180,6 @@ class TicketDetailPresenter : BasePresenter<ITicketDetailView>() {
         dlg.setConfirmListener {
             callback.invoke()
         }
-        dlg.showDialog()
+        dlg.show()
     }
 }

+ 6 - 0
app/src/main/res/drawable/common_btn_bg.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <corners android:radius="@dimen/common_radius_small" />
+    <solid android:color="@color/main_color" />
+</shape>

+ 8 - 0
app/src/main/res/drawable/white_stroke_bg.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <corners android:radius="@dimen/common_radius_small" />
+    <stroke
+        android:width="@dimen/divider_line_width"
+        android:color="@color/white" />
+</shape>

+ 0 - 28
app/src/main/res/layout/dialog_card_login.xml

@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:gravity="center"
-    app:cardBackgroundColor="@color/dialog_card_login_bg"
-    app:strokeColor="@color/common_transparent">
-
-    <LinearLayout
-        android:layout_width="165dp"
-        android:layout_height="146dp"
-        android:layout_gravity="center"
-        android:gravity="center"
-        android:orientation="vertical">
-
-        <ImageView
-            android:layout_width="100dp"
-            android:layout_height="100dp"
-            android:layout_marginBottom="5dp"
-            android:background="@mipmap/swipe_card" />
-
-        <TextView
-            style="@style/CommonTextView"
-            android:text="@string/please_swipe_card"
-            android:textSize="@dimen/common_text_size_big" />
-    </LinearLayout>
-</com.google.android.material.card.MaterialCardView>

+ 67 - 0
app/src/main/res/layout/dialog_login.xml

@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:gravity="center"
+    app:cardBackgroundColor="@color/dialog_card_login_bg"
+    app:strokeColor="@color/common_transparent">
+
+    <LinearLayout
+        android:id="@+id/ll_easy_container"
+        android:layout_width="165dp"
+        android:layout_height="146dp"
+        android:layout_gravity="center"
+        android:gravity="center"
+        android:orientation="vertical"
+        android:visibility="gone">
+
+        <ImageView
+            android:id="@+id/iv_icon"
+            android:layout_width="100dp"
+            android:layout_height="100dp"
+            android:layout_marginBottom="5dp" />
+
+        <TextView
+            android:id="@+id/tv_tip"
+            style="@style/CommonTextView"
+            android:textSize="@dimen/common_text_size_big" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:id="@+id/ll_account_container"
+        android:layout_width="165dp"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:gravity="center"
+        android:orientation="vertical"
+        android:padding="20dp">
+
+        <EditText
+            style="@style/CommonEdit"
+            android:layout_width="match_parent"
+            android:layout_marginBottom="10dp"
+            android:hint="@string/please_input_account" />
+
+        <EditText
+            style="@style/CommonEdit"
+            android:layout_width="match_parent"
+            android:layout_marginBottom="10dp"
+            android:hint="@string/please_input_password" />
+
+        <TextView
+            android:id="@+id/tv_login"
+            style="@style/CommonBtn"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="10dp"
+            android:text="@string/login" />
+
+        <TextView
+            android:id="@+id/tv_cancel"
+            style="@style/CommonBtn"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:text="@string/cancel" />
+    </LinearLayout>
+</com.google.android.material.card.MaterialCardView>

+ 1 - 1
app/src/main/res/layout/item_rv_job_management.xml

@@ -26,7 +26,7 @@
         android:layout_width="0dp"
         android:layout_height="@dimen/divider_line_width"
         android:layout_below="@id/iv"
-        android:background="@color/tab_indicator"
+        android:background="@color/main_color"
         android:visibility="gone"
         app:layout_constraintLeft_toLeftOf="parent"
         app:layout_constraintRight_toRightOf="parent"

+ 2 - 3
app/src/main/res/values/colors.xml

@@ -4,11 +4,12 @@
     <color name="white">#FFFFFFFF</color>
     <color name="aquamarine">#7FFFD4</color>
 
-    <color name="main_color">#644bd8</color>
+    <color name="main_color">#00AAFF</color>
     <color name="common_transparent">#00000000</color>
     <color name="common_bg_white_10">#1affffff</color>
     <color name="common_bg_white_20">#33ffffff</color>
     <color name="common_bg_white_30">#4DFFFFFF</color>
+    <color name="common_bg_white_40">#66FFFFFF</color>
     <color name="common_bg_white_60">#99FFFFFF</color>
     <color name="common_bg_white_70">#B3FFFFFF</color>
     <color name="common_bg_white_80">#CCFFFFFF</color>
@@ -22,7 +23,5 @@
     <color name="selectable_input_prefix">#bd3124</color>
     <color name="switch_track_on">#298EFF</color>
     <color name="switch_track_off">#E9E9E9</color>
-
-    <color name="tab_indicator">#64b0f4</color>
     <color name="dialog_card_login_bg">#990E57EA</color>
 </resources>

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

@@ -2,8 +2,10 @@
 <resources>
     <dimen name="common_text_size">10sp</dimen>
     <dimen name="common_text_size_big">14sp</dimen>
+    <dimen name="common_text_padding">5dp</dimen>
     <dimen name="common_font_txt_size_page_title">14dp</dimen>
     <dimen name="common_radius">10dp</dimen>
+    <dimen name="common_radius_small">5dp</dimen>
 
     <dimen name="common_btn_width">150dp</dimen>
     <dimen name="common_btn_height">50dp</dimen>

+ 4 - 1
app/src/main/res/values/strings.xml

@@ -37,7 +37,7 @@
     <string name="ticket_type_is_null">请选择作业票类型</string>
 
     <string name="login_tip">请输入用户名和密码或者刷卡进行登录</string>
-    <string name="please_input_account">请输入账户</string>
+    <string name="please_input_account">请输入用户名</string>
     <string name="please_input_password">请输入密码</string>
     <string name="account_or_password_error">账号或密码错误</string>
     <string name="confirm">确定</string>
@@ -132,4 +132,7 @@
     <string name="login_card">工卡登录</string>
     <string name="login_account">用户名登录</string>
     <string name="please_swipe_card">请刷卡</string>
+    <string name="please_scan_face">请刷脸</string>
+    <string name="please_scan_fingerprint">请刷指纹</string>
+    <string name="login">登录</string>
 </resources>

+ 9 - 5
app/src/main/res/values/styles.xml

@@ -14,6 +14,8 @@
         <item name="android:gravity">center</item>
         <item name="android:textColor">@color/white</item>
         <item name="android:textSize">@dimen/common_text_size</item>
+        <item name="android:background">@drawable/common_btn_bg</item>
+        <item name="android:padding">@dimen/common_text_padding</item>
     </style>
 
     <style name="CommonRecyclerView">
@@ -32,15 +34,17 @@
         <item name="android:track">@drawable/track_selector</item>
     </style>
 
-    <style name="CommonEditNew">
+    <style name="CommonEdit">
         <item name="android:layout_width">wrap_content</item>
         <item name="android:layout_height">wrap_content</item>
-        <item name="android:textColor">@color/main_color</item>
-        <item name="android:textColorHint">@color/common_bg_black_30</item>
-        <item name="android:backgroundTint">@color/common_bg_black_30</item>
-        <item name="android:textSize">@dimen/common_font_txt_size_page_title</item>
+        <item name="android:textColor">@color/white</item>
+        <item name="android:textColorHint">@color/common_bg_white_20</item>
+        <item name="android:backgroundTint">@color/common_bg_white_40</item>
+        <item name="android:textSize">@dimen/common_text_size</item>
         <item name="android:maxLines">1</item>
         <item name="android:singleLine">true</item>
         <item name="android:ellipsize">end</item>
+        <item name="android:padding">@dimen/common_text_padding</item>
+        <item name="android:background">@drawable/white_stroke_bg</item>
     </style>
 </resources>