Files
hackathon-gituber-4fbb7edea…/app/src/main/java/com/example/basurapp/LoginActivity.kt
JaredAyala ac0a312d58 Ya casiii
2026-05-23 00:05:10 -06:00

88 lines
2.9 KiB
Kotlin

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()
}
}