package com.fuban.user.ui.login
|
|
import android.app.Activity
|
import android.content.Intent
|
import android.os.CountDownTimer
|
import android.util.Log
|
import com.fuban.user.ui.TransparentStatusBarActivity
|
import cn.sinata.xldutils.gone
|
import cn.sinata.xldutils.utils.*
|
import cn.sinata.xldutils.visible
|
import com.flyco.tablayout.listener.CustomTabEntity
|
import com.flyco.tablayout.listener.OnTabSelectListener
|
import com.fuban.user.FBApplication
|
import com.fuban.user.R
|
import com.fuban.user.network.HttpManager
|
import com.fuban.user.network.request
|
import com.fuban.user.ui.H5Activity
|
import com.fuban.user.utils.Const
|
import com.umeng.socialize.UMAuthListener
|
import com.umeng.socialize.UMShareAPI
|
import com.umeng.socialize.UMShareConfig
|
import com.umeng.socialize.bean.SHARE_MEDIA
|
import kotlinx.android.synthetic.main.activity_login.*
|
import org.jetbrains.anko.startActivity
|
import org.jetbrains.anko.startActivityForResult
|
|
class LoginActivity : TransparentStatusBarActivity(), UMAuthListener {
|
override fun setContentView() = R.layout.activity_login
|
|
private val timer by lazy {
|
object : CountDownTimer(60000, 1000) {
|
override fun onFinish() {
|
tv_code.text = "获取验证码"
|
tv_code.isEnabled = true
|
}
|
|
override fun onTick(millisUntilFinished: Long) {
|
tv_code.text = "已发送${millisUntilFinished / 1000}s"
|
}
|
}
|
}
|
|
private var ip:String? = null //登录id
|
|
override fun initClick() {
|
tab_type.setOnTabSelectListener(object :OnTabSelectListener{
|
override fun onTabSelect(position: Int) {
|
if (position == 0){
|
tv_pwd.isChecked = true
|
tv_pwd.text = "验证码"
|
et_code.visible()
|
tv_code.visible()
|
et_pwd.gone()
|
tv_forget.gone()
|
}else{
|
tv_pwd.isChecked = false
|
tv_pwd.text = "密码"
|
et_pwd.visible()
|
et_code.gone()
|
tv_code.gone()
|
tv_forget.visible()
|
}
|
}
|
|
override fun onTabReselect(position: Int) {
|
}
|
})
|
|
tv_code.setOnClickListener {
|
val phone = et_phone.text.toString()
|
if (!phone.isValidPhone()) {
|
myToast("请输入正确的手机号码")
|
return@setOnClickListener
|
}
|
tv_code.isEnabled = false
|
HttpManager.sendSms(phone,2).request(this,success = { _, _ ->
|
timer.start()
|
myToast("发送成功")
|
},error = {_,_->
|
tv_code.isEnabled = true
|
})
|
}
|
|
tv_forget.setOnClickListener {
|
startActivity<ForgetActivity>()
|
}
|
|
tv_action.setOnClickListener {
|
if (!cb_rule.isChecked)
|
myToast("请阅读并同意《福伴出行用户服务协议》")
|
else{
|
val phone = et_phone.text.toString()
|
if (!phone.isValidPhone()) {
|
myToast("请输入正确的手机号码")
|
return@setOnClickListener
|
}
|
if (tab_type.currentTab == 0){
|
val code = et_code.text.toString()
|
if (code.isEmpty()){
|
myToast("请输入验证码")
|
return@setOnClickListener
|
}
|
if (code.length<4) {
|
myToast("请输入4位验证码")
|
return@setOnClickListener
|
}
|
showDialog("登录中...",false)
|
tv_action.isEnabled = false
|
HttpManager.codeLogin(phone,code,FBApplication.chooseCityCode, ip).request(this,success = { _, data->
|
data?.let {
|
SPUtils.instance().put(Const.User.APP_ID,it.optString("appid"))
|
.put(Const.User.TOKEN,it.optString("token"))
|
.put(Const.User.USER_ID,it.optInt("id"))
|
.apply()
|
finish()
|
}
|
},error = {_,_->
|
tv_action.isEnabled = true
|
dismissDialog()
|
})
|
}else{
|
val pwd = et_pwd.text.toString()
|
if (pwd.length<6) {
|
myToast("请输入6到18位密码")
|
return@setOnClickListener
|
}
|
showDialog("登录中...",false)
|
tv_action.isEnabled = false
|
HttpManager.pwdLogin(phone,pwd).request(this,success = {_,data->
|
data?.let {
|
SPUtils.instance().put(Const.User.APP_ID,it.optString("appid"))
|
.put(Const.User.TOKEN,it.optString("token"))
|
.put(Const.User.USER_ID,it.optInt("id"))
|
.apply()
|
finish()
|
}
|
},error = {_,_->
|
tv_action.isEnabled = true
|
dismissDialog()
|
})
|
}
|
}
|
}
|
|
val config = UMShareConfig()
|
config.isNeedAuthOnGetUserInfo(true)
|
UMShareAPI.get(this).setShareConfig(config)
|
tv_wx.setOnClickListener {
|
if (!cb_rule.isChecked)
|
myToast("请阅读并同意《福伴出行用户服务协议》")
|
else{
|
|
UMShareAPI.get(this).getPlatformInfo(this, SHARE_MEDIA.WEIXIN, this)
|
}
|
}
|
}
|
|
override fun initView() {
|
tab_type.setTabData(arrayListOf(object :CustomTabEntity{
|
override fun getTabUnselectedIcon() = 0
|
override fun getTabSelectedIcon() = 0
|
override fun getTabTitle() = "验证码登录"
|
},object :CustomTabEntity{
|
override fun getTabUnselectedIcon() = 0
|
override fun getTabSelectedIcon() = 0
|
override fun getTabTitle() = "密码登录"
|
}))
|
getRule()
|
}
|
|
private fun getRule(){
|
HttpManager.getH5(2).request(this){_,data->
|
data?.let {
|
tv_rule.setOnClickListener {_->
|
startActivity<H5Activity>("title" to "用户服务协议","url" to it.optString("content"))
|
}
|
}
|
}
|
}
|
|
override fun onStart(p0: SHARE_MEDIA?) {
|
Log.e("mmp","开始了")
|
}
|
|
override fun onComplete(p0: SHARE_MEDIA?, p1: Int, p2: MutableMap<String, String>?) {
|
showDialog()
|
HttpManager.wxLogin(p2?.get("openid"),FBApplication.chooseCityCode,p2?.get("unionid"),p2?.get("iconurl"),
|
p2?.get("name"),if (p2?.get("gender") == "男") 1 else 2).request(this){_,data->
|
data?.let {
|
SPUtils.instance().put(Const.User.APP_ID, it.optString("appid"))
|
.put(Const.User.TOKEN, it.optString("token"))
|
.put(Const.User.USER_ID, it.optInt("id")).apply()
|
if (it.optInt("phone") != 2){ //没有手机号
|
startActivityForResult<BindPhoneActivity>(1)
|
SPUtils.instance().put(Const.User.NO_PHONE, true).apply()
|
}else
|
finish()
|
}
|
}
|
}
|
|
override fun onCancel(p0: SHARE_MEDIA?, p1: Int) {
|
Log.e("mmp","取消了")
|
}
|
|
override fun onError(p0: SHARE_MEDIA?, p1: Int, p2: Throwable?) {
|
Log.e("mmp","失败了")
|
myToast("登录失败 原因:" + p2?.message)
|
}
|
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
super.onActivityResult(requestCode, resultCode, data)
|
if (resultCode == Activity.RESULT_OK){ //三方登录手机绑定成功
|
finish()
|
}
|
}
|
}
|