From 4381237eb346b033b9c4fd1270aa96c86df57223 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Sun, 23 Feb 2025 23:17:14 +0800 Subject: [PATCH] Use different color for selected items --- .../ehviewer/ui/screen/DownloadsScreen.kt | 9 +++------ .../ehviewer/ui/screen/DrawerContentStyle.kt | 18 +++++++++++++++--- .../ehviewer/ui/screen/FavoritesScreen.kt | 2 +- .../ehviewer/ui/screen/GalleryListScreen.kt | 5 ++--- 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt index 94e06748a..e174ab2de 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt @@ -312,12 +312,11 @@ fun AnimatedVisibilityScope.DownloadsScreen(navigator: DestinationsNavigator) = switchLabel("") closeSheet() }, - tonalElevation = 1.dp, shadowElevation = 1.dp, headlineContent = { Text("$allName [$totalCount]") }, - colors = listItemOnDrawerColor(), + colors = listItemOnDrawerColor(filterState.label == ""), ) } item { @@ -326,12 +325,11 @@ fun AnimatedVisibilityScope.DownloadsScreen(navigator: DestinationsNavigator) = switchLabel(null) closeSheet() }, - tonalElevation = 1.dp, shadowElevation = 1.dp, headlineContent = { Text("$emptyLabelName [${downloadsCount.getOrDefault(null, 0)}]") }, - colors = listItemOnDrawerColor(), + colors = listItemOnDrawerColor(filterState.label == null), ) } @@ -385,7 +383,6 @@ fun AnimatedVisibilityScope.DownloadsScreen(navigator: DestinationsNavigator) = switchLabel(item) closeSheet() }, - tonalElevation = 1.dp, shadowElevation = elevation, headlineContent = { val name = if (filterMode == DownloadsFilterMode.ARTIST) getTranslation(label) else label @@ -437,7 +434,7 @@ fun AnimatedVisibilityScope.DownloadsScreen(navigator: DestinationsNavigator) = } } }, - colors = listItemOnDrawerColor(), + colors = listItemOnDrawerColor(filterState.label == item), ) } } diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DrawerContentStyle.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DrawerContentStyle.kt index eeb6e020a..6db5e04c4 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DrawerContentStyle.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DrawerContentStyle.kt @@ -1,17 +1,29 @@ package com.hippo.ehviewer.ui.screen +import androidx.compose.material3.DrawerDefaults import androidx.compose.material3.ListItemDefaults import androidx.compose.material3.MaterialTheme import androidx.compose.material3.TopAppBarDefaults import androidx.compose.runtime.Composable @Composable -fun listItemOnDrawerColor() = ListItemDefaults.colors( - containerColor = MaterialTheme.colorScheme.surfaceContainerLow, +fun selectedListItemColor() = ListItemDefaults.colors( + containerColor = MaterialTheme.colorScheme.secondaryContainer, + headlineColor = MaterialTheme.colorScheme.onSecondaryContainer, + trailingIconColor = MaterialTheme.colorScheme.onSecondaryContainer, ) +@Composable +fun listItemOnDrawerColor(selected: Boolean) = if (selected) { + selectedListItemColor() +} else { + ListItemDefaults.colors( + containerColor = DrawerDefaults.modalContainerColor, + ) +} + @Composable fun topBarOnDrawerColor() = TopAppBarDefaults.topAppBarColors( - containerColor = MaterialTheme.colorScheme.surfaceContainerLow, + containerColor = DrawerDefaults.modalContainerColor, scrolledContainerColor = MaterialTheme.colorScheme.surfaceContainerHigh, ) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesScreen.kt index 5aeac0a79..0e8048c0a 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesScreen.kt @@ -220,7 +220,7 @@ fun AnimatedVisibilityScope.FavouritesScreen(navigator: DestinationsNavigator) = Settings.recentFavCat = newCat launch { sheetState.close() } }, - colors = listItemOnDrawerColor(), + colors = listItemOnDrawerColor(urlBuilder.favCat == index - 2), ) } } diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt index cde23cb04..427865b22 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt @@ -263,7 +263,7 @@ fun AnimatedVisibilityScope.GalleryListScreen(lub: ListUrlBuilder, navigator: De headlineContent = { Text(text = name) }, - colors = listItemOnDrawerColor(), + colors = listItemOnDrawerColor(urlBuilder.keyword == keyword), ) } } @@ -415,7 +415,6 @@ fun AnimatedVisibilityScope.GalleryListScreen(lub: ListUrlBuilder, navigator: De } launch { sheetState.close() } }, - tonalElevation = 1.dp, shadowElevation = elevation, headlineContent = { Text(text = item.name) @@ -445,7 +444,7 @@ fun AnimatedVisibilityScope.GalleryListScreen(lub: ListUrlBuilder, navigator: De Icon(imageVector = Icons.Default.Reorder, contentDescription = null) } }, - colors = listItemOnDrawerColor(), + colors = listItemOnDrawerColor(false), ) } }