package com.dollearn.student.ui.login
|
|
import android.annotation.SuppressLint
|
import android.os.CountDownTimer
|
import androidx.core.os.bundleOf
|
import cn.sinata.xldutils.gone
|
import cn.sinata.xldutils.utils.*
|
import cn.sinata.xldutils.visible
|
import com.dollearn.student.MainActivity
|
import com.dollearn.student.R
|
import com.dollearn.student.dialog.LoginRuleDialog
|
import com.dollearn.student.dialog.TipDialog
|
import com.dollearn.student.network.HttpManager
|
import com.dollearn.student.network.request
|
import com.dollearn.student.ui.H5Activity
|
import com.dollearn.student.ui.TransparentStatusBarActivity
|
import com.dollearn.student.utils.Const
|
import com.dollearn.student.utils.extention.clickDelay
|
import kotlinx.android.synthetic.main.activity_field.*
|
import kotlinx.android.synthetic.main.activity_login.*
|
import org.jetbrains.anko.sdk27.coroutines.onClick
|
import org.jetbrains.anko.startActivity
|
import org.jetbrains.anko.startActivityForResult
|
|
class LoginActivity : TransparentStatusBarActivity(){
|
override fun setContentView() = R.layout.activity_login
|
|
private lateinit var timer: CountDownTimer
|
|
@SuppressLint("CheckResult")
|
override fun initClick() {
|
|
tv_code.onClick {
|
val phone = et_phone.text.toString()
|
if (!phone.isValidPhone())
|
myToast("请输入正确的手机号")
|
else {
|
tv_code.isEnabled = false
|
HttpManager.getCode(phone).request(this@LoginActivity, success = { _, _ ->
|
timer.start()
|
}) { _, _ ->
|
tv_code.isEnabled = true
|
}
|
}
|
}
|
|
tv_login_code.onClick {
|
val phone = et_phone.text.toString()
|
if (!phone.isValidPhone()) {
|
myToast("请输入正确的手机号")
|
return@onClick
|
}
|
loginByCode()
|
}
|
|
tv_privacy_rule.clickDelay {
|
showDialog()
|
HttpManager.getH5(LoginRuleDialog.TYPE_PRIVACY).request(this@LoginActivity){ _, data->
|
data?.let {
|
startActivityForResult<H5Activity>(1,"title" to "隐私协议","url" to it)
|
}
|
}
|
}
|
tv_user_rule.clickDelay {
|
showDialog()
|
HttpManager.getH5(LoginRuleDialog.TYPE_USER).request(this@LoginActivity){ _, data->
|
data?.let {
|
startActivityForResult<H5Activity>(2,"title" to "用户协议","url" to it)
|
}
|
}
|
}
|
}
|
|
override fun initView() {
|
// //todo test
|
// et_phone.setText("18111223301")
|
// et_code.setText("123456")
|
// cb_rule.isChecked = true
|
|
bg_title.gone()
|
titleBar.gone()
|
timer = object : CountDownTimer(60000, 1000) {
|
override fun onFinish() {
|
tv_code.isEnabled = true
|
tv_code.text = "获取验证码"
|
}
|
|
override fun onTick(millisUntilFinished: Long) {
|
tv_code.text = "${millisUntilFinished / 1000}s"
|
}
|
}
|
}
|
|
private fun loginByCode() {
|
if (!cb_rule.isChecked){
|
myToast("请阅读并同意隐私协议和用户协议")
|
return
|
}
|
val code = et_code.text.toString()
|
if (code.length < 6) {
|
myToast("请输入6位验证码")
|
return
|
}
|
tv_login_code.isEnabled = false
|
HttpManager.captchaLogin(code, et_phone.text.toString()).request(this, false, { _, data ->
|
data?.let {
|
loginSuccess(it.token.access_token)
|
}
|
},{ _, msg ->
|
tv_login_code.isEnabled = true
|
if (msg.contains("冻结")){
|
val tipDialog = TipDialog()
|
tipDialog.arguments = bundleOf("msg" to "登录失败,您的账号已被冻结!","isAlert" to true)
|
tipDialog.show(supportFragmentManager,"tip")
|
}else
|
myToast(msg)
|
})
|
}
|
|
private fun loginSuccess(token: String) {
|
SPUtils.instance().put(Const.User.TOKEN, token).apply()
|
startActivity<MainActivity>()
|
finish()
|
}
|
|
|
override fun onDestroy() {
|
super.onDestroy()
|
timer.cancel()
|
}
|
}
|