Highlight selected list in drawer

pull/2617/head
Alex Baker 7 months ago
parent 33bab626e0
commit 287b106dd4

@ -72,6 +72,7 @@ class MainActivityViewModel @Inject constructor(
fun setFilter(filter: Filter) {
_state.update { it.copy(filter = filter) }
updateFilters()
defaultFilterProvider.lastViewedFilter = filter
}
@ -94,6 +95,7 @@ class MainActivityViewModel @Inject constructor(
}
fun updateFilters() = viewModelScope.launch(Dispatchers.Default) {
val selected = state.value.filter
filterProvider
.drawerItems()
.map { item ->
@ -109,6 +111,7 @@ class MainActivityViewModel @Inject constructor(
Timber.e(e)
0
},
selected = item == selected,
shareCount = if (item is CaldavFilter) item.principals else 0,
type = { item },
)

@ -6,6 +6,7 @@ import androidx.compose.animation.core.Spring
import androidx.compose.animation.core.animateFloatAsState
import androidx.compose.animation.core.spring
import androidx.compose.animation.core.tween
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
@ -82,7 +83,10 @@ fun TaskListDrawer(
) {
items(items = filters) {
when (it) {
is DrawerItem.Filter -> FilterItem(item = it, onClick = { onClick(it) })
is DrawerItem.Filter -> FilterItem(
item = it,
onClick = { onClick(it) }
)
is DrawerItem.Header -> HeaderItem(
item = it,
canAdd = it.canAdd,
@ -138,6 +142,14 @@ private fun FilterItem(
onClick: () -> Unit,
) {
MenuRow(
modifier = Modifier
.background(
if (item.selected)
MaterialTheme.colors.onSurface.copy(alpha = .1f)
else
Color.Transparent
)
.clickable(onClick = onClick),
onClick = onClick,
) {
if (item.icon != -1) {
@ -263,12 +275,13 @@ private fun HeaderItem(
@Composable
private fun MenuRow(
modifier: Modifier = Modifier,
padding: PaddingValues = PaddingValues(horizontal = 16.dp),
onClick: () -> Unit,
content: @Composable RowScope.() -> Unit,
) {
Row(
modifier = Modifier
modifier = modifier
.clickable(onClick = onClick)
.height(48.dp)
.padding(padding)

Loading…
Cancel
Save