FingerPrintCheckActivity.kt 6.71 KB
Newer Older
1
package com.yidianling.user.safePrivate
konghaorui committed
2 3 4 5 6

import android.text.TextUtils
import android.view.View
import android.widget.TextView
import com.ydl.ydl_image.module.GlideApp
7 8 9 10 11 12 13 14 15
import com.ydl.ydlcommon.base.BaseActivity
import com.ydl.ydlcommon.bean.StatusBarOptions
import com.ydl.ydlcommon.view.CircleImageView
import com.ydl.ydlcommon.view.TitleBar
import com.ydl.ydlcommon.view.dialog.CommonDialog
import com.yidianling.user.R
import com.yidianling.user.UserHelper
import com.yidianling.user.route.UserIn
import com.yidianling.user.ui.login.RegisterAndLoginActivity
konghaorui committed
16 17 18 19 20 21 22 23 24 25 26 27

/**
 * 登录验证指纹
 */
class FingerPrintCheckActivity : BaseActivity(), View.OnClickListener {
    override fun initDataAndEvent() {
        isFromBackground = intent.getBooleanExtra("isFromBackground", false)

        init()
    }

    override fun layoutResId(): Int {
28
        return R.layout.user_activity_finger_print_check
konghaorui committed
29 30
    }

31 32 33
    override fun getStatusViewOptions(): StatusBarOptions {
        return StatusBarOptions(true,true)
    }
konghaorui committed
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
    //是否来自于后台启动验证
    var isFromBackground = false

    lateinit var title_bar: TitleBar
    var headImg: CircleImageView? = null
    var checkText: TextView? = null
    var loginText: TextView? = null

    //错误次数 最多三次
    var error_num = 3


    override fun onDestroy() {
        super.onDestroy()
    }

    fun init() {
        title_bar = findViewById<TitleBar>(R.id.title_bar)
        headImg = findViewById<CircleImageView>(R.id.head_img)
        checkText = findViewById<TextView>(R.id.text_check)
        loginText = findViewById<TextView>(R.id.text_login)

        //设置头像
        val head = UserHelper.getUserInfo()?.userInfo?.head
        if (!TextUtils.isEmpty(head)) {
59 60 61
            headImg?.let {
                GlideApp.with(mContext).load(head).into(it)
            }
konghaorui committed
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
        }

        checkText?.setOnClickListener(this)
        loginText?.setOnClickListener(this)

        //开始验证
        checkFinger()
    }

    override fun onClick(v: View) {
        when (v.id) {
            R.id.text_check -> {
                //弹出验证
                checkFinger()
            }
            R.id.text_login -> {
                //跳转登录验证
                RegisterAndLoginActivity.start(this)
//                finish()
            }
        }
    }

    //弹窗开始验证
    fun checkFinger() {

        //如果系统指纹功能被关闭(关闭状态下指纹会被清除的),则提示
        if (FingerPrintUtil.instance().isHaveFingerPrint() ?: false == false) {
            //锁屏密码已关闭
            CommonDialog(mContext)
                    .setMessage("\n您的指纹信息发生变更,请在手机中重新添加指纹后返回解锁,或切换登录方式")
                    .setRightClick("确定") {
                    }
                    .setCancelAble(false)
                    .show()
            return
        }

        //进入其他页面返回后验证错误次数
        if (error_num < 1) {
            CommonDialog(mContext)
                    .setMessage(FingerPrintUtil.errorLogin)
konghaorui committed
104
                    .setMessageColor(R.color.platform_price_color)
konghaorui committed
105 106 107 108 109 110 111 112 113 114 115 116 117
                    .setRightClick("确定") {
                        //跳转登录
                        RegisterAndLoginActivity.start(this)
                        //                                finish()
                    }
                    .setCancelAble(false)
                    .show()
            return
        }

        //判断系统指纹是否被暂时禁止
        if (!FingerPrintUtil.getFingerPrintIsAviable()) {
            CommonDialog(mContext)
118
                    .setImageCenter(R.drawable.user_lock_ico_zhiwen)
konghaorui committed
119
                    .setMessage(FingerPrintUtil.errorMoreMessage)
konghaorui committed
120
                    .setMessageColor(R.color.platform_price_color)
konghaorui committed
121 122 123 124 125 126 127 128 129
                    .setRightClick("取消") {
                        //停止指纹监听
                        FingerPrintUtil.instance().cancelFingerListener()
                    }
                    .show()
            return
        }

        var dia = CommonDialog(mContext)
130
                .setImageCenter(R.drawable.user_lock_ico_zhiwen)
konghaorui committed
131 132 133 134 135 136 137 138 139 140 141 142 143 144
                .setMessage("验证已有手机指纹")
                .setRightClick("取消") {
                }
                .setOnDismiss {
                    //停止指纹监听
                    FingerPrintUtil.instance().cancelFingerListener()
                }
        dia.show()

        FingerPrintUtil.instance().startFingerPrint(object : FingerPrintUtil.FingerCallback {
            override fun onAuthenticationSucceeded() {
                //
                FingerPrintUtil.instance().setCurrentUnLockTime(System.currentTimeMillis())
                if (!isFromBackground) {
konghaorui committed
145
                    UserIn.splashIntent(this@FingerPrintCheckActivity)
konghaorui committed
146 147 148 149 150 151 152 153 154 155 156 157 158
                }
                //关闭手势解锁页面与指纹解锁页面
//                EventBus.getDefault().post(FinishActivityEvent(FingerPrintCheckActivity::class.simpleName))
//                EventBus.getDefault().post(FinishActivityEvent(HandUnlockCheckActivity::class.simpleName))
                if (!isFinishing && dia != null) {
                    dia.dismiss()
                    dia = null
                }
                finish()
            }

            override fun onAuthenticationFailed() {
                if (dia != null) {
konghaorui committed
159
                    dia.setMessage(FingerPrintUtil.errorMessage).setMessageColor(R.color.platform_price_color)
konghaorui committed
160 161 162 163 164 165 166 167 168 169 170 171 172
                    //设置抖动动画
                    dia.setMessageShake(true)
                }
                error_num--
                if (error_num < 1) {
                    //关闭指纹监听
                    FingerPrintUtil.instance().cancelFingerListener()
                    //错误次数太多
                    if (dia != null) {
                        dia.dismiss()
                    }
                    CommonDialog(mContext)
                            .setMessage(FingerPrintUtil.errorLogin)
konghaorui committed
173
                            .setMessageColor(R.color.platform_price_color)
konghaorui committed
174 175 176 177 178 179 180 181 182 183 184 185
                            .setRightClick("确定") {
                                //跳转登录
                                //跳转登录
                                RegisterAndLoginActivity.start(this@FingerPrintCheckActivity)
                            }
                            .setCancelAble(false)
                            .show()
                }
            }

            override fun onAuthenticationError() {
                if (dia != null) {
konghaorui committed
186
                    dia.setMessage(FingerPrintUtil.errorMoreMessage).setMessageColor(R.color.platform_price_color)
konghaorui committed
187 188 189 190 191 192 193 194 195 196
                }
            }

        })
    }

    override fun onBackPressed() {

    }
}