package com.igo.user.ui.login
|
|
import MainActivityViewModel
|
import android.app.Activity
|
import android.content.Intent
|
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.SPUtils
|
import cn.sinata.xldutils.utils.isValidPhone
|
import cn.sinata.xldutils.utils.myToast
|
import cn.sinata.xldutils.utils.optInt
|
import cn.sinata.xldutils.utils.optString
|
import cn.sinata.xldutils.utils.showAllowingStateLoss
|
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.dialog.SingleWheelDialog
|
import com.igo.user.interfaces.StringCallback
|
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.Const
|
import com.twitter.sdk.android.core.TwitterAuthConfig
|
import kotlinx.coroutines.launch
|
import org.jetbrains.anko.find
|
import org.jetbrains.anko.startActivityForResult
|
|
class BindPhoneActivity : TransparentStatusBarActivity() {
|
override fun setContentView() = R.layout.activity_bind_phone
|
|
private val areaCode by lazy { find<TextView>(R.id.areaCode) }
|
private val tv_code by lazy { find<TextView>(R.id.tv_code) }
|
private val tv_operator by lazy { find<TextView>(R.id.tv_operator) }
|
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 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() {
|
areaCode.setOnClickListener {
|
startActivityForResult<AreaCodeActivity>(10086)
|
}
|
tv_operator.setOnClickListener {
|
val singleWheelDialog = SingleWheelDialog()
|
singleWheelDialog.arguments = bundleOf("title" to getString(R.string.运营商),"data" to arrayListOf("MTN","TIGO","TELECEL","AIRTEL"))
|
singleWheelDialog.setCallback(object : StringCallback {
|
override fun onRlt(rlt: String) {
|
tv_operator.text = rlt
|
}
|
})
|
singleWheelDialog.showAllowingStateLoss(supportFragmentManager,"op")
|
}
|
|
tv_code.setOnClickListener {
|
// val operator = tv_operator.text.toString()
|
// if (operator.isEmpty()){
|
// myToast(getString(R.string.请选择运营商))
|
// return@setOnClickListener
|
// }
|
var phone = et_phone.text.toString()
|
if (!phone.isValidPhone()) {
|
myToast(getString(R.string.请输入正确的手机号码))
|
return@setOnClickListener
|
}
|
phone = areaCode.text.toString().replace("+","") + phone
|
lifecycleScope.launch {
|
try {
|
val token = ""
|
viewModel.onLoginButtonClicked(token)
|
|
HttpManager.sendSms(phone, "", 1,token).request(
|
this@BindPhoneActivity,
|
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,1).request(this@BindPhoneActivity,success = { _, _ ->
|
timer.start()
|
myToast(getString(R.string.发送成功))
|
},error = {_,_->
|
tv_code.isEnabled = true
|
})
|
}
|
})
|
imageCodeDialog.show(supportFragmentManager,"code")*/
|
}
|
|
tv_action.setOnClickListener {
|
val operator = tv_operator.text.toString()
|
if (operator.isEmpty()){
|
myToast(getString(R.string.请选择运营商))
|
return@setOnClickListener
|
}
|
var phone = et_phone.text.toString()
|
if (!phone.isValidPhone()) {
|
myToast(getString(R.string.请输入正确的手机号码))
|
return@setOnClickListener
|
}
|
phone = areaCode.text.toString().replace("+","") + phone
|
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
|
}
|
HttpManager.bindingPhone(operator,code, phone).request(this){_,data->
|
data?.let {
|
myToast(getString(R.string.bind_success))
|
SPUtils.instance().put(Const.User.NO_PHONE, false).apply()
|
if (it.optString("appid").isNotEmpty()){
|
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()
|
}
|
setResult(Activity.RESULT_OK)
|
finish()
|
}
|
}
|
}
|
}
|
|
override fun initView() {
|
title = getString(R.string.完善手机号)
|
|
// recaptcha = RecaptchaVisual(supportFragmentManager, WEB_SITE_KEY, BASE_URL)
|
}
|
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
super.onActivityResult(requestCode, resultCode, data)
|
if (resultCode == Activity.RESULT_OK && requestCode == 10086) {
|
data?.getStringExtra("code")?.let {
|
areaCode.text = it
|
}
|
}
|
}
|
|
}
|