mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-11-14 05:05:06 +01:00
Cleanup/Refactoring of Chapter colors
Also using util in recents
This commit is contained in:
parent
1519395267
commit
f6318d83ee
@ -2,13 +2,11 @@ package eu.kanade.tachiyomi.ui.library
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.view.View
|
||||
import com.google.android.material.card.MaterialCardView
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.util.system.contextCompatColor
|
||||
import eu.kanade.tachiyomi.util.system.dpToPx
|
||||
import eu.kanade.tachiyomi.util.view.gone
|
||||
import eu.kanade.tachiyomi.util.view.isNotGone
|
||||
import eu.kanade.tachiyomi.util.view.isVisible
|
||||
import eu.kanade.tachiyomi.util.view.updatePaddingRelative
|
||||
import eu.kanade.tachiyomi.util.view.visibleIf
|
||||
@ -20,20 +18,20 @@ class LibraryBadge @JvmOverloads constructor(context: Context, attrs: AttributeS
|
||||
fun setUnreadDownload(unread: Int, downloads: Int, showTotalChapters: Boolean) {
|
||||
// Update the unread count and its visibility.
|
||||
|
||||
val unreadBadgeBackground = when (showTotalChapters) {
|
||||
true -> context.contextCompatColor(R.color.total_badge)
|
||||
false -> context.contextCompatColor(R.color.unread_badge)
|
||||
}
|
||||
val unreadBadgeBackground = context.contextCompatColor(
|
||||
if (showTotalChapters) R.color.total_badge else R.color.unread_badge
|
||||
)
|
||||
|
||||
with(unread_text) {
|
||||
visibleIf(unread > 0 || unread == -1 || showTotalChapters)
|
||||
|
||||
if (!isVisible()) { return@with }
|
||||
text = if (unread == -1) "0" else unread.toString()
|
||||
setTextColor(
|
||||
when (unread == -1 && !showTotalChapters) {
|
||||
true -> context.contextCompatColor(R.color.unread_badge) // hide the 0 in the badge
|
||||
false -> context.contextCompatColor(R.color.unread_badge_text)
|
||||
}
|
||||
context.contextCompatColor(
|
||||
// hide the badge text when preference is only show badge
|
||||
if (unread == -1 && !showTotalChapters) R.color.unread_badge
|
||||
else R.color.unread_badge_text
|
||||
)
|
||||
)
|
||||
setBackgroundColor(unreadBadgeBackground)
|
||||
}
|
||||
@ -41,6 +39,7 @@ class LibraryBadge @JvmOverloads constructor(context: Context, attrs: AttributeS
|
||||
// Update the download count or local status and its visibility.
|
||||
with(download_text) {
|
||||
visibleIf(downloads == -2 || downloads > 0)
|
||||
if (!isVisible()) { return@with }
|
||||
text = if (downloads == -2) {
|
||||
resources.getString(R.string.local)
|
||||
} else {
|
||||
@ -49,10 +48,10 @@ class LibraryBadge @JvmOverloads constructor(context: Context, attrs: AttributeS
|
||||
}
|
||||
|
||||
// Show the badge card if unread or downloads exists
|
||||
this.visibleIf(download_text.isVisible() || unread_text.isNotGone())
|
||||
visibleIf(download_text.isVisible() || unread_text.isVisible())
|
||||
|
||||
// Show the angles divider if both unread and downloads exists
|
||||
unread_angle.visibleIf(download_text.isVisible() && unread_text.isNotGone())
|
||||
unread_angle.visibleIf(download_text.isVisible() && unread_text.isVisible())
|
||||
|
||||
unread_angle.setColorFilter(unreadBadgeBackground)
|
||||
if (unread_angle.isVisible()) {
|
||||
|
@ -8,7 +8,6 @@ import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.ui.manga.chapter.BaseChapterAdapter
|
||||
import eu.kanade.tachiyomi.ui.manga.chapter.ChapterItem
|
||||
import eu.kanade.tachiyomi.util.chapter.ChapterUtil
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
import java.text.DecimalFormat
|
||||
import java.text.DecimalFormatSymbols
|
||||
@ -25,14 +24,6 @@ class MangaDetailsAdapter(
|
||||
val delegate: MangaDetailsInterface = controller
|
||||
val presenter = controller.presenter
|
||||
|
||||
val readColor = ChapterUtil.readColor(context)
|
||||
|
||||
val unreadColor = ChapterUtil.unreadColor(context)
|
||||
|
||||
val bookmarkedColor = ChapterUtil.bookmarkedColor(context)
|
||||
|
||||
val bookmarkedAndReadColor = ChapterUtil.bookmarkedAndReadColor(context)
|
||||
|
||||
val decimalFormat = DecimalFormat("#.###", DecimalFormatSymbols()
|
||||
.apply { decimalSeparator = '.' })
|
||||
|
||||
|
@ -7,7 +7,6 @@ import eu.kanade.tachiyomi.data.download.model.Download
|
||||
import eu.kanade.tachiyomi.source.LocalSource
|
||||
import eu.kanade.tachiyomi.ui.manga.MangaDetailsAdapter
|
||||
import eu.kanade.tachiyomi.util.chapter.ChapterUtil
|
||||
import eu.kanade.tachiyomi.util.system.contextCompatDrawable
|
||||
import eu.kanade.tachiyomi.util.view.gone
|
||||
import eu.kanade.tachiyomi.util.view.visibleIf
|
||||
import kotlinx.android.synthetic.main.chapters_item.*
|
||||
@ -41,13 +40,7 @@ class ChapterHolder(
|
||||
localSource = manga.source == LocalSource.ID
|
||||
download_button.visibleIf(!localSource && !isLocked)
|
||||
|
||||
var chapterColor = when {
|
||||
isLocked -> adapter.unreadColor
|
||||
chapter.bookmark && chapter.read -> adapter.bookmarkedAndReadColor
|
||||
chapter.bookmark -> adapter.bookmarkedColor
|
||||
chapter.read -> adapter.readColor
|
||||
else -> adapter.unreadColor
|
||||
}
|
||||
val chapterColor = ChapterUtil.chapterColor(itemView.context, item, isLocked)
|
||||
|
||||
// Set correct text color
|
||||
chapter_title.setTextColor(chapterColor)
|
||||
@ -75,30 +68,20 @@ class ChapterHolder(
|
||||
chapter.scanlator?.isNotBlank()?.let { statuses.add(chapter.scanlator!!) }
|
||||
|
||||
if (front_view.translationX == 0f) {
|
||||
read.setImageDrawable(
|
||||
read.context.contextCompatDrawable(
|
||||
when (item.read) {
|
||||
true -> R.drawable.ic_eye_off_24dp
|
||||
false -> R.drawable.ic_eye_24dp
|
||||
}
|
||||
)
|
||||
)
|
||||
bookmark.setImageDrawable(
|
||||
read.context.contextCompatDrawable(
|
||||
when (item.bookmark) {
|
||||
true -> R.drawable.ic_bookmark_off_24dp
|
||||
false -> R.drawable.ic_bookmark_24dp
|
||||
}
|
||||
read.setImageResource(
|
||||
if (item.read) R.drawable.ic_eye_off_24dp else R.drawable.ic_eye_24dp
|
||||
)
|
||||
bookmark.setImageResource(
|
||||
if (item.bookmark) R.drawable.ic_bookmark_off_24dp else R.drawable.ic_bookmark_24dp
|
||||
)
|
||||
}
|
||||
// this will color the scanlator the same bookmarks
|
||||
chapter_scanlator.setTextColor(chapterColor)
|
||||
chapter_scanlator.text = statuses.joinToString(" • ")
|
||||
|
||||
val status = when (adapter.isSelected(adapterPosition)) {
|
||||
true -> Download.CHECKED
|
||||
false -> item.status
|
||||
val status = when {
|
||||
adapter.isSelected(adapterPosition) -> Download.CHECKED
|
||||
else -> item.status
|
||||
}
|
||||
|
||||
notifyStatus(status, item.isLocked, item.progress)
|
||||
|
@ -12,7 +12,6 @@ import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.database.models.Chapter
|
||||
import eu.kanade.tachiyomi.data.database.models.Manga
|
||||
import eu.kanade.tachiyomi.util.chapter.ChapterUtil
|
||||
import eu.kanade.tachiyomi.util.system.contextCompatDrawable
|
||||
import java.text.DecimalFormat
|
||||
import java.text.DecimalFormatSymbols
|
||||
|
||||
@ -38,29 +37,16 @@ class ReaderChapterItem(val chapter: Chapter, val manga: Manga, val isCurrent: B
|
||||
}
|
||||
|
||||
class ViewHolder(view: View) : FastAdapter.ViewHolder<ReaderChapterItem>(view) {
|
||||
var chapterTitle: TextView = view.findViewById(R.id.chapter_title)
|
||||
var chapterSubtitle: TextView = view.findViewById(R.id.chapter_scanlator)
|
||||
private var chapterTitle: TextView = view.findViewById(R.id.chapter_title)
|
||||
private var chapterSubtitle: TextView = view.findViewById(R.id.chapter_scanlator)
|
||||
var bookmarkButton: FrameLayout = view.findViewById(R.id.bookmark_layout)
|
||||
var bookmarkImage: ImageView = view.findViewById(R.id.bookmark_image)
|
||||
|
||||
private var readColor = ChapterUtil.readColor(view.context)
|
||||
private var unreadColor = ChapterUtil.unreadColor(view.context)
|
||||
private var bookmarkColor = ChapterUtil.bookmarkedColor(view.context)
|
||||
private var bookmarkReadColor = ChapterUtil.bookmarkedAndReadColor(view.context)
|
||||
|
||||
private var unbookmark = view.context.contextCompatDrawable(R.drawable.ic_bookmark_border_24dp)
|
||||
private var bookmark = view.context.contextCompatDrawable(R.drawable.ic_bookmark_24dp)
|
||||
private var bookmarkImage: ImageView = view.findViewById(R.id.bookmark_image)
|
||||
|
||||
override fun bindView(item: ReaderChapterItem, payloads: List<Any>) {
|
||||
val chapter = item.chapter
|
||||
val manga = item.manga
|
||||
|
||||
var chapterColor = when {
|
||||
chapter.bookmark && chapter.read -> bookmarkReadColor
|
||||
chapter.bookmark -> bookmarkColor
|
||||
chapter.read && !item.isCurrent -> readColor
|
||||
else -> unreadColor
|
||||
}
|
||||
val chapterColor = ChapterUtil.chapterColor(itemView.context, item.chapter)
|
||||
|
||||
chapterTitle.setTextColor(chapterColor)
|
||||
chapterTitle.text = when (manga.displayMode) {
|
||||
@ -86,16 +72,12 @@ class ReaderChapterItem(val chapter: Chapter, val manga: Manga, val isCurrent: B
|
||||
// match color of the chapter title
|
||||
chapterSubtitle.setTextColor(chapterColor)
|
||||
|
||||
bookmarkImage.setImageDrawable(when (chapter.bookmark) {
|
||||
true -> bookmark
|
||||
false -> unbookmark
|
||||
})
|
||||
bookmarkImage.setImageResource(
|
||||
if (chapter.bookmark) R.drawable.ic_bookmark_border_24dp
|
||||
else R.drawable.ic_bookmark_24dp
|
||||
)
|
||||
|
||||
val drawableColor = when {
|
||||
chapter.bookmark && chapter.read -> bookmarkReadColor
|
||||
chapter.bookmark -> bookmarkColor
|
||||
else -> readColor
|
||||
}
|
||||
val drawableColor = ChapterUtil.bookmarkColor(itemView.context, chapter)
|
||||
|
||||
DrawableCompat.setTint(bookmarkImage.drawable, drawableColor)
|
||||
|
||||
|
@ -6,6 +6,7 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.glide.GlideApp
|
||||
import eu.kanade.tachiyomi.ui.manga.chapter.BaseChapterHolder
|
||||
import eu.kanade.tachiyomi.util.chapter.ChapterUtil
|
||||
import eu.kanade.tachiyomi.util.system.getResourceColor
|
||||
import kotlinx.android.synthetic.main.download_button.*
|
||||
import kotlinx.android.synthetic.main.recent_chapters_item.*
|
||||
@ -77,14 +78,9 @@ class RecentChapterHolder(private val view: View, private val adapter: RecentCha
|
||||
.into(manga_cover)
|
||||
}
|
||||
|
||||
// Check if chapter is read and set correct color
|
||||
if (item.chapter.read) {
|
||||
chapter_title.setTextColor(readColor)
|
||||
title.setTextColor(readColor)
|
||||
} else {
|
||||
chapter_title.setTextColor(unreadColor)
|
||||
title.setTextColor(unreadColor)
|
||||
}
|
||||
val chapterColor = ChapterUtil.chapterColor(itemView.context, item)
|
||||
chapter_title.setTextColor(chapterColor)
|
||||
title.setTextColor(chapterColor)
|
||||
|
||||
// Set chapter status
|
||||
notifyStatus(item.status, item.progress)
|
||||
|
@ -10,7 +10,7 @@ import eu.kanade.tachiyomi.data.download.model.Download
|
||||
import eu.kanade.tachiyomi.data.glide.GlideApp
|
||||
import eu.kanade.tachiyomi.source.LocalSource
|
||||
import eu.kanade.tachiyomi.ui.manga.chapter.BaseChapterHolder
|
||||
import eu.kanade.tachiyomi.util.system.getResourceColor
|
||||
import eu.kanade.tachiyomi.util.chapter.ChapterUtil
|
||||
import eu.kanade.tachiyomi.util.view.visibleIf
|
||||
import kotlinx.android.synthetic.main.download_button.*
|
||||
import kotlinx.android.synthetic.main.recent_manga_item.*
|
||||
@ -38,20 +38,14 @@ class RecentMangaHolder(
|
||||
|
||||
fun bind(item: RecentMangaItem) {
|
||||
download_button.visibleIf(item.mch.manga.source != LocalSource.ID)
|
||||
|
||||
title.apply {
|
||||
text = item.chapter.name
|
||||
setTextColor(when {
|
||||
item.chapter.bookmark -> context.getResourceColor(R.attr.colorAccent)
|
||||
item.chapter.read -> context.getResourceColor(android.R.attr.textColorHint)
|
||||
else -> context.getResourceColor(android.R.attr.textColorPrimary)
|
||||
})
|
||||
setTextColor(ChapterUtil.chapterColor(context, item))
|
||||
}
|
||||
subtitle.apply {
|
||||
text = item.mch.manga.title
|
||||
setTextColor(when {
|
||||
item.chapter.read -> context.getResourceColor(android.R.attr.textColorHint)
|
||||
else -> context.getResourceColor(android.R.attr.textColorPrimary)
|
||||
})
|
||||
setTextColor(ChapterUtil.readColor(context, item))
|
||||
}
|
||||
val notValidNum = item.mch.chapter.chapter_number <= 0
|
||||
body.text = when {
|
||||
|
@ -18,12 +18,36 @@ class ChapterUtil {
|
||||
}
|
||||
}
|
||||
|
||||
fun readColor(context: Context): Int = context.contextCompatColor(R.color.read_chapter)
|
||||
fun chapterColor(context: Context, chapter: Chapter, hideStatus: Boolean = false): Int {
|
||||
return when {
|
||||
hideStatus -> unreadColor(context)
|
||||
chapter.bookmark && chapter.read -> bookmarkedAndReadColor(context)
|
||||
chapter.bookmark -> bookmarkedColor(context)
|
||||
chapter.read -> readColor(context)
|
||||
else -> unreadColor(context)
|
||||
}
|
||||
}
|
||||
|
||||
fun unreadColor(context: Context): Int = context.contextCompatColor(R.color.unread_chapter)
|
||||
fun readColor(context: Context, chapter: Chapter): Int {
|
||||
return when {
|
||||
chapter.read -> readColor(context)
|
||||
else -> unreadColor(context)
|
||||
}
|
||||
}
|
||||
|
||||
fun bookmarkedColor(context: Context): Int = context.contextCompatColor(R.color.bookmarked_chapter)
|
||||
fun bookmarkColor(context: Context, chapter: Chapter): Int {
|
||||
return when {
|
||||
chapter.bookmark -> bookmarkedColor(context)
|
||||
else -> readColor(context)
|
||||
}
|
||||
}
|
||||
|
||||
fun bookmarkedAndReadColor(context: Context): Int = ColorUtils.setAlphaComponent(context.contextCompatColor(R.color.bookmarked_chapter), 150)
|
||||
private fun readColor(context: Context): Int = context.contextCompatColor(R.color.read_chapter)
|
||||
|
||||
private fun unreadColor(context: Context): Int = context.contextCompatColor(R.color.unread_chapter)
|
||||
|
||||
private fun bookmarkedColor(context: Context): Int = context.contextCompatColor(R.color.bookmarked_chapter)
|
||||
|
||||
private fun bookmarkedAndReadColor(context: Context): Int = ColorUtils.setAlphaComponent(context.contextCompatColor(R.color.bookmarked_chapter), 150)
|
||||
}
|
||||
}
|
||||
|
@ -101,10 +101,6 @@ inline fun View.isVisible(): Boolean {
|
||||
return visibility == View.VISIBLE
|
||||
}
|
||||
|
||||
inline fun View.isNotGone(): Boolean {
|
||||
return visibility != View.GONE
|
||||
}
|
||||
|
||||
inline fun View.visibleIf(show: Boolean) {
|
||||
visibility = if (show) View.VISIBLE else View.GONE
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user