FingerPrintCheckActivity.kt 6.67 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 59 60 61 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
    //是否来自于后台启动验证
    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)) {
            GlideApp.with(mContext).load(head).into(headImg)
        }

        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
102
                    .setMessageColor(R.color.platform_price_color)
konghaorui committed
103 104 105 106 107 108 109 110 111 112 113 114 115
                    .setRightClick("确定") {
                        //跳转登录
                        RegisterAndLoginActivity.start(this)
                        //                                finish()
                    }
                    .setCancelAble(false)
                    .show()
            return
        }

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

        var dia = CommonDialog(mContext)
128
                .setImageCenter(R.drawable.user_lock_ico_zhiwen)
konghaorui committed
129 130 131 132 133 134 135 136 137 138 139 140 141 142
                .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
143
                    UserIn.splashIntent(this@FingerPrintCheckActivity)
konghaorui committed
144 145 146 147 148 149 150 151 152 153 154 155 156
                }
                //关闭手势解锁页面与指纹解锁页面
//                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
157
                    dia.setMessage(FingerPrintUtil.errorMessage).setMessageColor(R.color.platform_price_color)
konghaorui committed
158 159 160 161 162 163 164 165 166 167 168 169 170
                    //设置抖动动画
                    dia.setMessageShake(true)
                }
                error_num--
                if (error_num < 1) {
                    //关闭指纹监听
                    FingerPrintUtil.instance().cancelFingerListener()
                    //错误次数太多
                    if (dia != null) {
                        dia.dismiss()
                    }
                    CommonDialog(mContext)
                            .setMessage(FingerPrintUtil.errorLogin)
konghaorui committed
171
                            .setMessageColor(R.color.platform_price_color)
konghaorui committed
172 173 174 175 176 177 178 179 180 181 182 183
                            .setRightClick("确定") {
                                //跳转登录
                                //跳转登录
                                RegisterAndLoginActivity.start(this@FingerPrintCheckActivity)
                            }
                            .setCancelAble(false)
                            .show()
                }
            }

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

        })
    }

    override fun onBackPressed() {

    }
}