package com.example.firebaseloginkotlin
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Patterns
import android.widget.Toast
import com.example.firebaseloginkotlin.databinding.ActivitySignUpBinding
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.auth.ktx.auth
import com.google.firebase.ktx.Firebase
import java.util.regex.Pattern
class SignUpActivity : AppCompatActivity() {
private lateinit var auth: FirebaseAuth
private lateinit var binding: ActivitySignUpBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivitySignUpBinding.inflate(layoutInflater)
setContentView(binding.root)
auth = Firebase.auth
binding.signUpButton.setOnClickListener {
val mEmail = binding.emailEditText.text.toString()
val mPassword = binding.passwordEditText.text.toString()
val mRepeatPassword = binding.repeatPasswordEditText.text.toString()
val passwordRegex = Pattern.compile("^" +
"(?=.*[‐@#$%^&+=])" + // Al menos 1 carácter especial
".{6,}" + // Al menos 4 caracteres
"$")
if(mEmail.isEmpty() || !Patterns.EMAIL_ADDRESS.matcher(mEmail).matches()) {
Toast.makeText(this, "Ingrese un email valido.",
Toast.LENGTH_SHORT).show()
} else if (mPassword.isEmpty() || !passwordRegex.matcher(mPassword).matches()){
Toast.makeText(this, "La contraseña es debil.",
Toast.LENGTH_SHORT).show()
} else if (mPassword != mRepeatPassword){
Toast.makeText(this, "Confirma la contraseña.",
Toast.LENGTH_SHORT).show()
} else {
createAccount(mEmail, mPassword)
}
}
binding.backImageView.setOnClickListener {
val intent = Intent(this, SignInActivity::class.java)
this.startActivity(intent)
}
}
public override fun onStart() {
super.onStart()
val currentUser = auth.currentUser
if(currentUser != null){
if(currentUser.isEmailVerified){
val intent = Intent(this, MainActivity::class.java)
this.startActivity(intent)
} else {
val intent = Intent(this, CheckEmailActivity::class.java)
this.startActivity(intent)
}
}
}
private fun createAccount(email: String, password: String) {
auth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this) { task ‐>
if (task.isSuccessful) {
val intent = Intent(this, CheckEmailActivity::class.java)
this.startActivity(intent)
} else {
Toast.makeText(this, "No se pudo crear la cuenta. Vuelva a intertarlo",
Toast.LENGTH_SHORT).show()
}
}
}
}