package com.sinata.xqmuse.ui.login
|
|
import android.app.Activity
|
import android.content.Intent
|
import android.os.CountDownTimer
|
import cn.sinata.xldutils.gone
|
import cn.sinata.xldutils.utils.*
|
import com.sinata.xqmuse.R
|
import com.sinata.xqmuse.dialog.LoginRuleDialog
|
import com.sinata.xqmuse.network.HttpManager
|
import com.sinata.xqmuse.network.request
|
import com.sinata.xqmuse.ui.H5Activity
|
import com.sinata.xqmuse.ui.TransparentStatusBarActivity
|
import com.sinata.xqmuse.utils.Const
|
import com.sinata.xqmuse.utils.extention.clickDelay
|
import kotlinx.android.synthetic.main.activity_register.*
|
import org.jetbrains.anko.sdk27.coroutines.onClick
|
import org.jetbrains.anko.startActivityForResult
|
import org.jetbrains.anko.toast
|
|
class RegisterActivity : TransparentStatusBarActivity() {
|
override fun setContentView() = R.layout.activity_register
|
|
private lateinit var timer:CountDownTimer
|
private val type by lazy { intent.getIntExtra("type", TYPE_REGISTER) }
|
|
private val token by lazy { intent.getStringExtra("token")?:"" } //绑手机号的参数
|
|
private val phone by lazy { intent.getStringExtra("phone") } //初次登录 强制修改密码
|
|
override fun initClick() {
|
tv_action.onClick {
|
if (!cb_rule.isChecked) {
|
myToast("请阅读并同意用户协议和隐私协议")
|
return@onClick
|
}
|
val phone = et_phone.text.toString()
|
if (!phone.isValidPhone()){
|
myToast("请输入正确的手机号")
|
return@onClick
|
}
|
val code = et_code.text.toString()
|
if (code.length!=6){
|
myToast("请输入6位验证码")
|
return@onClick
|
}
|
val pwd = et_pwd.text.toString()
|
if (!pwd.isValidPwd()){
|
toast("密码至少8个字符,不能全是字母或数字")
|
return@onClick
|
}
|
val pwd2 = et_pwd_2.text.toString()
|
if (pwd2!=pwd){
|
myToast("两次密码不一致")
|
return@onClick
|
}
|
|
next(phone, pwd, code)
|
}
|
|
|
tv_code.onClick {
|
val phone = et_phone.text.toString()
|
if (!phone.isValidPhone())
|
myToast("请输入正确的手机号")
|
else{
|
tv_code.isEnabled = false
|
HttpManager.getCode(phone,if (type == TYPE_BIND) 2 else type).request(this@RegisterActivity,success = {_,_->
|
timer.start()
|
}){_,_->
|
tv_code.isEnabled = true
|
}
|
}
|
}
|
|
tv_privacy_rule.clickDelay {
|
HttpManager.getH5(LoginRuleDialog.TYPE_PRIVACY).request(this){ _, data->
|
data?.let {
|
startActivityForResult<H5Activity>(1,"title" to "隐私协议","url" to it.content)
|
}
|
}
|
}
|
|
tv_user_rule.clickDelay {
|
HttpManager.getH5(LoginRuleDialog.TYPE_USER).request(this){ _, data->
|
data?.let {
|
startActivityForResult<H5Activity>(2,"title" to "用户协议","url" to it.content)
|
}
|
}
|
}
|
}
|
|
|
private fun next(phone:String,pwd:String,code:String){
|
tv_action.isEnabled = false
|
if (type == TYPE_BIND){
|
SPUtils.instance().put(Const.User.TOKEN,token).apply()
|
HttpManager.bindPhone(phone, code,null)
|
.request(this@RegisterActivity,success = {_,data->
|
val intent = Intent()
|
intent.putExtra("token",data?:"")
|
setResult(Activity.RESULT_OK,intent)
|
myToast("绑定成功")
|
finish()
|
}){_,_->
|
SPUtils.instance().put(Const.User.TOKEN,"").apply()
|
tv_action.isEnabled = true
|
}
|
}else{
|
HttpManager.register(type,phone, pwd.md5(), code)
|
.request(this@RegisterActivity,success = {_,data->
|
val intent = Intent()
|
intent.putExtra("token",data?.accessToken?:"")
|
setResult(RESULT_OK, intent)
|
myToast(if (type == TYPE_REGISTER)"注册成功" else "密码修改成功")
|
finish()
|
}){_,_->
|
tv_action.isEnabled = true
|
}
|
}
|
}
|
|
override fun initView() {
|
et_phone.setText(phone)
|
title = when(type){
|
TYPE_FORGET->"忘记密码"
|
TYPE_BIND->{
|
et_pwd.gone()
|
tv_action.text = "确认绑定"
|
"绑定手机"
|
}
|
else -> "注册账户"
|
}
|
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后可重新获取"
|
}
|
}
|
}
|
|
override fun onDestroy() {
|
super.onDestroy()
|
timer.cancel()
|
}
|
|
companion object{
|
const val TYPE_REGISTER = 1
|
const val TYPE_FORGET = 4
|
const val TYPE_BIND = 5 //微信首次登录绑定手机号
|
}
|
}
|