commit
						4bc6334c0a
					
				
					 8 changed files with 53 additions and 4 deletions
				
			
		|  | @ -18,6 +18,7 @@ import androidx.navigation.compose.composable | |||
| import androidx.navigation.compose.rememberNavController | ||||
| import be.ugent.sel.studeez.common.snackbar.SnackbarManager | ||||
| import be.ugent.sel.studeez.navigation.StudeezDestinations | ||||
| import be.ugent.sel.studeez.screens.home.HomeScreen | ||||
| import be.ugent.sel.studeez.screens.sign_in.LoginScreen | ||||
| import be.ugent.sel.studeez.screens.sign_up.SignUpScreen | ||||
| import be.ugent.sel.studeez.screens.splash.SplashScreen | ||||
|  | @ -86,4 +87,8 @@ fun NavGraphBuilder.studeezGraph(appState: StudeezAppstate) { | |||
|     composable(StudeezDestinations.SIGN_UP_SCREEN) { | ||||
|         SignUpScreen(openAndPopUp = { route, popUp -> appState.navigateAndPopUp(route, popUp) }) | ||||
|     } | ||||
| 
 | ||||
|     composable(StudeezDestinations.HOME_SCREEN) { | ||||
|         HomeScreen(openAndPopUp = { route, popUp -> appState.navigateAndPopUp(route, popUp) }) | ||||
|     } | ||||
| } | ||||
|  | @ -14,7 +14,7 @@ import be.ugent.sel.studeez.ui.theme.StudeezTheme | |||
| // Contains floatingActionButton and bottom bar, used in the main four screens. | ||||
| fun PrimaryScreenToolbar( | ||||
|     title: String, | ||||
|     content: (PaddingValues) -> Unit | ||||
|     content: @Composable (PaddingValues) -> Unit | ||||
| ) { | ||||
|     Scaffold( | ||||
|         // Everything at the top of the screen | ||||
|  |  | |||
|  | @ -4,5 +4,6 @@ object StudeezDestinations { | |||
|     const val SPLASH_SCREEN = "splash" | ||||
|     const val SIGN_UP_SCREEN = "signup" | ||||
|     const val LOGIN_SCREEN = "login" | ||||
|     const val HOME_SCREEN = "home" | ||||
| 
 | ||||
| } | ||||
|  | @ -0,0 +1,25 @@ | |||
| package be.ugent.sel.studeez.screens.home | ||||
| 
 | ||||
| import androidx.compose.runtime.Composable | ||||
| import androidx.compose.ui.Modifier | ||||
| import androidx.hilt.navigation.compose.hiltViewModel | ||||
| import be.ugent.sel.studeez.R | ||||
| import be.ugent.sel.studeez.common.composable.BasicButton | ||||
| import be.ugent.sel.studeez.common.composable.PrimaryScreenToolbar | ||||
| import be.ugent.sel.studeez.common.composable.SecondaryScreenToolbar | ||||
| import be.ugent.sel.studeez.common.ext.basicButton | ||||
| import be.ugent.sel.studeez.resources | ||||
| 
 | ||||
| @Composable | ||||
| fun HomeScreen( | ||||
|     openAndPopUp: (String, String) -> Unit, | ||||
|     viewModel: HomeViewModel = hiltViewModel() | ||||
| ) { | ||||
| 
 | ||||
|     PrimaryScreenToolbar(title = resources().getString(R.string.home)) { | ||||
|         // "Start session" button | ||||
|         BasicButton(R.string.start_session, Modifier.basicButton()) { | ||||
|             viewModel.onStartSessionClick(openAndPopUp) | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,14 @@ | |||
| package be.ugent.sel.studeez.screens.home | ||||
| 
 | ||||
| import be.ugent.sel.studeez.domain.LogService | ||||
| import be.ugent.sel.studeez.screens.StudeezViewModel | ||||
| import dagger.hilt.android.lifecycle.HiltViewModel | ||||
| import javax.inject.Inject | ||||
| 
 | ||||
| @HiltViewModel | ||||
| class HomeViewModel @Inject constructor(logService: LogService) : StudeezViewModel(logService) { | ||||
| 
 | ||||
|     fun onStartSessionClick(openAndPopUp: (String, String) -> Unit) { | ||||
|         // openAndPopUp(StudeezDestinations.xxx, StudeezDestinations.HOME_SCREEN) | ||||
|     } | ||||
| } | ||||
|  | @ -6,6 +6,7 @@ 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.navigation.StudeezDestinations | ||||
| 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 | ||||
|  | @ -47,7 +48,7 @@ class LoginViewModel @Inject constructor( | |||
| 
 | ||||
|         launchCatching { | ||||
|             accountDAO.signInWithEmailAndPassword(email, password) | ||||
|             openAndPopUp(SIGN_UP_SCREEN, LOGIN_SCREEN) // Is not reached when error occurs. | ||||
|             openAndPopUp(HOME_SCREEN, LOGIN_SCREEN) // Is not reached when error occurs. | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
|  | @ -19,8 +19,7 @@ class SplashViewModel @Inject constructor( | |||
| 
 | ||||
|         showError.value = false | ||||
|         if (accountDAO.hasUser) { | ||||
|             // TODO this should go to the home page | ||||
|             openAndPopUp(StudeezDestinations.SIGN_UP_SCREEN, StudeezDestinations.SPLASH_SCREEN) | ||||
|             openAndPopUp(StudeezDestinations.HOME_SCREEN, StudeezDestinations.SPLASH_SCREEN) | ||||
|         } else{ | ||||
|             openAndPopUp(StudeezDestinations.SIGN_UP_SCREEN, StudeezDestinations.SPLASH_SCREEN) | ||||
|         } | ||||
|  |  | |||
|  | @ -23,4 +23,8 @@ | |||
|     <string name="recovery_email_sent">Check your inbox for the recovery email.</string> | ||||
|     <string name="empty_password_error">Password cannot be empty.</string> | ||||
| 
 | ||||
|     <!-- HomeScreen --> | ||||
|     <string name="home">Home</string> | ||||
|     <string name="start_session">Start session</string> | ||||
| 
 | ||||
| </resources> | ||||
|  |  | |||
		Reference in a new issue
	
	 lbarraga
						lbarraga