package com.example.modifier.ui import android.os.Bundle import androidx.activity.enableEdgeToEdge import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import androidx.databinding.DataBindingUtil import com.example.modifier.Global import com.example.modifier.R import com.example.modifier.databinding.ActivityLoginBinding import com.example.modifier.model.ServerConfig import dagger.hilt.android.AndroidEntryPoint import org.apache.commons.lang3.StringUtils @AndroidEntryPoint class LoginActivity : AppCompatActivity() { private val loginViewModel: LoginViewModel by viewModels() private lateinit var binding: ActivityLoginBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() binding = DataBindingUtil.setContentView(this, R.layout.activity_login) binding.loginViewModel = loginViewModel binding.lifecycleOwner = this binding.etServer.setSimpleItems(Global.servers.toTypedArray()) binding.btnLogin.setOnClickListener { v -> loginViewModel.save() val server = binding.etDeviceLabel.text?.toString() val deviceLabel = binding.etDeviceLabel.text?.toString() val username = binding.etUsername.text?.toString() val password = binding.etPassword.text?.toString() if (StringUtils.isBlank(server)) { binding.tlServer.error = "Server is required" } if (StringUtils.isBlank(deviceLabel)) { binding.tlName.error = "Device label is required" } if (StringUtils.isBlank(username)) { binding.tlUsername.error = "Username is required" } if (StringUtils.isBlank(password)) { binding.tlPassword.error = "Password is required" } if (StringUtils.isNotBlank(server) && StringUtils.isNotBlank(deviceLabel) && StringUtils.isNotBlank(username) && StringUtils.isNotBlank(password) ) { Global.serverUrl = server Global.name = deviceLabel Global.load() } } loginViewModel.serverConfig.postValue(ServerConfig()) } }