summaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/frannazario/proyectoandroid
diff options
context:
space:
mode:
authorNazario <francisco.nazario@logixsdigital.com>2023-06-07 14:19:29 +0200
committerNazario <francisco.nazario@logixsdigital.com>2023-06-07 14:19:29 +0200
commitf17a201b593dd950e878fd3af03e435ff5cab3ef (patch)
tree45bb1507b0ad814843b02720713edaacee3c0533 /app/src/main/java/com/frannazario/proyectoandroid
parent358521989bfba7c25af30047a2b25b93a100825c (diff)
Updated class 6/06/23
Diffstat (limited to 'app/src/main/java/com/frannazario/proyectoandroid')
-rw-r--r--app/src/main/java/com/frannazario/proyectoandroid/data/utils/StringUtils.kt44
-rw-r--r--app/src/main/java/com/frannazario/proyectoandroid/data/viewmodels/SigninViewModel.kt12
-rw-r--r--app/src/main/java/com/frannazario/proyectoandroid/presentation/fragments/SigninFragment.kt15
3 files changed, 66 insertions, 5 deletions
diff --git a/app/src/main/java/com/frannazario/proyectoandroid/data/utils/StringUtils.kt b/app/src/main/java/com/frannazario/proyectoandroid/data/utils/StringUtils.kt
new file mode 100644
index 0000000..a8f90f6
--- /dev/null
+++ b/app/src/main/java/com/frannazario/proyectoandroid/data/utils/StringUtils.kt
@@ -0,0 +1,44 @@
+package com.frannazario.proyectoandroid.data.utils
+
+fun String?.isEmail(): Boolean {
+ val email_regex = "[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" +
+ "\\@" +
+ "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" +
+ "(" +
+ "\\." +
+ "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" +
+ ")+"
+ return this?.matches(email_regex.toRegex()) ?: false
+}
+
+fun String?.isValidPassword(): Boolean {
+ val password_regex = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*?[#?!@\$%^&*-])[a-zA-Z\\d\\w\\W]{8,}\$"
+ return this?.matches(password_regex.toRegex()) ?: false
+}
+
+fun checkEmail(email: String?): ErrorTypes? {
+ return if (email.isNullOrBlank()) {
+ ErrorTypes.EMAIL_EMPTY
+ } else if (email.isEmail()) {
+ null
+ } else {
+ ErrorTypes.EMAIL_WRONG_FORMAT
+ }
+}
+
+fun checkPassword(password: String?): ErrorTypes? {
+ return if (password.isNullOrBlank()) {
+ ErrorTypes.PASSWORD_TOO_SHORT
+ } else if (password.isValidPassword()) {
+ null
+ } else {
+ ErrorTypes.PASSWORD_WRONG_FORMAT
+ }
+}
+
+enum class ErrorTypes() {
+ EMAIL_EMPTY,
+ EMAIL_WRONG_FORMAT,
+ PASSWORD_TOO_SHORT,
+ PASSWORD_WRONG_FORMAT
+} \ No newline at end of file
diff --git a/app/src/main/java/com/frannazario/proyectoandroid/data/viewmodels/SigninViewModel.kt b/app/src/main/java/com/frannazario/proyectoandroid/data/viewmodels/SigninViewModel.kt
index e7f70ed..2b4833c 100644
--- a/app/src/main/java/com/frannazario/proyectoandroid/data/viewmodels/SigninViewModel.kt
+++ b/app/src/main/java/com/frannazario/proyectoandroid/data/viewmodels/SigninViewModel.kt
@@ -5,6 +5,8 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import com.frannazario.proyectoandroid.data.repositories.SigninRepository
import com.frannazario.proyectoandroid.data.responses.SigninResponse
+import com.frannazario.proyectoandroid.data.utils.checkEmail
+import com.frannazario.proyectoandroid.data.utils.checkPassword
class SigninViewModel(private val repository: SigninRepository = SigninRepository()): ViewModel() {
@@ -14,8 +16,12 @@ class SigninViewModel(private val repository: SigninRepository = SigninRepositor
return signinResponseLiveData
}
- fun register(email: String, password: String) {
- val response = repository.register(email, password)
- signinResponseLiveData.postValue(response.value)
+ fun register(email: String?, password: String?) {
+ if(checkEmail(email) == null && checkPassword(password) == null) {
+ val response = repository.register(
+ email ?: "",
+ password ?: "")
+ signinResponseLiveData.postValue(response.value)
+ }
}
} \ No newline at end of file
diff --git a/app/src/main/java/com/frannazario/proyectoandroid/presentation/fragments/SigninFragment.kt b/app/src/main/java/com/frannazario/proyectoandroid/presentation/fragments/SigninFragment.kt
index 2b4f40e..bfb451d 100644
--- a/app/src/main/java/com/frannazario/proyectoandroid/presentation/fragments/SigninFragment.kt
+++ b/app/src/main/java/com/frannazario/proyectoandroid/presentation/fragments/SigninFragment.kt
@@ -4,6 +4,7 @@ import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import android.widget.Toast
import androidx.fragment.app.Fragment
import com.frannazario.proyectoandroid.data.responses.SigninResponse
import com.frannazario.proyectoandroid.data.viewmodels.SigninViewModel
@@ -30,9 +31,19 @@ class SigninFragment: Fragment() {
super.onViewCreated(view, savedInstanceState)
viewModel.getSigninResultLiveData().observe(viewLifecycleOwner) { response ->
when (response) {
- is SigninResponse.Success -> {}
- is SigninResponse.Error -> {}
+ is SigninResponse.Success -> {
+ Toast.makeText(requireContext(), "Funciona perfect", Toast.LENGTH_LONG).show()
+ }
+ is SigninResponse.Error -> {
+ Toast.makeText(requireContext(), response.error, Toast.LENGTH_LONG).show()
+ }
}
}
+ binding.signinBtn.setOnClickListener {
+ viewModel.register(
+ email = binding.emailIet.text?.toString(),
+ password = binding.passwordIet.text?.toString()
+ )
+ }
}
} \ No newline at end of file