package com.igo.user.ui.login
|
|
import MainActivityViewModel
|
import android.os.CountDownTimer
|
import android.widget.EditText
|
import android.widget.TextView
|
import androidx.activity.viewModels
|
import androidx.core.os.bundleOf
|
import androidx.lifecycle.lifecycleScope
|
import cn.sinata.xldutils.utils.LengthFilter
|
import cn.sinata.xldutils.utils.isValidPhone
|
import cn.sinata.xldutils.utils.myToast
|
import com.google.recaptcha.sample.RecaptchaVisual
|
import com.google.recaptcha.sample.RecaptchaVisualException
|
import com.igo.user.R
|
import com.igo.user.dialog.ImageCodeDialog
|
import com.igo.user.network.HttpManager
|
import com.igo.user.network.request
|
import com.igo.user.ui.TransparentStatusBarActivity
|
import com.igo.user.ui.login.LoginActivity.Companion.BASE_URL
|
import com.igo.user.ui.login.LoginActivity.Companion.WEB_SITE_KEY
|
import com.igo.user.utils.DisableSpaceInputFilter
|
import kotlinx.coroutines.launch
|
import org.jetbrains.anko.find
|
|
class ForgetActivity:TransparentStatusBarActivity() {
|
override fun setContentView() = R.layout.activity_forget
|
|
private val tv_code by lazy { find<TextView>(R.id.tv_code) }
|
private val tv_action by lazy { find<TextView>(R.id.tv_action) }
|
private val et_phone by lazy { find<EditText>(R.id.et_phone) }
|
private val et_code by lazy { find<EditText>(R.id.et_code) }
|
private val et_pwd by lazy { find<EditText>(R.id.et_pwd) }
|
private val viewModel: MainActivityViewModel by viewModels()
|
private lateinit var recaptcha: RecaptchaVisual
|
private val timer by lazy {
|
object : CountDownTimer(60000, 1000) {
|
override fun onFinish() {
|
tv_code.text = getString(R.string.获取验证码)
|
tv_code.isEnabled = true
|
}
|
|
override fun onTick(millisUntilFinished: Long) {
|
tv_code.text = getString(R.string.sms_code_countdown,millisUntilFinished / 1000)
|
}
|
}
|
}
|
|
override fun initClick() {
|
tv_code.setOnClickListener {
|
val phone = et_phone.text.toString()
|
if (!phone.isValidPhone()) {
|
myToast(getString(R.string.请填写手机号))
|
return@setOnClickListener
|
}
|
|
lifecycleScope.launch {
|
try {
|
val token = recaptcha.runCaptcha().await()
|
viewModel.onLoginButtonClicked(token)
|
|
HttpManager.sendSms(phone, "", 4,token).request(
|
this@ForgetActivity,
|
success = { _, _ ->
|
val start = timer.start()
|
myToast(getString(R.string.发送成功))
|
},
|
error = { _, _ ->
|
tv_code.isEnabled = true
|
})
|
} catch (error: RecaptchaVisualException) {
|
viewModel.onTokenError(error)
|
}
|
}
|
|
|
/* val imageCodeDialog = ImageCodeDialog()
|
imageCodeDialog.arguments = bundleOf("phone" to phone)
|
|
imageCodeDialog.setCallback(object : ImageCodeDialog.Callback{
|
override fun onOk(code: String) {
|
tv_code.isEnabled = false
|
HttpManager.sendSms(phone,code,4).request(this@ForgetActivity,success = { _, _ ->
|
timer.start()
|
myToast(getString(R.string.发送成功))
|
},error = {_,_->
|
tv_code.isEnabled = true
|
})
|
}
|
})
|
imageCodeDialog.show(supportFragmentManager,"code")*/
|
}
|
|
tv_action.setOnClickListener {
|
val phone = et_phone.text.toString()
|
if (!phone.isValidPhone()) {
|
myToast(getString(R.string.请填写正确手机号))
|
return@setOnClickListener
|
}
|
val code = et_code.text.toString()
|
if (code.isEmpty()) {
|
myToast(getString(R.string.请输入验证码))
|
return@setOnClickListener
|
}
|
if (code.length<4) {
|
myToast(getString(R.string.验证码输入有误))
|
return@setOnClickListener
|
}
|
val pwd = et_pwd.text.toString()
|
if (pwd.length<6) {
|
myToast(getString(R.string.请输入6到18位密码))
|
return@setOnClickListener
|
}
|
showDialog()
|
HttpManager.forgetPassword(code,pwd,phone).request(this){_,_->
|
myToast(getString(R.string.密码已重置))
|
finish()
|
}
|
}
|
}
|
|
override fun initView() {
|
title = getString(R.string.忘记密码)
|
et_pwd.filters = arrayOf(DisableSpaceInputFilter(),LengthFilter(18))
|
recaptcha = RecaptchaVisual(supportFragmentManager, WEB_SITE_KEY, BASE_URL)
|
}
|
}
|