LoginActivity.kt 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package com.example.modifier.ui
  2. import android.os.Bundle
  3. import androidx.activity.enableEdgeToEdge
  4. import androidx.activity.viewModels
  5. import androidx.appcompat.app.AppCompatActivity
  6. import androidx.core.view.ViewCompat
  7. import androidx.core.view.WindowInsetsCompat
  8. import androidx.databinding.DataBindingUtil
  9. import com.example.modifier.Global
  10. import com.example.modifier.R
  11. import com.example.modifier.databinding.ActivityLoginBinding
  12. import com.example.modifier.model.ServerConfig
  13. import dagger.hilt.android.AndroidEntryPoint
  14. import org.apache.commons.lang3.StringUtils
  15. @AndroidEntryPoint
  16. class LoginActivity : AppCompatActivity() {
  17. private val loginViewModel: LoginViewModel by viewModels()
  18. private lateinit var binding: ActivityLoginBinding
  19. override fun onCreate(savedInstanceState: Bundle?) {
  20. super.onCreate(savedInstanceState)
  21. enableEdgeToEdge()
  22. binding = DataBindingUtil.setContentView(this, R.layout.activity_login)
  23. binding.loginViewModel = loginViewModel
  24. binding.lifecycleOwner = this
  25. binding.etServer.setSimpleItems(Global.servers.toTypedArray())
  26. binding.btnLogin.setOnClickListener { v ->
  27. loginViewModel.save()
  28. val server = binding.etDeviceLabel.text?.toString()
  29. val deviceLabel = binding.etDeviceLabel.text?.toString()
  30. val username = binding.etUsername.text?.toString()
  31. val password = binding.etPassword.text?.toString()
  32. if (StringUtils.isBlank(server)) {
  33. binding.tlServer.error = "Server is required"
  34. }
  35. if (StringUtils.isBlank(deviceLabel)) {
  36. binding.tlName.error = "Device label is required"
  37. }
  38. if (StringUtils.isBlank(username)) {
  39. binding.tlUsername.error = "Username is required"
  40. }
  41. if (StringUtils.isBlank(password)) {
  42. binding.tlPassword.error = "Password is required"
  43. }
  44. if (StringUtils.isNotBlank(server)
  45. && StringUtils.isNotBlank(deviceLabel)
  46. && StringUtils.isNotBlank(username)
  47. && StringUtils.isNotBlank(password)
  48. ) {
  49. Global.serverUrl = server
  50. Global.name = deviceLabel
  51. Global.load()
  52. }
  53. }
  54. loginViewModel.serverConfig.postValue(ServerConfig())
  55. }
  56. }