summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNazario <francisco.nazario@logixsdigital.com>2023-06-05 16:02:18 +0200
committerNazario <francisco.nazario@logixsdigital.com>2023-06-05 16:02:18 +0200
commit358521989bfba7c25af30047a2b25b93a100825c (patch)
treea90f918ffc89ff4ccd604db14bd90b2804ebe08f
parent502fe9a6493b74ea231d02bcaae24e8e87eda98b (diff)
Updated class 5/06/23
-rw-r--r--app/src/main/AndroidManifest.xml2
-rw-r--r--app/src/main/java/com/frannazario/proyectoandroid/SigninFragment.kt21
-rw-r--r--app/src/main/java/com/frannazario/proyectoandroid/data/datasources/SigninDataSource.kt8
-rw-r--r--app/src/main/java/com/frannazario/proyectoandroid/data/datasources/SigninRemoteDataSource.kt26
-rw-r--r--app/src/main/java/com/frannazario/proyectoandroid/data/repositories/SigninRepository.kt16
-rw-r--r--app/src/main/java/com/frannazario/proyectoandroid/data/responses/SigninResponse.kt8
-rw-r--r--app/src/main/java/com/frannazario/proyectoandroid/data/viewmodels/SigninViewModel.kt21
-rw-r--r--app/src/main/java/com/frannazario/proyectoandroid/presentation/activities/AuthActivity.kt (renamed from app/src/main/java/com/frannazario/proyectoandroid/AuthActivity.kt)2
-rw-r--r--app/src/main/java/com/frannazario/proyectoandroid/presentation/fragments/LoginFragment.kt (renamed from app/src/main/java/com/frannazario/proyectoandroid/LoginFragment.kt)3
-rw-r--r--app/src/main/java/com/frannazario/proyectoandroid/presentation/fragments/PasswordRecoveryFragment.kt (renamed from app/src/main/java/com/frannazario/proyectoandroid/PasswordRecoveryFragment.kt)2
-rw-r--r--app/src/main/java/com/frannazario/proyectoandroid/presentation/fragments/SigninFragment.kt38
-rw-r--r--app/src/main/java/com/frannazario/proyectoandroid/presentation/ui/theme/Color.kt (renamed from app/src/main/java/com/frannazario/proyectoandroid/ui/theme/Color.kt)2
-rw-r--r--app/src/main/java/com/frannazario/proyectoandroid/presentation/ui/theme/Theme.kt (renamed from app/src/main/java/com/frannazario/proyectoandroid/ui/theme/Theme.kt)2
-rw-r--r--app/src/main/java/com/frannazario/proyectoandroid/presentation/ui/theme/Type.kt (renamed from app/src/main/java/com/frannazario/proyectoandroid/ui/theme/Type.kt)2
-rw-r--r--app/src/main/res/navigation/nav_graph.xml6
15 files changed, 128 insertions, 31 deletions
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 58e98da..449cc20 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -13,7 +13,7 @@
android:theme="@style/Theme.ProyectoAndroid"
tools:targetApi="31">
<activity
- android:name=".AuthActivity"
+ android:name=".presentation.activities.AuthActivity"
android:exported="true"
android:label="@string/app_name"
android:theme="@style/Theme.ProyectoAndroid">
diff --git a/app/src/main/java/com/frannazario/proyectoandroid/SigninFragment.kt b/app/src/main/java/com/frannazario/proyectoandroid/SigninFragment.kt
deleted file mode 100644
index ccec5af..0000000
--- a/app/src/main/java/com/frannazario/proyectoandroid/SigninFragment.kt
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.frannazario.proyectoandroid
-
-import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import androidx.fragment.app.Fragment
-import com.frannazario.proyectoandroid.databinding.FragmentSigninBinding
-
-class SigninFragment: Fragment() {
- private lateinit var binding: FragmentSigninBinding
-
- override fun onCreateView(
- inflater: LayoutInflater,
- container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View {
- binding = FragmentSigninBinding.inflate(inflater, container, false)
- return binding.root
- }
-} \ No newline at end of file
diff --git a/app/src/main/java/com/frannazario/proyectoandroid/data/datasources/SigninDataSource.kt b/app/src/main/java/com/frannazario/proyectoandroid/data/datasources/SigninDataSource.kt
new file mode 100644
index 0000000..4290c0a
--- /dev/null
+++ b/app/src/main/java/com/frannazario/proyectoandroid/data/datasources/SigninDataSource.kt
@@ -0,0 +1,8 @@
+package com.frannazario.proyectoandroid.data.datasources
+
+import androidx.lifecycle.LiveData
+import com.frannazario.proyectoandroid.data.responses.SigninResponse
+
+interface SigninDataSource {
+ fun register(email: String, password: String): LiveData<SigninResponse>
+} \ No newline at end of file
diff --git a/app/src/main/java/com/frannazario/proyectoandroid/data/datasources/SigninRemoteDataSource.kt b/app/src/main/java/com/frannazario/proyectoandroid/data/datasources/SigninRemoteDataSource.kt
new file mode 100644
index 0000000..7841045
--- /dev/null
+++ b/app/src/main/java/com/frannazario/proyectoandroid/data/datasources/SigninRemoteDataSource.kt
@@ -0,0 +1,26 @@
+package com.frannazario.proyectoandroid.data.datasources
+
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.MutableLiveData
+import com.frannazario.proyectoandroid.data.responses.SigninResponse
+import com.google.firebase.auth.FirebaseAuth
+
+class SigninRemoteDataSource: SigninDataSource {
+ private val auth = FirebaseAuth.getInstance()
+
+ override fun register(email: String, password: String): LiveData<SigninResponse> {
+ val resultLiveData = MutableLiveData<SigninResponse>()
+
+ auth.createUserWithEmailAndPassword(email, password)
+ .addOnCompleteListener { task ->
+ if (task.isSuccessful) {
+ val user = auth.currentUser
+ resultLiveData.value = SigninResponse.Success(user)
+ } else {
+ val error = task.exception?.message ?: "Error desconocido"
+ resultLiveData.value = SigninResponse.Error(error)
+ }
+ }
+ return resultLiveData
+ }
+} \ No newline at end of file
diff --git a/app/src/main/java/com/frannazario/proyectoandroid/data/repositories/SigninRepository.kt b/app/src/main/java/com/frannazario/proyectoandroid/data/repositories/SigninRepository.kt
new file mode 100644
index 0000000..c5c6fc9
--- /dev/null
+++ b/app/src/main/java/com/frannazario/proyectoandroid/data/repositories/SigninRepository.kt
@@ -0,0 +1,16 @@
+package com.frannazario.proyectoandroid.data.repositories
+
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.MutableLiveData
+import com.frannazario.proyectoandroid.data.datasources.SigninDataSource
+import com.frannazario.proyectoandroid.data.datasources.SigninRemoteDataSource
+import com.frannazario.proyectoandroid.data.responses.SigninResponse
+import com.google.firebase.auth.FirebaseAuth
+
+class SigninRepository(
+ private val remoteDataSource: SigninDataSource = SigninRemoteDataSource()
+) {
+ fun register(email: String, password: String): LiveData<SigninResponse> {
+ return remoteDataSource.register(email, password)
+ }
+} \ No newline at end of file
diff --git a/app/src/main/java/com/frannazario/proyectoandroid/data/responses/SigninResponse.kt b/app/src/main/java/com/frannazario/proyectoandroid/data/responses/SigninResponse.kt
new file mode 100644
index 0000000..df30b8c
--- /dev/null
+++ b/app/src/main/java/com/frannazario/proyectoandroid/data/responses/SigninResponse.kt
@@ -0,0 +1,8 @@
+package com.frannazario.proyectoandroid.data.responses
+
+import com.google.firebase.auth.FirebaseUser
+
+sealed class SigninResponse {
+ data class Success(val user: FirebaseUser?): SigninResponse()
+ data class Error(val error: String): SigninResponse()
+} \ 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
new file mode 100644
index 0000000..e7f70ed
--- /dev/null
+++ b/app/src/main/java/com/frannazario/proyectoandroid/data/viewmodels/SigninViewModel.kt
@@ -0,0 +1,21 @@
+package com.frannazario.proyectoandroid.data.viewmodels
+
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.ViewModel
+import com.frannazario.proyectoandroid.data.repositories.SigninRepository
+import com.frannazario.proyectoandroid.data.responses.SigninResponse
+
+class SigninViewModel(private val repository: SigninRepository = SigninRepository()): ViewModel() {
+
+ private val signinResponseLiveData = MutableLiveData<SigninResponse>()
+
+ fun getSigninResultLiveData(): LiveData<SigninResponse> {
+ return signinResponseLiveData
+ }
+
+ fun register(email: String, password: String) {
+ 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/AuthActivity.kt b/app/src/main/java/com/frannazario/proyectoandroid/presentation/activities/AuthActivity.kt
index cf642b0..ea3c927 100644
--- a/app/src/main/java/com/frannazario/proyectoandroid/AuthActivity.kt
+++ b/app/src/main/java/com/frannazario/proyectoandroid/presentation/activities/AuthActivity.kt
@@ -1,4 +1,4 @@
-package com.frannazario.proyectoandroid
+package com.frannazario.proyectoandroid.presentation.activities
import android.os.Bundle
import androidx.fragment.app.FragmentActivity
diff --git a/app/src/main/java/com/frannazario/proyectoandroid/LoginFragment.kt b/app/src/main/java/com/frannazario/proyectoandroid/presentation/fragments/LoginFragment.kt
index 3bf3107..fcabbe1 100644
--- a/app/src/main/java/com/frannazario/proyectoandroid/LoginFragment.kt
+++ b/app/src/main/java/com/frannazario/proyectoandroid/presentation/fragments/LoginFragment.kt
@@ -1,4 +1,4 @@
-package com.frannazario.proyectoandroid
+package com.frannazario.proyectoandroid.presentation.fragments
import android.os.Bundle
import android.view.LayoutInflater
@@ -6,6 +6,7 @@ import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.navigation.fragment.findNavController
+import com.frannazario.proyectoandroid.R
import com.frannazario.proyectoandroid.databinding.FragmentLoginBinding
class LoginFragment: Fragment() {
diff --git a/app/src/main/java/com/frannazario/proyectoandroid/PasswordRecoveryFragment.kt b/app/src/main/java/com/frannazario/proyectoandroid/presentation/fragments/PasswordRecoveryFragment.kt
index f330279..35b56d0 100644
--- a/app/src/main/java/com/frannazario/proyectoandroid/PasswordRecoveryFragment.kt
+++ b/app/src/main/java/com/frannazario/proyectoandroid/presentation/fragments/PasswordRecoveryFragment.kt
@@ -1,4 +1,4 @@
-package com.frannazario.proyectoandroid
+package com.frannazario.proyectoandroid.presentation.fragments
import android.os.Bundle
import android.view.LayoutInflater
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
new file mode 100644
index 0000000..2b4f40e
--- /dev/null
+++ b/app/src/main/java/com/frannazario/proyectoandroid/presentation/fragments/SigninFragment.kt
@@ -0,0 +1,38 @@
+package com.frannazario.proyectoandroid.presentation.fragments
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import com.frannazario.proyectoandroid.data.responses.SigninResponse
+import com.frannazario.proyectoandroid.data.viewmodels.SigninViewModel
+import com.frannazario.proyectoandroid.databinding.FragmentSigninBinding
+
+class SigninFragment: Fragment() {
+ private lateinit var binding: FragmentSigninBinding
+ private lateinit var viewModel: SigninViewModel
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ viewModel = SigninViewModel()
+ }
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View {
+ binding = FragmentSigninBinding.inflate(inflater, container, false)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ viewModel.getSigninResultLiveData().observe(viewLifecycleOwner) { response ->
+ when (response) {
+ is SigninResponse.Success -> {}
+ is SigninResponse.Error -> {}
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/app/src/main/java/com/frannazario/proyectoandroid/ui/theme/Color.kt b/app/src/main/java/com/frannazario/proyectoandroid/presentation/ui/theme/Color.kt
index d982329..d31dad1 100644
--- a/app/src/main/java/com/frannazario/proyectoandroid/ui/theme/Color.kt
+++ b/app/src/main/java/com/frannazario/proyectoandroid/presentation/ui/theme/Color.kt
@@ -1,4 +1,4 @@
-package com.frannazario.proyectoandroid.ui.theme
+package com.frannazario.proyectoandroid.presentation.ui.theme
import androidx.compose.ui.graphics.Color
diff --git a/app/src/main/java/com/frannazario/proyectoandroid/ui/theme/Theme.kt b/app/src/main/java/com/frannazario/proyectoandroid/presentation/ui/theme/Theme.kt
index 8b02c04..4693ca1 100644
--- a/app/src/main/java/com/frannazario/proyectoandroid/ui/theme/Theme.kt
+++ b/app/src/main/java/com/frannazario/proyectoandroid/presentation/ui/theme/Theme.kt
@@ -1,4 +1,4 @@
-package com.frannazario.proyectoandroid.ui.theme
+package com.frannazario.proyectoandroid.presentation.ui.theme
import android.app.Activity
import android.os.Build
diff --git a/app/src/main/java/com/frannazario/proyectoandroid/ui/theme/Type.kt b/app/src/main/java/com/frannazario/proyectoandroid/presentation/ui/theme/Type.kt
index 4bae58a..5e3a43b 100644
--- a/app/src/main/java/com/frannazario/proyectoandroid/ui/theme/Type.kt
+++ b/app/src/main/java/com/frannazario/proyectoandroid/presentation/ui/theme/Type.kt
@@ -1,4 +1,4 @@
-package com.frannazario.proyectoandroid.ui.theme
+package com.frannazario.proyectoandroid.presentation.ui.theme
import androidx.compose.material3.Typography
import androidx.compose.ui.text.TextStyle
diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml
index 969031b..cb1a441 100644
--- a/app/src/main/res/navigation/nav_graph.xml
+++ b/app/src/main/res/navigation/nav_graph.xml
@@ -7,7 +7,7 @@
<fragment
android:id="@+id/login_fragment"
- android:name="com.frannazario.proyectoandroid.LoginFragment"
+ android:name="com.frannazario.proyectoandroid.presentation.fragments.LoginFragment"
android:label="Login"
tools:layout="@layout/fragment_login">
@@ -23,13 +23,13 @@
<fragment
android:id="@+id/signin_fragment"
- android:name="com.frannazario.proyectoandroid.SigninFragment"
+ android:name="com.frannazario.proyectoandroid.presentation.fragments.SigninFragment"
android:label="Sign in"
tools:layout="@layout/fragment_signin" />
<fragment
android:id="@+id/password_recovery_fragment"
- android:name="com.frannazario.proyectoandroid.PasswordRecoveryFragment"
+ android:name="com.frannazario.proyectoandroid.presentation.fragments.PasswordRecoveryFragment"
android:label="Password recovery"
tools:layout="@layout/fragment_password_recovery" />