| | |
| | | import com.example.firstapp.databinding.ActivityPhoneLoginBinding |
| | | import com.example.firstapp.ui.login.LoginViewModel |
| | | import com.example.firstapp.utils.Log |
| | | import com.example.firstapp.utils.PreferencesManager |
| | | |
| | | class PhoneLoginActivity : AppCompatActivity() { |
| | | private lateinit var binding: ActivityPhoneLoginBinding |
| | |
| | | |
| | | private fun setupViews() { |
| | | binding.apply { |
| | | // 设置上次登录的手机号 |
| | | etPhone.setText(PreferencesManager.getLastLoginPhone()) |
| | | |
| | | btnBack.setOnClickListener { |
| | | startActivity(Intent(this@PhoneLoginActivity, LoginActivity::class.java)) |
| | | finish() |
| | |
| | | if (phone.length == 11) { |
| | | viewModel.sendVerificationCode(phone) |
| | | startCountDown() |
| | | // 17625318565 111111 |
| | | } else { |
| | | Toast.makeText(this@PhoneLoginActivity, |
| | | "请输入正确的手机号", Toast.LENGTH_SHORT).show() |
| | |
| | | val phone = etPhone.text.toString() |
| | | val code = etCode.text.toString() |
| | | if (phone.length == 11 && code.length == 6) { |
| | | // 保存登录的手机号 |
| | | PreferencesManager.saveLastLoginPhone(phone) |
| | | viewModel.login(phone, code) |
| | | } else { |
| | | Toast.makeText(this@PhoneLoginActivity, |
| | |
| | | } |
| | | |
| | | private fun observeViewModel() { |
| | | // 观察登录状态 |
| | | viewModel.loginState.observe(this) { isLoggedIn -> |
| | | if (isLoggedIn) { |
| | | startActivity(Intent(this, MainActivity::class.java)) |
| | | finishAffinity() // 结束所有之前的Activity |
| | | } |
| | | } |
| | | // 观察消息提示 |
| | | viewModel.loginMessage.observe(this) { message -> |
| | | Toast.makeText(this, message, Toast.LENGTH_SHORT).show() |
| | | if (message == "验证码已发送") { |
| | | startCountDown() |
| | | } |
| | | } |
| | | |
| | | // 观察加载状态 |
| | | viewModel.isLoading.observe(this) { isLoading -> |
| | | binding.btnLogin.isEnabled = !isLoading |
| | | if (isLoading) { |
| | | binding.btnLogin.text = "登录中..." |
| | | } else { |
| | | binding.btnLogin.text = "登录" |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | private fun startCountDown() { |