diff --git a/api/.env b/api/.env index 6d9eb07..0752049 100644 --- a/api/.env +++ b/api/.env @@ -5,5 +5,5 @@ HOSTNAME=127.0.0.1 MAINTENANCE_USER_ACCOUNT=debt_pirate:HRURqlUmtjIy PORT=42069 RUST_LOG=debt_pirate=trace -SEND_VERIFICATION_EMAIL=false +SEND_VERIFICATION_EMAIL=true TOKEN_KEY=k4.local.hWoS2ZulK9xPEATtXH1Dvj_iynzqfUv5ER5_IFTg5-Q diff --git a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/app/host/MainActivity.kt b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/app/host/MainActivity.kt index 201819b..7cc4d25 100644 --- a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/app/host/MainActivity.kt +++ b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/app/host/MainActivity.kt @@ -17,6 +17,7 @@ import dagger.hilt.android.AndroidEntryPoint import ing.bikeshedengineer.debtpirate.auth.presentation.login.LoginScreen import ing.bikeshedengineer.debtpirate.auth.presentation.register.RegistrationScreen import ing.bikeshedengineer.debtpirate.navigation.Destination +import ing.bikeshedengineer.debtpirate.navigation.NavigationAction import ing.bikeshedengineer.debtpirate.navigation.Navigator import ing.bikeshedengineer.debtpirate.theme.DebtPirateTheme import kotlinx.coroutines.Dispatchers @@ -35,9 +36,23 @@ class MainActivity : ComponentActivity() { setContent { val navController = rememberNavController() + ObserveAsEvents(navigator.navigationActions) { action -> + when (action) { + is NavigationAction.Navigate -> { + navController.navigate(action.destination) { + action.navOptions(this) + } + } + + is NavigationAction.NavigateUp -> { + navController.navigateUp() + } + } + } + DebtPirateTheme { NavHost(navController = navController, startDestination = Destination.AuthGraph) { - navigation(startDestination = Destination.RegistrationScreen) { + navigation(startDestination = Destination.LoginScreen) { composable() { LoginScreen() } composable() { RegistrationScreen() } } @@ -48,7 +63,7 @@ class MainActivity : ComponentActivity() { } @Composable -private fun _ObserveAsEvents(flow: Flow, onEvent: (T) -> Unit) { +private fun ObserveAsEvents(flow: Flow, onEvent: (T) -> Unit) { val lifecycleOwner = LocalLifecycleOwner.current LaunchedEffect(lifecycleOwner.lifecycle) { lifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) { diff --git a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/presentation/register/RegistrationScreenViewModel.kt b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/presentation/register/RegistrationScreenViewModel.kt index 21d2ad6..5773069 100644 --- a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/presentation/register/RegistrationScreenViewModel.kt +++ b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/presentation/register/RegistrationScreenViewModel.kt @@ -6,6 +6,7 @@ import dagger.hilt.android.lifecycle.HiltViewModel import ing.bikeshedengineer.debtpirate.auth.usecase.NewAccountRegistrationValidationResult import ing.bikeshedengineer.debtpirate.auth.usecase.SubmitAccountRegistrationRequestUseCase import ing.bikeshedengineer.debtpirate.auth.usecase.ValidateNewAccountRegistrationUseCase +import ing.bikeshedengineer.debtpirate.navigation.Destination import ing.bikeshedengineer.debtpirate.navigation.Navigator import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow @@ -81,6 +82,9 @@ class RegistrationScreenViewModel @Inject constructor( viewModelScope.launch { try { val result = submitAccountRegistrationRequest(emailAddress, name, confirmPassword) + + navigator.navigate(Destination.LoginScreen) + resetFields() } catch (err: Throwable) { // TODO... } @@ -139,4 +143,11 @@ class RegistrationScreenViewModel @Inject constructor( } }.isEmpty() } + + private fun resetFields() { + _emailAddress.value = "" + _name.value = "" + _password.value = "" + _confirmPassword.value = "" + } } \ No newline at end of file