Pu Zhibing
2025-12-11 ab0c19e49fabdb8cc6eea454ea455bce2efbb718
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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
package com.igo.user.ui.mine
 
import android.app.Activity
import android.os.CountDownTimer
import android.widget.EditText
import android.widget.TextView
import cn.sinata.xldutils.utils.SPUtils
import cn.sinata.xldutils.utils.hideMail
import cn.sinata.xldutils.utils.myToast
import com.igo.user.R
import com.igo.user.network.HttpManager
import com.igo.user.network.request
import com.igo.user.ui.TransparentStatusBarActivity
import com.igo.user.utils.Const
import org.jetbrains.anko.find
import org.jetbrains.anko.sdk27.coroutines.onClick
import org.jetbrains.anko.startActivity
import org.jetbrains.anko.toast
 
class VerifyMailActivity:TransparentStatusBarActivity() {
    override fun setContentView() = R.layout.activity_verify_mail
 
    private val mail by lazy { intent.getStringExtra("mail")?:"" }
    private val isRegister by lazy { intent.getBooleanExtra("isRegister",true) }
 
    private val tv_get_code by lazy { find<TextView>(R.id.tv_get_code) }
    private val tv_action by lazy { find<TextView>(R.id.tv_action) }
    private val tv_1 by lazy { find<TextView>(R.id.tv_1) }
    private val et_code by lazy { find<EditText>(R.id.et_code) }
 
    private val countDownTimer = object : CountDownTimer(60 * 1000, 1000) {
        override fun onFinish() {
            tv_get_code.text = getString(R.string.重新获取)
            tv_get_code.isEnabled = true
        }
 
        override fun onTick(millisUntilFinished: Long) {
            tv_get_code.text = getString(R.string.sms_code_countdown,millisUntilFinished / 1000)
        }
    }
 
    override fun initClick() {
        tv_get_code.onClick {
            sendSms()
        }
        tv_action.setOnClickListener {
            val code = et_code.text.toString()
            if (code.length == 4){
                HttpManager.bindingEmail(mail,code,if (isRegister) 1 else 2).request(this){_,_->
                    SPUtils.instance().put(Const.User.EMAIL,mail).apply()
                    setResult(Activity.RESULT_OK)
                    finish()
                    startActivity<BindSuccessActivity>()
                }
            }else
                toast(getString(R.string.验证码输入有误))
        }
    }
 
    override fun initView() {
        title = getString(R.string.邮箱验证)
        tv_1.text = getString(R.string.验证码已发送至您的邮箱,mail.hideMail())
        tv_get_code.postDelayed({
            tv_get_code.callOnClick()
        },500)
    }
 
    private fun sendSms() {
        tv_get_code.isEnabled = false
        HttpManager.sedEmail(mail).request(this,success = { msg, _ ->
            myToast(getString(R.string.发送成功))
            countDownTimer.start()
        }){_,_->
            tv_get_code.isEnabled = true
        }
    }
}