diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaHeaderHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaHeaderHolder.kt index e7ed3903da..3f045d2cee 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaHeaderHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaHeaderHolder.kt @@ -12,6 +12,7 @@ import androidx.core.graphics.ColorUtils import androidx.core.view.isInvisible import androidx.core.view.isVisible import coil.request.CachePolicy +import eu.kanade.tachiyomi.util.system.isInNightMode import com.google.android.material.button.MaterialButton import com.google.android.material.chip.Chip import eu.kanade.tachiyomi.R @@ -26,6 +27,7 @@ import eu.kanade.tachiyomi.util.system.getResourceColor import eu.kanade.tachiyomi.util.system.isLTR import eu.kanade.tachiyomi.util.view.resetStrokeColor import eu.kanade.tachiyomi.util.view.updateLayoutParams +import kotlin.math.abs @SuppressLint("ClickableViewAccessibility") class MangaHeaderHolder( @@ -315,6 +317,29 @@ class MangaHeaderHolder( private fun setGenreTags(binding: MangaHeaderItemBinding, manga: Manga) { with(binding.mangaGenresTags) { removeAllViews() + val dark = context.isInNightMode() + val accentArray = FloatArray(3) + val onAccentArray = FloatArray(3) + ColorUtils.colorToHSL(context.getResourceColor(R.attr.colorAccent), accentArray) + ColorUtils.colorToHSL(context.getResourceColor(R.attr.colorOnAccent), onAccentArray) + val downloadedColor = ColorUtils.setAlphaComponent( + ColorUtils.HSLToColor( + floatArrayOf( + accentArray[0], + accentArray[1], + // fun math just for good contrast + ((if (dark) 0.35f else 0.87f) + (abs(onAccentArray[2] - 0.5f) * .7f)) / 2f + ) + ), + 165 + ) + val textColor = ColorUtils.HSLToColor( + floatArrayOf( + accentArray[0], + 0.8f, + if (dark) 0.925f else 0.15f + ) + ) if (manga.genre.isNullOrBlank().not()) { (manga.getGenres() ?: emptyList()).map { genreText -> val chip = LayoutInflater.from(binding.root.context).inflate( @@ -324,6 +349,8 @@ class MangaHeaderHolder( ) as Chip val id = View.generateViewId() chip.id = id + chip.chipBackgroundColor = ColorStateList.valueOf(downloadedColor) + chip.setTextColor(textColor) chip.text = genreText chip.setOnClickListener { adapter.delegate.tagClicked(genreText) diff --git a/app/src/main/res/layout-sw600dp-land/manga_header_item.xml b/app/src/main/res/layout-sw600dp-land/manga_header_item.xml index de4af2018f..e060b0c8ff 100644 --- a/app/src/main/res/layout-sw600dp-land/manga_header_item.xml +++ b/app/src/main/res/layout-sw600dp-land/manga_header_item.xml @@ -301,6 +301,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" + app:chipSpacingVertical="-12dp" android:layout_marginTop="8dp" android:layout_marginEnd="16dp" android:visibility="gone" diff --git a/app/src/main/res/layout-sw600dp-port/manga_header_item.xml b/app/src/main/res/layout-sw600dp-port/manga_header_item.xml index a77b5f9b3e..0c69f68147 100644 --- a/app/src/main/res/layout-sw600dp-port/manga_header_item.xml +++ b/app/src/main/res/layout-sw600dp-port/manga_header_item.xml @@ -299,6 +299,7 @@ android:id="@+id/manga_genres_tags" android:layout_width="0dp" android:layout_height="wrap_content" + app:chipSpacingVertical="-12dp" android:layout_marginStart="16dp" android:layout_marginTop="8dp" android:layout_marginEnd="16dp" diff --git a/app/src/main/res/layout/manga_header_item.xml b/app/src/main/res/layout/manga_header_item.xml index a72cde5b28..fe8e3986c2 100644 --- a/app/src/main/res/layout/manga_header_item.xml +++ b/app/src/main/res/layout/manga_header_item.xml @@ -301,6 +301,7 @@ android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginTop="8dp" + app:chipSpacingVertical="-12dp" android:layout_marginEnd="16dp" android:visibility="gone" app:layout_constrainedHeight="true" diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 689d156b51..c8311e84c2 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -298,13 +298,18 @@ - + + +