summaryrefslogtreecommitdiffstats
path: root/app/src
diff options
context:
space:
mode:
Diffstat (limited to 'app/src')
-rw-r--r--app/src/main/AndroidManifest.xml2
-rw-r--r--app/src/main/java/com/frannazario/proyectoandroid/data/datasources/SigninDataSource.kt7
-rw-r--r--app/src/main/java/com/frannazario/proyectoandroid/data/datasources/SigninRemoteDataSource.kt24
-rw-r--r--app/src/main/java/com/frannazario/proyectoandroid/data/repositories/SigninRepository.kt9
-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.kt (renamed from app/src/main/java/com/frannazario/proyectoandroid/SigninFragment.kt)14
-rw-r--r--app/src/main/res/navigation/nav_graph.xml6
11 files changed, 90 insertions, 8 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/data/datasources/SigninDataSource.kt b/app/src/main/java/com/frannazario/proyectoandroid/data/datasources/SigninDataSource.kt
new file mode 100644
index 0000000..8f75685
--- /dev/null
+++ b/app/src/main/java/com/frannazario/proyectoandroid/data/datasources/SigninDataSource.kt
@@ -0,0 +1,7 @@
+package com.frannazario.proyectoandroid.data.datasources
+
+import androidx.lifecycle.LiveData
+
+interface SigninDataSource {
+ fun register(email: String, password: String): LiveData<SigninDataSource>
+} \ 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..f319b40
--- /dev/null
+++ b/app/src/main/java/com/frannazario/proyectoandroid/data/datasources/SigninRemoteDataSource.kt
@@ -0,0 +1,24 @@
+package com.frannazario.proyectoandroid.data.datasources
+
+import com.google.firebase.auth.FirebaseAuth
+import com.google.firebase.ktx.Firebase
+
+interface SigninRemoteDataSource: SigninDataSource{
+ private val auth = FirebaseAuth.getInstance()
+
+ 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..974ed83
--- /dev/null
+++ b/app/src/main/java/com/frannazario/proyectoandroid/data/repositories/SigninRepository.kt
@@ -0,0 +1,9 @@
+package com.frannazario.proyectoandroid.data.repositories
+
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.MutableLiveData
+import com.frannazario.proyectoandroid.data.responses.SigninResponse
+import com.google.firebase.auth.FirebaseAuth
+
+class SigninRepository {
+} \ 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..8ed890d
--- /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 getRegisterResultLiveData(): 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/SigninFragment.kt b/app/src/main/java/com/frannazario/proyectoandroid/presentation/fragments/SigninFragment.kt
index ccec5af..c533991 100644
--- a/app/src/main/java/com/frannazario/proyectoandroid/SigninFragment.kt
+++ b/app/src/main/java/com/frannazario/proyectoandroid/presentation/fragments/SigninFragment.kt
@@ -1,14 +1,21 @@
-package com.frannazario.proyectoandroid
+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.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,
@@ -18,4 +25,9 @@ class SigninFragment: Fragment() {
binding = FragmentSigninBinding.inflate(inflater, container, false)
return binding.root
}
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ viewModel
+ }
} \ No newline at end of file
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" />