diff --git a/app/src/main/java/be/ugent/sel/studeez/StudeezApp.kt b/app/src/main/java/be/ugent/sel/studeez/StudeezApp.kt index 0467234..4058628 100644 --- a/app/src/main/java/be/ugent/sel/studeez/StudeezApp.kt +++ b/app/src/main/java/be/ugent/sel/studeez/StudeezApp.kt @@ -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) }) + } } \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/common/composable/ToolbarComposable.kt b/app/src/main/java/be/ugent/sel/studeez/common/composable/ToolbarComposable.kt index 9002bf9..2ed16c6 100644 --- a/app/src/main/java/be/ugent/sel/studeez/common/composable/ToolbarComposable.kt +++ b/app/src/main/java/be/ugent/sel/studeez/common/composable/ToolbarComposable.kt @@ -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 diff --git a/app/src/main/java/be/ugent/sel/studeez/navigation/StudeezDestinations.kt b/app/src/main/java/be/ugent/sel/studeez/navigation/StudeezDestinations.kt index 861b0a3..3ac8d47 100644 --- a/app/src/main/java/be/ugent/sel/studeez/navigation/StudeezDestinations.kt +++ b/app/src/main/java/be/ugent/sel/studeez/navigation/StudeezDestinations.kt @@ -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" } \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/home/HomeScreen.kt b/app/src/main/java/be/ugent/sel/studeez/screens/home/HomeScreen.kt new file mode 100644 index 0000000..56d1b4d --- /dev/null +++ b/app/src/main/java/be/ugent/sel/studeez/screens/home/HomeScreen.kt @@ -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) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/home/HomeViewModel.kt b/app/src/main/java/be/ugent/sel/studeez/screens/home/HomeViewModel.kt new file mode 100644 index 0000000..f3a5369 --- /dev/null +++ b/app/src/main/java/be/ugent/sel/studeez/screens/home/HomeViewModel.kt @@ -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) + } +} \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/log_in/LoginViewModel.kt b/app/src/main/java/be/ugent/sel/studeez/screens/log_in/LoginViewModel.kt index 075be2f..268fa91 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/log_in/LoginViewModel.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/log_in/LoginViewModel.kt @@ -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. } } diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/splash/SplashViewModel.kt b/app/src/main/java/be/ugent/sel/studeez/screens/splash/SplashViewModel.kt index e617fff..6f0f18c 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/splash/SplashViewModel.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/splash/SplashViewModel.kt @@ -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) } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6daa9bf..01e986c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -23,4 +23,8 @@ Check your inbox for the recovery email. Password cannot be empty. + + Home + Start session +