summaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/com')
-rw-r--r--app/src/main/java/com/frannazario/proyectoandroid/data/utils/StringUtils.kt38
-rw-r--r--app/src/main/java/com/frannazario/proyectoandroid/data/viewmodels/SigninViewModel.kt11
-rw-r--r--app/src/main/java/com/frannazario/proyectoandroid/presentation/fragments/SigninFragment.kt9
3 files changed, 41 insertions, 17 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
index 6b22894..a8f90f6 100644
--- a/app/src/main/java/com/frannazario/proyectoandroid/data/utils/StringUtils.kt
+++ b/app/src/main/java/com/frannazario/proyectoandroid/data/utils/StringUtils.kt
@@ -1,20 +1,44 @@
package com.frannazario.proyectoandroid.data.utils
-import android.annotation.SuppressLint
-
fun String?.isEmail(): Boolean {
- val emailRegex = "[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" +
+ 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(emailRegex.toRegex()) ?: false
+ return this?.matches(email_regex.toRegex()) ?: false
}
-@SuppressLint("SuspiciousIndentation")
fun String?.isValidPassword(): Boolean {
- val passwordRegex = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*?[#?!@\$%^&*-])[a-zA-Z\\d\\w\\W]{8,}\$"
- return this?.matches(passwordRegex.toRegex()) ?: false
+ 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 d2631b0..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,8 +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.isEmail
-import com.frannazario.proyectoandroid.data.utils.isValidPassword
+import com.frannazario.proyectoandroid.data.utils.checkEmail
+import com.frannazario.proyectoandroid.data.utils.checkPassword
class SigninViewModel(private val repository: SigninRepository = SigninRepository()): ViewModel() {
@@ -17,9 +17,10 @@ class SigninViewModel(private val repository: SigninRepository = SigninRepositor
}
fun register(email: String?, password: String?) {
- if(email.isEmail() &&
- password.isValidPassword()) {
- val response = repository.register(email ?: "", password ?: "")
+ if(checkEmail(email) == null && checkPassword(password) == null) {
+ val response = repository.register(
+ email ?: "",
+ password ?: "")
signinResponseLiveData.postValue(response.value)
}
}
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 7e1ab4e..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
@@ -6,7 +6,6 @@ import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.fragment.app.Fragment
-import androidx.lifecycle.Observer
import com.frannazario.proyectoandroid.data.responses.SigninResponse
import com.frannazario.proyectoandroid.data.viewmodels.SigninViewModel
import com.frannazario.proyectoandroid.databinding.FragmentSigninBinding
@@ -33,17 +32,17 @@ class SigninFragment: Fragment() {
viewModel.getSigninResultLiveData().observe(viewLifecycleOwner) { response ->
when (response) {
is SigninResponse.Success -> {
- Toast.makeText(requireContext(), "Funciona correctamente", Toast.LENGTH_LONG).show()
+ Toast.makeText(requireContext(), "Funciona perfect", Toast.LENGTH_LONG).show()
}
is SigninResponse.Error -> {
Toast.makeText(requireContext(), response.error, Toast.LENGTH_LONG).show()
}
}
}
- binding.signupBtn.setOnClickListener {
+ binding.signinBtn.setOnClickListener {
viewModel.register(
- binding.emailIet.text?.toString(),
- binding.passwordIet.text?.toString()
+ email = binding.emailIet.text?.toString(),
+ password = binding.passwordIet.text?.toString()
)
}
}