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 fbc8693..d112db1 100644 --- a/app/src/main/java/be/ugent/sel/studeez/StudeezApp.kt +++ b/app/src/main/java/be/ugent/sel/studeez/StudeezApp.kt @@ -21,6 +21,7 @@ import be.ugent.sel.studeez.navigation.StudeezDestinations import be.ugent.sel.studeez.screens.home.HomeScreen import be.ugent.sel.studeez.screens.log_in.LoginScreen import be.ugent.sel.studeez.screens.session.SessionScreen +import be.ugent.sel.studeez.screens.profile.ProfileScreen import be.ugent.sel.studeez.screens.sign_up.SignUpScreen import be.ugent.sel.studeez.screens.splash.SplashScreen import be.ugent.sel.studeez.screens.timer_overview.TimerOverviewScreen @@ -82,6 +83,10 @@ fun NavGraphBuilder.studeezGraph(appState: StudeezAppstate) { route, popUp -> appState.navigateAndPopUp(route, popUp) } + val open: (String) -> Unit = { + route -> appState.navigate(route) + } + composable(StudeezDestinations.SPLASH_SCREEN) { SplashScreen(openAndPopUp) } @@ -95,7 +100,14 @@ fun NavGraphBuilder.studeezGraph(appState: StudeezAppstate) { } composable(StudeezDestinations.HOME_SCREEN) { - HomeScreen(openAndPopUp) + HomeScreen(open, openAndPopUp) + } + + // TODO Tasks screen + // TODO Sessions screen + + composable(StudeezDestinations.PROFILE_SCREEN) { + ProfileScreen(open, openAndPopUp) } composable(StudeezDestinations.TIMER_OVERVIEW_SCREEN) { @@ -105,4 +117,7 @@ fun NavGraphBuilder.studeezGraph(appState: StudeezAppstate) { composable(StudeezDestinations.SESSION_SCREEN) { SessionScreen(openAndPopUp) } + + // TODO Timers screen + // TODO Settings screen } \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/common/composable/PrimaryScreenComposable.kt b/app/src/main/java/be/ugent/sel/studeez/common/composable/PrimaryScreenComposable.kt index 9dc92f2..5983d37 100644 --- a/app/src/main/java/be/ugent/sel/studeez/common/composable/PrimaryScreenComposable.kt +++ b/app/src/main/java/be/ugent/sel/studeez/common/composable/PrimaryScreenComposable.kt @@ -6,16 +6,19 @@ import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Menu import androidx.compose.runtime.Composable import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.ui.tooling.preview.Preview import be.ugent.sel.studeez.R import be.ugent.sel.studeez.resources import be.ugent.sel.studeez.screens.drawer.Drawer import be.ugent.sel.studeez.screens.navbar.NavigationBar +import be.ugent.sel.studeez.ui.theme.StudeezTheme import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch @Composable fun PrimaryScreenTemplate( title: String, + open: (String) -> Unit, openAndPopUp: (String, String) -> Unit, content: @Composable (PaddingValues) -> Unit ) { @@ -40,10 +43,10 @@ fun PrimaryScreenTemplate( ) }, drawerContent = { - Drawer(openAndPopUp) + Drawer(open, openAndPopUp) }, - bottomBar = { NavigationBar(openAndPopUp) }, + bottomBar = { NavigationBar(open) }, floatingActionButtonPosition = FabPosition.Center, isFloatingActionButtonDocked = true, floatingActionButton = { CollapsedAddButton() } @@ -52,13 +55,14 @@ fun PrimaryScreenTemplate( } } -//@Preview -//@Composable -//fun PrimaryScreenPreview() { -// StudeezTheme { -// PrimaryScreenTemplate( -// "Preview screen", -// {} -// ) {} -// } -//} \ No newline at end of file +@Preview +@Composable +fun PrimaryScreenPreview() { + StudeezTheme { + PrimaryScreenTemplate( + "Preview screen", + { _ -> {}}, + { _, _ -> {}} + ) {} + } +} \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/common/composable/SimpleScreenComposable.kt b/app/src/main/java/be/ugent/sel/studeez/common/composable/SimpleScreenComposable.kt new file mode 100644 index 0000000..0e3c684 --- /dev/null +++ b/app/src/main/java/be/ugent/sel/studeez/common/composable/SimpleScreenComposable.kt @@ -0,0 +1,16 @@ +package be.ugent.sel.studeez.common.composable + +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.material.Scaffold +import androidx.compose.material.Text +import androidx.compose.material.TopAppBar +import androidx.compose.runtime.Composable + +@Composable +fun SimpleScreenTemplate( + title: String, + content: @Composable (PaddingValues) -> Unit +) { + Scaffold( topBar = { TopAppBar ( title = { Text(text = title) } ) } + ) { paddingValues -> content(paddingValues) } +} \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/common/composable/TextComposable.kt b/app/src/main/java/be/ugent/sel/studeez/common/composable/TextComposable.kt new file mode 100644 index 0000000..1b921a9 --- /dev/null +++ b/app/src/main/java/be/ugent/sel/studeez/common/composable/TextComposable.kt @@ -0,0 +1,26 @@ +package be.ugent.sel.studeez.common.composable + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.sp + +@Composable +fun Headline( + text: String +) { + Row ( + modifier = Modifier.fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.Center + ) { + Text( + text = text, + fontSize = 34.sp + ) + } +} \ 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 index 28999e6..8b6f357 100644 --- a/app/src/main/java/be/ugent/sel/studeez/domain/UserDAO.kt +++ b/app/src/main/java/be/ugent/sel/studeez/domain/UserDAO.kt @@ -1,10 +1,7 @@ package be.ugent.sel.studeez.domain -import kotlinx.coroutines.flow.Flow - interface UserDAO { - suspend fun getUserName(): String? - + suspend fun getUsername(): String? suspend fun save(newUsername: String) } \ 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 index ac8f455..8ac779b 100644 --- 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 @@ -1,18 +1,26 @@ package be.ugent.sel.studeez.domain.implementation +import androidx.compose.runtime.rememberCoroutineScope import be.ugent.sel.studeez.domain.AccountDAO import be.ugent.sel.studeez.domain.UserDAO import com.google.firebase.firestore.DocumentReference import com.google.firebase.firestore.FirebaseFirestore +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.channels.awaitClose +import kotlinx.coroutines.coroutineScope +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.callbackFlow +import kotlinx.coroutines.flow.flow import kotlinx.coroutines.tasks.await import javax.inject.Inject +import kotlin.coroutines.coroutineContext class FirebaseUserDAO @Inject constructor( private val firestore: FirebaseFirestore, private val auth: AccountDAO ) : UserDAO { - override suspend fun getUserName(): String? { + override suspend fun getUsername(): String? { return currentUserDocument().get().await().getString("username") } 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 697932f..51cb871 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,8 +4,13 @@ object StudeezDestinations { const val SPLASH_SCREEN = "splash" const val SIGN_UP_SCREEN = "signup" const val LOGIN_SCREEN = "login" + const val HOME_SCREEN = "home" const val TIMER_OVERVIEW_SCREEN = "timer_overview" const val SESSION_SCREEN = "session" +// const val TASKS_SCREEN = "tasks" + const val PROFILE_SCREEN = "profile" +// const val TIMERS_SCREEN = "timers" +// const val SETTINGS_SCREEN = "settings" } \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/drawer/DrawerComposable.kt b/app/src/main/java/be/ugent/sel/studeez/screens/drawer/DrawerComposable.kt index 7b39f80..296fd94 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/drawer/DrawerComposable.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/drawer/DrawerComposable.kt @@ -23,6 +23,7 @@ import be.ugent.sel.studeez.ui.theme.StudeezTheme @Composable fun Drawer( + open: (String) -> Unit, openAndPopUp: (String, String) -> Unit, viewModel: DrawerViewModel = hiltViewModel() ) { @@ -36,19 +37,19 @@ fun Drawer( icon = Icons.Default.Home, text = resources().getString(R.string.home) ) { - // TODO Go to home + viewModel.onHomeButtonClick(open) } DrawerEntry( icon = ImageVector.vectorResource(id = R.drawable.ic_timer), text = resources().getString(R.string.timers) ) { - viewModel.onTimersClick(openAndPopUp) + viewModel.onTimersClick(open) } DrawerEntry( icon = Icons.Default.Settings, text = resources().getString(R.string.settings) ) { - viewModel.onSettingsClick(openAndPopUp) + viewModel.onSettingsClick(open) } DrawerEntry( icon = ImageVector.vectorResource(id = R.drawable.ic_logout), @@ -62,7 +63,7 @@ fun Drawer( icon = Icons.Outlined.Info, text = resources().getString(R.string.about) ) { - viewModel.onAboutClick(openAndPopUp) + viewModel.onAboutClick(open) } } } @@ -101,7 +102,9 @@ fun DrawerEntry( fun DrawerPreview() { StudeezTheme { Drawer( - {a, b -> {}}, hiltViewModel() + { _, -> {} }, + { _, _ -> {} }, + hiltViewModel() ) } } \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/drawer/DrawerViewModel.kt b/app/src/main/java/be/ugent/sel/studeez/screens/drawer/DrawerViewModel.kt index d8a2c6f..2b1c208 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/drawer/DrawerViewModel.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/drawer/DrawerViewModel.kt @@ -2,7 +2,8 @@ package be.ugent.sel.studeez.screens.drawer 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.screens.StudeezViewModel import dagger.hilt.android.lifecycle.HiltViewModel import javax.inject.Inject @@ -13,27 +14,30 @@ class DrawerViewModel @Inject constructor( logService: LogService ) : StudeezViewModel(logService) { - fun onLogoutClick(openAndPopup: (String, String) -> Unit) { - launchCatching { - accountDAO.signOut() - openAndPopup(StudeezDestinations.LOGIN_SCREEN, StudeezDestinations.HOME_SCREEN) - } + fun onHomeButtonClick(open: (String) -> Unit) { + open(HOME_SCREEN) } - fun onHomeButtonClick(openAndPopup: (String, String) -> Unit) { + fun onTimersClick(open: (String) -> Unit) { // TODO } fun onTimersClick(openAndPopup: (String, String) -> Unit) { // TODO is niet altijd het homescreen openAndPopup(StudeezDestinations.TIMER_OVERVIEW_SCREEN, StudeezDestinations.HOME_SCREEN) - } - fun onSettingsClick(openAndPopup: (String, String) -> Unit) { + fun onSettingsClick(open: (String) -> Unit) { // TODO } - fun onAboutClick(openAndPopup: (String, String) -> Unit) { + fun onLogoutClick(openAndPopUp: (String, String) -> Unit) { + launchCatching { + accountDAO.signOut() + openAndPopUp(LOGIN_SCREEN, HOME_SCREEN) + } + } + + fun onAboutClick(open: (String) -> Unit) { // TODO } } 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 index db0be1a..e8c88c1 100644 --- 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 @@ -11,15 +11,17 @@ import be.ugent.sel.studeez.resources @Composable fun HomeScreen( + open: (String) -> Unit, openAndPopUp: (String, String) -> Unit, viewModel: HomeViewModel = hiltViewModel() ) { PrimaryScreenTemplate( title = resources().getString(R.string.home), + open = open, openAndPopUp = openAndPopUp ) { BasicButton(R.string.start_session, Modifier.basicButton()) { - viewModel.onStartSessionClick(openAndPopUp) + viewModel.onStartSessionClick(open) } } } \ 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 index 1c057bb..b035223 100644 --- 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 @@ -1,8 +1,5 @@ package be.ugent.sel.studeez.screens.home -import androidx.compose.material.ScaffoldState -import androidx.compose.material.rememberScaffoldState -import be.ugent.sel.studeez.data.local.models.User import be.ugent.sel.studeez.domain.AccountDAO import be.ugent.sel.studeez.domain.LogService import be.ugent.sel.studeez.navigation.StudeezDestinations @@ -10,7 +7,6 @@ import be.ugent.sel.studeez.navigation.StudeezDestinations.HOME_SCREEN import be.ugent.sel.studeez.navigation.StudeezDestinations.LOGIN_SCREEN import be.ugent.sel.studeez.screens.StudeezViewModel import dagger.hilt.android.lifecycle.HiltViewModel -import kotlinx.coroutines.flow.Flow import javax.inject.Inject @HiltViewModel diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/log_in/LoginScreen.kt b/app/src/main/java/be/ugent/sel/studeez/screens/log_in/LoginScreen.kt index 82ff679..2762abc 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/log_in/LoginScreen.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/log_in/LoginScreen.kt @@ -26,8 +26,7 @@ fun LoginScreen( ) { val uiState by viewModel.uiState - // TODO Make this a separate kind of screen? - SecondaryScreenTemplate(title = resources().getString(AppText.sign_in), {}) { + SimpleScreenTemplate(title = resources().getString(AppText.sign_in)) { Column( modifier = modifier .fillMaxWidth() diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/navbar/NavigationBarComposable.kt b/app/src/main/java/be/ugent/sel/studeez/screens/navbar/NavigationBarComposable.kt index fb4b2a3..5c5dee1 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/navbar/NavigationBarComposable.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/navbar/NavigationBarComposable.kt @@ -13,11 +13,14 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel +import be.ugent.sel.studeez.resources import be.ugent.sel.studeez.ui.theme.StudeezTheme +import be.ugent.sel.studeez.R.string as AppText + @Composable fun NavigationBar( - popUpAndOpen: (String, String) -> Unit, + open: (String) -> Unit, viewModel: NavigationBarViewModel = hiltViewModel() ) { // TODO Pass functions and new screens. @@ -27,41 +30,46 @@ fun NavigationBar( elevation = 10.dp ) { BottomNavigationItem( - icon = { Icon(imageVector = Icons.Default.List, "Home") }, - label = { Text(text = "Home") }, + icon = { Icon(imageVector = Icons.Default.List, resources().getString(AppText.home)) }, + label = { Text(text = resources().getString(AppText.home)) }, selected = false, // TODO - onClick = { viewModel.onHomeClick(popUpAndOpen) } + onClick = { viewModel.onHomeClick(open) } ) BottomNavigationItem( - icon = { Icon(imageVector = Icons.Default.Check, "Tasks") }, - label = { Text(text = "Tasks") }, + icon = { Icon(imageVector = Icons.Default.Check, resources().getString(AppText.tasks)) }, + label = { Text(text = resources().getString(AppText.tasks)) }, selected = false, // TODO - onClick = { viewModel.onTasksClick(popUpAndOpen) } + onClick = { viewModel.onTasksClick(open) } ) // Hack to space the entries in the navigation bar, make space for fab BottomNavigationItem(icon = {}, onClick = {}, selected = false) BottomNavigationItem( - icon = { Icon(imageVector = Icons.Outlined.DateRange, "Sessions") }, - label = { Text(text = "Sessions") }, + icon = { Icon(imageVector = Icons.Outlined.DateRange, resources().getString(AppText.sessions)) }, + label = { Text(text = resources().getString(AppText.sessions)) }, selected = false, // TODO - onClick = { viewModel.onSessionsClick(popUpAndOpen) } + onClick = { viewModel.onSessionsClick(open) } ) BottomNavigationItem( - icon = { Icon(imageVector = Icons.Default.Person, "Profile") }, - label = { Text(text = "Profile") }, + icon = { Icon(imageVector = Icons.Default.Person, resources().getString(AppText.profile)) }, + label = { Text(text = resources().getString(AppText.profile)) }, selected = false, // TODO - onClick = { viewModel.onProfileClick(popUpAndOpen) } + onClick = { viewModel.onProfileClick(open) } ) } } -//@Preview(showBackground = true) -//@Composable -//fun NavigationBarPreview() { -// StudeezTheme { NavigationBar() } -//} \ No newline at end of file +@Preview(showBackground = true) +@Composable +fun NavigationBarPreview() { + StudeezTheme { + NavigationBar( + { _ -> {} }, + hiltViewModel() + ) + } +} \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/navbar/NavigationBarViewModel.kt b/app/src/main/java/be/ugent/sel/studeez/screens/navbar/NavigationBarViewModel.kt index 57ae686..1814d84 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/navbar/NavigationBarViewModel.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/navbar/NavigationBarViewModel.kt @@ -3,6 +3,8 @@ package be.ugent.sel.studeez.screens.navbar 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.PROFILE_SCREEN import be.ugent.sel.studeez.screens.StudeezViewModel import dagger.hilt.android.lifecycle.HiltViewModel import javax.inject.Inject @@ -13,19 +15,19 @@ class NavigationBarViewModel @Inject constructor( logService: LogService ) : StudeezViewModel(logService) { - fun onHomeClick(openAndPopup: (String, String) -> Unit) { + fun onHomeClick(open: (String) -> Unit) { + open(HOME_SCREEN) + } + + fun onTasksClick(open: (String) -> Unit) { // TODO } - fun onTasksClick(openAndPopup: (String, String) -> Unit) { + fun onSessionsClick(open: (String) -> Unit) { // TODO } - fun onSessionsClick(openAndPopup: (String, String) -> Unit) { - // TODO - } - - fun onProfileClick(openAndPopup: (String, String) -> Unit) { - // TODO + fun onProfileClick(open: (String) -> Unit) { + open(PROFILE_SCREEN) } } \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/profile/ProfileScreen.kt b/app/src/main/java/be/ugent/sel/studeez/screens/profile/ProfileScreen.kt new file mode 100644 index 0000000..56568c4 --- /dev/null +++ b/app/src/main/java/be/ugent/sel/studeez/screens/profile/ProfileScreen.kt @@ -0,0 +1,29 @@ +package be.ugent.sel.studeez.screens.profile + +import androidx.compose.runtime.* +import androidx.hilt.navigation.compose.hiltViewModel +import be.ugent.sel.studeez.R +import be.ugent.sel.studeez.common.composable.Headline +import be.ugent.sel.studeez.common.composable.PrimaryScreenTemplate +import be.ugent.sel.studeez.resources +import be.ugent.sel.studeez.R.string as AppText + +@Composable +fun ProfileScreen( + open: (String) -> Unit, + openAndPopUp: (String, String) -> Unit, + viewModel: ProfileViewModel = hiltViewModel() +) { + var username: String? by remember { mutableStateOf("") } + LaunchedEffect(key1 = Unit) { + username = viewModel.getUsername() + } + + PrimaryScreenTemplate( + title = resources().getString(AppText.profile), + open = open, + openAndPopUp = openAndPopUp + ) { + Headline(text = (username ?: resources().getString(R.string.no_username))) + } +} \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/profile/ProfileViewModel.kt b/app/src/main/java/be/ugent/sel/studeez/screens/profile/ProfileViewModel.kt new file mode 100644 index 0000000..1f6b1a2 --- /dev/null +++ b/app/src/main/java/be/ugent/sel/studeez/screens/profile/ProfileViewModel.kt @@ -0,0 +1,30 @@ +package be.ugent.sel.studeez.screens.profile + +import androidx.compose.runtime.rememberCoroutineScope +import androidx.lifecycle.viewModelScope +import be.ugent.sel.studeez.R +import be.ugent.sel.studeez.domain.LogService +import be.ugent.sel.studeez.domain.UserDAO +import be.ugent.sel.studeez.resources +import be.ugent.sel.studeez.screens.StudeezViewModel +import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.coroutineScope +import kotlinx.coroutines.flow.SharingStarted +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.map +import kotlinx.coroutines.flow.stateIn + +import javax.inject.Inject + +@HiltViewModel +class ProfileViewModel @Inject constructor( + private val userDAO: UserDAO, + logService: LogService +) : StudeezViewModel(logService) { + + suspend fun getUsername(): String? { + return userDAO.getUsername() + } + +} \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/sign_up/SignUpScreen.kt b/app/src/main/java/be/ugent/sel/studeez/screens/sign_up/SignUpScreen.kt index 19ff103..7515117 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/sign_up/SignUpScreen.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/sign_up/SignUpScreen.kt @@ -6,8 +6,6 @@ import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Person import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment @@ -29,7 +27,7 @@ fun SignUpScreen( val uiState by viewModel.uiState val fieldModifier = Modifier.fieldModifier() - SecondaryScreenTemplate(title = resources().getString(AppText.create_account), {}) { + SimpleScreenTemplate(title = resources().getString(AppText.create_account)) { Column( modifier = modifier .fillMaxWidth() diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/splash/SplashScreen.kt b/app/src/main/java/be/ugent/sel/studeez/screens/splash/SplashScreen.kt index ec5e515..38146c0 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/splash/SplashScreen.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/splash/SplashScreen.kt @@ -21,7 +21,7 @@ import be.ugent.sel.studeez.common.ext.basicButton import kotlinx.coroutines.delay import be.ugent.sel.studeez.R.string as AppText -private const val SPLASH_TIMEOUT = 1000L +private const val SPLASH_TIMEOUT = 500L @Composable fun SplashScreen( diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/timers/TimerScreen.kt b/app/src/main/java/be/ugent/sel/studeez/screens/timers/TimerScreen.kt new file mode 100644 index 0000000..b7ca484 --- /dev/null +++ b/app/src/main/java/be/ugent/sel/studeez/screens/timers/TimerScreen.kt @@ -0,0 +1,4 @@ +package be.ugent.sel.studeez.screens.timers + +class TimerScreen { +} \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 021f3b1..b17c518 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -18,7 +18,6 @@ Passwords do not match. Already have an account? Log in. - Don\'t have an account yet? Sign up. Sign in @@ -31,6 +30,16 @@ Home Start session + + Tasks + + + Sessions + + + Profile + Unknown username + Log out Profile Picture