diff --git a/app/src/main/java/com/hippo/ehviewer/client/EhUtils.kt b/app/src/main/java/com/hippo/ehviewer/client/EhUtils.kt index 2ed7b3fac..945ed2065 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/EhUtils.kt +++ b/app/src/main/java/com/hippo/ehviewer/client/EhUtils.kt @@ -15,6 +15,10 @@ */ package com.hippo.ehviewer.client +import android.content.Context +import androidx.compose.runtime.Composable +import androidx.compose.ui.platform.LocalContext +import com.google.android.material.color.MaterialColors import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.data.GalleryInfo import java.util.regex.Pattern @@ -92,8 +96,8 @@ object EhUtils { return CATEGORY_VALUES.getOrDefault(type, CATEGORY_VALUES[UNKNOWN])!![0] } - fun getCategoryColor(category: Int): Int { - return when (category) { + fun getCategoryColor(context: Context, category: Int): Int { + val primary = when (category) { DOUJINSHI -> BG_COLOR_DOUJINSHI MANGA -> BG_COLOR_MANGA ARTIST_CG -> BG_COLOR_ARTIST_CG @@ -106,8 +110,12 @@ object EhUtils { MISC -> BG_COLOR_MISC else -> BG_COLOR_UNKNOWN }.toInt() + return MaterialColors.harmonizeWithPrimary(context, primary) } + @Composable + fun getCategoryColor(category: Int) = getCategoryColor(LocalContext.current, category) + fun signOut() { EhCookieStore.signOut() Settings.avatar = null diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.kt index 12870b5be..e93ec6fcd 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.kt @@ -880,7 +880,7 @@ class DownloadsScene : val newCategoryText = EhUtils.getCategory(info.category) if (!newCategoryText.contentEquals(category.text)) { category.text = newCategoryText - category.setBackgroundColor(EhUtils.getCategoryColor(info.category)) + category.setBackgroundColor(EhUtils.getCategoryColor(requireContext(), info.category)) } bindForState(info) }