diff --git a/app/src/main/java/be/ugent/sel/studeez/di/DatabaseModule.kt b/app/src/main/java/be/ugent/sel/studeez/di/DatabaseModule.kt index ffad868..c82696e 100644 --- a/app/src/main/java/be/ugent/sel/studeez/di/DatabaseModule.kt +++ b/app/src/main/java/be/ugent/sel/studeez/di/DatabaseModule.kt @@ -2,7 +2,9 @@ package be.ugent.sel.studeez.di import be.ugent.sel.studeez.domain.AccountDAO import be.ugent.sel.studeez.domain.LogService +import be.ugent.sel.studeez.domain.UserDAO import be.ugent.sel.studeez.domain.implementation.FirebaseAccountDAO +import be.ugent.sel.studeez.domain.implementation.FirebaseUserDAO import be.ugent.sel.studeez.domain.implementation.LogServiceImpl import dagger.Binds import dagger.Module @@ -14,6 +16,8 @@ import dagger.hilt.components.SingletonComponent abstract class DatabaseModule { @Binds abstract fun provideAccountDAO(impl: FirebaseAccountDAO): AccountDAO + @Binds abstract fun provideUserDAO(impl: FirebaseUserDAO): UserDAO + @Binds abstract fun provideLogService(impl: LogServiceImpl): LogService } \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/domain/UserDAO.kt b/app/src/main/java/be/ugent/sel/studeez/domain/UserDAO.kt new file mode 100644 index 0000000..7a731f3 --- /dev/null +++ b/app/src/main/java/be/ugent/sel/studeez/domain/UserDAO.kt @@ -0,0 +1,4 @@ +package be.ugent.sel.studeez.domain + +interface UserDAO { +} \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/domain/implementation/FirebaseUserDAO.kt b/app/src/main/java/be/ugent/sel/studeez/domain/implementation/FirebaseUserDAO.kt new file mode 100644 index 0000000..d460762 --- /dev/null +++ b/app/src/main/java/be/ugent/sel/studeez/domain/implementation/FirebaseUserDAO.kt @@ -0,0 +1,2 @@ +package be.ugent.sel.studeez.domain.implementation + diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/sign_up/SignUpViewModel.kt b/app/src/main/java/be/ugent/sel/studeez/screens/sign_up/SignUpViewModel.kt index fe14749..dacb7db 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/sign_up/SignUpViewModel.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/sign_up/SignUpViewModel.kt @@ -7,21 +7,29 @@ import be.ugent.sel.studeez.common.ext.passwordMatches import be.ugent.sel.studeez.common.snackbar.SnackbarManager import be.ugent.sel.studeez.domain.AccountDAO import be.ugent.sel.studeez.domain.LogService +import be.ugent.sel.studeez.domain.UserDAO +import be.ugent.sel.studeez.navigation.StudeezDestinations.HOME_SCREEN import be.ugent.sel.studeez.navigation.StudeezDestinations.LOGIN_SCREEN import be.ugent.sel.studeez.navigation.StudeezDestinations.SIGN_UP_SCREEN import be.ugent.sel.studeez.screens.StudeezViewModel import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.flow.FlowCollector +import kotlinx.coroutines.flow.first +import kotlinx.coroutines.flow.take import be.ugent.sel.studeez.R.string as AppText import javax.inject.Inject @HiltViewModel class SignUpViewModel @Inject constructor( - private val accountService: AccountDAO, + private val accountDAO: AccountDAO, + private val userDAO: UserDAO, logService: LogService ) : StudeezViewModel(logService) { var uiState = mutableStateOf(SignUpUiState()) private set + private val username + get() = uiState.value.username private val email get() = uiState.value.email private val password @@ -59,8 +67,10 @@ class SignUpViewModel @Inject constructor( } launchCatching { - accountService.signUpWithEmailAndPassword(email, password) - openAndPopUp(LOGIN_SCREEN, SIGN_UP_SCREEN) + accountDAO.signUpWithEmailAndPassword(email, password) + accountDAO.signInWithEmailAndPassword(email, password) + userDAO.save(username) + openAndPopUp(HOME_SCREEN, SIGN_UP_SCREEN) } }