From 0d65637d91e58cfd5a69475f84567a806be4a84f Mon Sep 17 00:00:00 2001 From: tdpeuter Date: Thu, 13 Apr 2023 13:06:13 +0200 Subject: [PATCH] #52 fix dankzij Lukas tysm --- .../common/composable/DrawerComposable.kt | 37 +------------------ .../sel/studeez/screens/home/HomeScreen.kt | 7 +--- .../sel/studeez/screens/home/HomeViewModel.kt | 9 +---- .../primary_screen/PrimaryScreenComposable.kt | 15 +++++--- .../primary_screen/PrimaryScreenUiState.kt | 14 ------- 5 files changed, 14 insertions(+), 68 deletions(-) delete mode 100644 app/src/main/java/be/ugent/sel/studeez/screens/templates/primary_screen/PrimaryScreenUiState.kt diff --git a/app/src/main/java/be/ugent/sel/studeez/common/composable/DrawerComposable.kt b/app/src/main/java/be/ugent/sel/studeez/common/composable/DrawerComposable.kt index e52e300..776d96d 100644 --- a/app/src/main/java/be/ugent/sel/studeez/common/composable/DrawerComposable.kt +++ b/app/src/main/java/be/ugent/sel/studeez/common/composable/DrawerComposable.kt @@ -1,9 +1,7 @@ package be.ugent.sel.studeez.common.composable -import androidx.compose.foundation.Image import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* -import androidx.compose.material.Divider import androidx.compose.material.Icon import androidx.compose.material.Text import androidx.compose.material.icons.Icons @@ -13,25 +11,19 @@ import androidx.compose.material.icons.outlined.Info import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector -import androidx.compose.ui.res.painterResource -import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.tooling.preview.Preview import be.ugent.sel.studeez.R +import be.ugent.sel.studeez.data.local.models.User import be.ugent.sel.studeez.resources import be.ugent.sel.studeez.ui.theme.StudeezTheme @Composable fun Drawer( - currentUser: String, onLogoutClick: () -> Unit ) { Column(modifier = Modifier.fillMaxSize()) { - LoggedInUserCard(currentUser) - - Divider() - DrawerEntry( icon = Icons.Default.Home, text = resources().getString(R.string.home) @@ -87,39 +79,12 @@ fun DrawerEntry( } } -@Composable -fun LoggedInUserCard( - username: String -) { - Column() { - // TODO Profile picture of current user - Image( - painter = painterResource(id = R.drawable.ic_launcher_background), - contentDescription = stringResource(R.string.profile_picture_description) - ) - - Text(text = username) - - // TODO Description of user (normal user or something else?) - Text(text = stringResource(id = R.string.user_description)) - } -} - @Preview @Composable fun DrawerPreview() { StudeezTheme { Drawer( - "John Doe", {} ) } -} - -@Preview -@Composable -fun LoggedInUserCardPreview() { - StudeezTheme { - LoggedInUserCard("John Doe") - } } \ 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 index d4d3327..70f1880 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 @@ -1,10 +1,8 @@ package be.ugent.sel.studeez.screens.home -import androidx.compose.material.rememberScaffoldState import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.hilt.navigation.compose.hiltViewModel -import androidx.lifecycle.viewModelScope import be.ugent.sel.studeez.R import be.ugent.sel.studeez.common.composable.BasicButton import be.ugent.sel.studeez.common.ext.basicButton @@ -16,12 +14,9 @@ fun HomeScreen( openAndPopUp: (String, String) -> Unit, viewModel: HomeViewModel = hiltViewModel() ) { - PrimaryScreen( title = resources().getString(R.string.home), - openDrawer = { viewModel.openDrawer() }, - onLogoutClick = { viewModel.onLogoutClick(openAndPopUp) }, - viewModel.scaffoldState + onLogoutClick = { viewModel.onLogoutClick(openAndPopUp) } ) { BasicButton(R.string.start_session, Modifier.basicButton()) { viewModel.onStartSessionClick(openAndPopUp) 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 67b5b81..6a791d0 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 @@ -2,12 +2,14 @@ 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.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 @@ -15,7 +17,6 @@ class HomeViewModel @Inject constructor( private val accountDAO: AccountDAO, logService: LogService ) : StudeezViewModel(logService) { - val scaffoldState: ScaffoldState = rememberScaffoldState() fun onStartSessionClick(openAndPopUp: (String, String) -> Unit) { // TODO openAndPopUp(StudeezDestinations.xxx, StudeezDestinations.HOME_SCREEN) @@ -27,10 +28,4 @@ class HomeViewModel @Inject constructor( openAndPopup(LOGIN_SCREEN, HOME_SCREEN) } } - - fun openDrawer() { - launchCatching { - scaffoldState.drawerState.open() - } - } } \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/templates/primary_screen/PrimaryScreenComposable.kt b/app/src/main/java/be/ugent/sel/studeez/screens/templates/primary_screen/PrimaryScreenComposable.kt index a6468d4..5694515 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/templates/primary_screen/PrimaryScreenComposable.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/templates/primary_screen/PrimaryScreenComposable.kt @@ -5,22 +5,26 @@ import androidx.compose.material.* 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.common.composable.CollapsedAddButton import be.ugent.sel.studeez.common.composable.Drawer import be.ugent.sel.studeez.common.composable.NavigationBar +import be.ugent.sel.studeez.data.local.models.User import be.ugent.sel.studeez.resources import be.ugent.sel.studeez.ui.theme.StudeezTheme +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.launch @Composable fun PrimaryScreen( title: String, - openDrawer: () -> Unit, onLogoutClick: () -> Unit, - scaffoldState: ScaffoldState, content: @Composable (PaddingValues) -> Unit ) { + val scaffoldState: ScaffoldState = rememberScaffoldState() + val coroutineScope: CoroutineScope = rememberCoroutineScope() Scaffold( scaffoldState = scaffoldState, @@ -28,7 +32,9 @@ fun PrimaryScreen( topBar = { TopAppBar( title = { Text(text = title) }, navigationIcon = { - IconButton(onClick = { openDrawer() }) { + IconButton(onClick = { + coroutineScope.launch { scaffoldState.drawerState.open() } + }) { Icon( imageVector = Icons.Default.Menu, contentDescription = resources().getString(R.string.menu) @@ -39,7 +45,6 @@ fun PrimaryScreen( drawerContent = { Drawer( - currentUser = "TODO John Doe", onLogoutClick = { onLogoutClick() } ) }, @@ -59,7 +64,7 @@ fun PrimaryScreenPreview() { StudeezTheme { PrimaryScreen( "Preview screen", - {}, {}, rememberScaffoldState() + {} ) {} } } \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/templates/primary_screen/PrimaryScreenUiState.kt b/app/src/main/java/be/ugent/sel/studeez/screens/templates/primary_screen/PrimaryScreenUiState.kt deleted file mode 100644 index 93ede47..0000000 --- a/app/src/main/java/be/ugent/sel/studeez/screens/templates/primary_screen/PrimaryScreenUiState.kt +++ /dev/null @@ -1,14 +0,0 @@ -package be.ugent.sel.studeez.screens.templates.primary_screen - -import androidx.compose.material.ScaffoldState -import androidx.compose.material.rememberScaffoldState -import androidx.compose.runtime.Composable -import androidx.compose.runtime.remember -import be.ugent.sel.studeez.StudeezAppstate - -@Composable -fun rememberPrimaryScreenState( - scaffoldState: ScaffoldState = rememberScaffoldState() -) = remember(scaffoldState) { - StudeezAppstate(scaffoldState) -} \ No newline at end of file