From 726daab357f7534fa34a2250e2a2280ca26a9cc2 Mon Sep 17 00:00:00 2001 From: mendejumrukovski Date: Wed, 22 Mar 2023 01:06:53 +0100 Subject: [PATCH] add toolbar to category items screen --- .../categories/details/CategoryItemsScreen.kt | 55 ++++++++++++++----- app/src/main/res/values/strings.xml | 2 + 2 files changed, 43 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/jumrukovski/quotescompose/ui/screen/categories/details/CategoryItemsScreen.kt b/app/src/main/java/com/jumrukovski/quotescompose/ui/screen/categories/details/CategoryItemsScreen.kt index 3bbc7d5..2a274b6 100644 --- a/app/src/main/java/com/jumrukovski/quotescompose/ui/screen/categories/details/CategoryItemsScreen.kt +++ b/app/src/main/java/com/jumrukovski/quotescompose/ui/screen/categories/details/CategoryItemsScreen.kt @@ -6,43 +6,70 @@ import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp +import com.jumrukovski.quotescompose.R import com.jumrukovski.quotescompose.data.model.QuoteDTO import com.jumrukovski.quotescompose.navigation.ScreenWithArgument +import com.jumrukovski.quotescompose.ui.common.Toolbar import com.jumrukovski.quotescompose.ui.theme.PrimaryBackgroundColor +import com.jumrukovski.quotescompose.ui.theme.QuotesComposeTheme @Composable -fun CategoryItemsScreen(viewModel: CategoryItemsViewModel,categoryName:String, - onNavigateToQuoteDetails: (QuoteDTO) -> Unit) { +fun CategoryItemsScreen( + viewModel: CategoryItemsViewModel, categoryName: String, + onNavigateToQuoteDetails: (QuoteDTO) -> Unit +) { val categoryItems by viewModel.items.collectAsState() - LaunchedEffect(key1 = ScreenWithArgument.CategoryDetail.argument){ + LaunchedEffect(key1 = ScreenWithArgument.CategoryDetail.argument) { viewModel.getQuotesForTag(categoryName) } + QuotesComposeTheme { + Scaffold( + topBar = { + Toolbar( + stringResource( + id = R.string.screen_category_items_title, + categoryName + ) + ) + }, + content = { paddingValues -> + Contents(paddingValues, categoryItems, onNavigateToQuoteDetails) + }) + } +} + +@Composable +private fun Contents( + paddingValues: PaddingValues, + categoryItems: List, + onNavigateToQuoteDetails: (QuoteDTO) -> Unit +) { Box( modifier = Modifier .fillMaxWidth() + .padding(paddingValues) .background(MaterialTheme.colorScheme.PrimaryBackgroundColor) .padding(16.dp) ) { - Column { - Text(text = categoryName) - LazyColumn(){ - items(categoryItems){ - Box(modifier = Modifier - .fillMaxSize() - .clickable { onNavigateToQuoteDetails(it) }){ - Column { - Text(text = it.content) - Spacer(modifier = Modifier.height(20.dp)) - } + LazyColumn { + items(categoryItems) { + Box(modifier = Modifier + .fillMaxSize() + .clickable { onNavigateToQuoteDetails(it) }) { + Column { + Text(text = it.content) + Spacer(modifier = Modifier.height(20.dp)) } } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e9fb6a8..32879f7 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -11,4 +11,6 @@ Quote Detail Category Detail Random Quote + + Tag: %1$s \ No newline at end of file