summaryrefslogtreecommitdiffstats
path: root/app/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main')
-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
-rw-r--r--app/src/main/res/layout/fragment_signin.xml6
-rw-r--r--app/src/main/res/values-es/strings.xml1
-rw-r--r--app/src/main/res/values/strings.xml1
6 files changed, 46 insertions, 20 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()
)
}
}
diff --git a/app/src/main/res/layout/fragment_signin.xml b/app/src/main/res/layout/fragment_signin.xml
index f88a274..ae1e7a3 100644
--- a/app/src/main/res/layout/fragment_signin.xml
+++ b/app/src/main/res/layout/fragment_signin.xml
@@ -4,7 +4,6 @@
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
-
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/email_il"
android:layout_width="match_parent"
@@ -34,13 +33,14 @@
android:hint="@string/field_password" />
</com.google.android.material.textfield.TextInputLayout>
+
<Button
- android:id="@+id/signup_btn"
+ android:id="@+id/signin_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/password_il"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
- android:text="@string/signup" />
+ android:text="@string/signin" />
</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index ac08189..a4a8581 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -3,6 +3,7 @@
<string name="field_email">Correo electronico</string>
<string name="field_password">Contrasena</string>
<string name="field_signin">Registro</string>
+ <string name="field_password">Contraseña</string>
<string name="forgot_password">Olvidé la contraseña</string>
<string name="signup">Registrarte</string>
<string name="login">Acceder</string>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index acba2eb..b04b94d 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -4,6 +4,7 @@
<string name="field_email">Email</string>
<string name="field_password">Password</string>
<string name="field_signin">Sign in</string>
+ <string name="field_password">Password</string>
<string name="forgot_password">Forget password</string>
<string name="signup">Sign Up</string>
<string name="login">Login</string>