Merge pull request #55 from SELab1/homescreen

Homescreen
This commit is contained in:
lbarraga 2023-04-11 18:41:31 +02:00 committed by GitHub Enterprise
commit 4bc6334c0a
8 changed files with 53 additions and 4 deletions

View file

@ -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) })
}
}

View file

@ -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

View file

@ -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"
}

View file

@ -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)
}
}
}

View file

@ -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)
}
}

View file

@ -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.
}
}

View file

@ -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)
}

View file

@ -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>