ActivityRegistration.kt 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. package com.hdl.xl.ui.activitys
  2. import android.annotation.SuppressLint
  3. import android.graphics.Color
  4. import android.graphics.LinearGradient
  5. import android.graphics.Shader
  6. import android.os.Bundle
  7. import android.os.Handler
  8. import android.util.Log
  9. import android.view.View
  10. import android.widget.Toast
  11. import androidx.databinding.DataBindingUtil
  12. import com.laike.basekt.BaseActivity
  13. import com.laike.basekt.coremodel.datemodel.client.HttpRetrofitRequest
  14. import com.laike.basekt.coremodel.datemodel.client.RxSchedulers
  15. import com.laike.basekt.utils.StatusBarCommon
  16. import com.hdl.xl.R
  17. import com.hdl.xl.databinding.ActivityRegistrationBinding
  18. import com.hdl.xl.service.HttpApi_xie
  19. /**
  20. * @Description:注册
  21. * @Author: xieshenghua
  22. * @Date: 2020/7/17 9:52
  23. */
  24. class ActivityRegistration : BaseActivity(), View.OnClickListener {
  25. var mBinding: ActivityRegistrationBinding? = null
  26. var phone: String? = ""
  27. var code: String? = ""
  28. var pwd: String? = ""
  29. var pwdAgain: String? = ""
  30. var secondPwd: String? = ""
  31. var secondPwdAgain: String? = ""
  32. var yao_code: String? = ""
  33. val handler = Handler()
  34. var mCountNum = 60
  35. override fun onCreate(savedInstanceState: Bundle?) {
  36. super.onCreate(savedInstanceState)
  37. mBinding = DataBindingUtil.setContentView(mActivity, R.layout.activity_registration)
  38. mBinding?.run {
  39. clickListener = this@ActivityRegistration
  40. includeTitle.layoutTitle.setPadding(
  41. 0,
  42. StatusBarCommon.findStatusBarHeight(mActivity),
  43. 0,
  44. 0
  45. )
  46. setGradientColor()
  47. }
  48. }
  49. private fun setGradientColor() {
  50. mBinding?.run {
  51. val colors = intArrayOf(Color.parseColor("#FFDA4E"), Color.parseColor("#59FFF1"), Color.parseColor("#2BA3FF"))
  52. val position = floatArrayOf(0f, 1.0f,2.0f)
  53. val mLinearGradient = LinearGradient(
  54. 0f,
  55. 0f,
  56. getCaptcha?.text?.length?.let { getCaptcha?.paint?.textSize?.times(it) }!!,
  57. 0f,
  58. colors,
  59. position,
  60. Shader.TileMode.CLAMP
  61. )
  62. getCaptcha?.paint?.shader = mLinearGradient
  63. getCaptcha?.invalidate()
  64. val mLinearGradient1 = LinearGradient(
  65. 0f,
  66. 0f,
  67. yonghuXieyi?.text?.length?.let { yonghuXieyi?.paint?.textSize?.times(it) }!!,
  68. 0f,
  69. colors,
  70. position,
  71. Shader.TileMode.CLAMP
  72. )
  73. yonghuXieyi?.paint?.shader = mLinearGradient1
  74. yonghuXieyi?.invalidate()
  75. val mLinearGradient2 = LinearGradient(
  76. 0f,
  77. 0f,
  78. yinsiXieyi?.text?.length?.let { yinsiXieyi?.paint?.textSize?.times(it) }!!,
  79. 0f,
  80. colors,
  81. position,
  82. Shader.TileMode.CLAMP
  83. )
  84. yinsiXieyi?.paint?.shader = mLinearGradient2
  85. yinsiXieyi?.invalidate()
  86. }
  87. }
  88. override fun onClick(v: View?) {
  89. phone = mBinding?.inputPhone?.text.toString()
  90. code = mBinding?.inputCode?.text.toString()
  91. pwd = mBinding?.inputPwd?.text.toString()
  92. pwdAgain = mBinding?.inputPwdAgain?.text.toString()
  93. secondPwd = mBinding?.inputSecondPwd?.text.toString()
  94. secondPwdAgain = mBinding?.inputSecondPwdAgain?.text.toString()
  95. yao_code = mBinding?.inputInvitationCode?.text.toString()
  96. when (v?.id) {
  97. R.id.go_back -> {
  98. finish()
  99. }
  100. R.id.get_captcha -> {
  101. if (phone?.length != 11) {
  102. Toast.makeText(mContext, "请输入11位手机号", Toast.LENGTH_SHORT).show()
  103. } else {
  104. codeRegistered(phone?:"")
  105. }
  106. }
  107. R.id.button_registered -> {
  108. if (phone?.length != 11) {
  109. Toast.makeText(mContext, "请输入11位手机号", Toast.LENGTH_SHORT).show()
  110. } else if (code == null || code?.length == 0) {
  111. Toast.makeText(mContext, "请输入短信验证码", Toast.LENGTH_SHORT).show()
  112. } else if (pwd == null || pwd?.length == 0) {
  113. Toast.makeText(mContext, "请输入密码", Toast.LENGTH_SHORT).show()
  114. }else if (pwdAgain == null || pwdAgain?.length == 0) {
  115. Toast.makeText(mContext, "请再次输入密码", Toast.LENGTH_SHORT).show()
  116. }
  117. else if (pwd!=pwdAgain) {
  118. Toast.makeText(mContext, "两次输入的密码不一样", Toast.LENGTH_SHORT).show()
  119. }
  120. else if (secondPwd.isNullOrEmpty()) {
  121. Toast.makeText(mContext, "请输入二级密码", Toast.LENGTH_SHORT).show()
  122. }else if (secondPwdAgain.isNullOrEmpty()) {
  123. Toast.makeText(mContext, "请再次输入二级密码", Toast.LENGTH_SHORT).show()
  124. }
  125. else if (secondPwd!=secondPwdAgain) {
  126. Toast.makeText(mContext, "两次输入二级的密码不一样", Toast.LENGTH_SHORT).show()
  127. }
  128. else if (yao_code == null || yao_code?.length == 0) {
  129. Toast.makeText(mContext, "请输入注册邀请码", Toast.LENGTH_SHORT).show()
  130. }else {
  131. registered(phone?:"", pwd?:"", yao_code?:"",code?:"")
  132. }
  133. }
  134. }
  135. }
  136. //--通过验证码注册
  137. @SuppressLint("CheckResult")
  138. fun codeRegistered(phone: String) {
  139. HttpRetrofitRequest.retrofit(HttpApi_xie::class.java)
  140. .codeRegistered(phone)
  141. .compose(RxSchedulers.applySchedulers())
  142. .subscribe({
  143. Toast.makeText(application, it.msg, Toast.LENGTH_SHORT).show()
  144. if (it.code==200){
  145. handler.postDelayed(countDown, 0)
  146. }
  147. }, { error ->
  148. Log.d("codeRegistered", "验证码注册:${error.message}")
  149. Toast.makeText(application, "获取失败!", Toast.LENGTH_SHORT).show()
  150. })
  151. }
  152. //--注册
  153. @SuppressLint("CheckResult")
  154. fun registered(
  155. phone: String, password: String, yao:String,code: String
  156. ) {
  157. HttpRetrofitRequest.retrofit(HttpApi_xie::class.java)
  158. .registered(phone, password,password, yao,code)
  159. .compose(RxSchedulers.applySchedulers())
  160. .subscribe({
  161. Toast.makeText(application, it.msg, Toast.LENGTH_SHORT).show()
  162. if (it.code == 0) {
  163. finish()
  164. }
  165. }, { error ->
  166. Log.d("registered" ,"注册:${error.message}")
  167. Toast.makeText(application, "注册失败!", Toast.LENGTH_SHORT).show()
  168. })
  169. }
  170. private val countDown = object : Runnable {
  171. override fun run() {
  172. mBinding?.getCaptcha?.text = "" + mCountNum + "S"
  173. mBinding?.getCaptcha?.isEnabled = false
  174. if (mCountNum > 0) {
  175. handler.postDelayed(this, 1000)
  176. } else {
  177. mBinding?.getCaptcha?.text = "获取验证码"
  178. mBinding?.getCaptcha?.isEnabled = true
  179. mCountNum = 60
  180. }
  181. mCountNum--
  182. }
  183. }
  184. }