package com.example.basurapp import android.content.Intent import android.os.Bundle import android.util.Patterns import android.view.View import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import com.example.basurapp.databinding.ActivityLoginBinding import com.google.firebase.auth.FirebaseAuth import com.google.firebase.firestore.FirebaseFirestore class LoginActivity : AppCompatActivity() { private lateinit var binding: ActivityLoginBinding private val auth: FirebaseAuth by lazy { FirebaseAuth.getInstance() } private val db: FirebaseFirestore by lazy { FirebaseFirestore.getInstance() } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityLoginBinding.inflate(layoutInflater) setContentView(binding.root) // Padding para system bars ViewCompat.setOnApplyWindowInsetsListener(binding.main) { v, insets -> val bars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) v.setPadding(bars.left, bars.top, bars.right, bars.bottom) insets } // Si ya hay sesión activa, ir directo al Main // if (auth.currentUser != null) { // goToMain() // return // } binding.tvCreateAccount.setOnClickListener { startActivity(Intent(this, RegisterActivity::class.java)) } binding.btnEnter.setOnClickListener { attemptLogin() } } private fun attemptLogin() { val email = binding.etEmail.text?.toString()?.trim().orEmpty() val password = binding.etPassword.text?.toString().orEmpty() // Validaciones if (email.isEmpty() || password.isEmpty()) { toast(getString(R.string.error_empty_fields)) return } if (!Patterns.EMAIL_ADDRESS.matcher(email).matches()) { binding.tilEmail.error = getString(R.string.error_invalid_email) return } binding.tilEmail.error = null setLoading(true) auth.signInWithEmailAndPassword(email, password) .addOnCompleteListener { task -> if (task.isSuccessful) { goToMain() } else { setLoading(false) toast(task.exception?.localizedMessage ?: "Error al iniciar sesión") } } } private fun goToMain() { startActivity(Intent(this, MainActivity::class.java)) finish() } private fun setLoading(loading: Boolean) { binding.progressBar.visibility = if (loading) View.VISIBLE else View.GONE binding.btnEnter.isEnabled = !loading } private fun toast(msg: String) { Toast.makeText(this, msg, Toast.LENGTH_SHORT).show() } }