Use single layout for grid badges

(cherry picked from commit c95a269460)

# Conflicts:
#	app/src/main/res/layout/source_comfortable_grid_item.xml
#	app/src/main/res/layout/source_compact_grid_item.xml
This commit is contained in:
arkon
2021-10-09 17:26:53 -04:00
committed by Jobobby04
parent 155b36a0bc
commit 38f1af7577
8 changed files with 139 additions and 237 deletions
@@ -45,11 +45,11 @@ class SourceComfortableGridHolder(private val view: View, private val adapter: F
binding.thumbnail.alpha = if (manga.favorite) 0.3f else 1.0f
// For rounded corners
binding.leftBadges.clipToOutline = true
binding.rightBadges.clipToOutline = true
binding.badges.leftBadges.clipToOutline = true
binding.badges.rightBadges.clipToOutline = true
// Set favorite badge
binding.favoriteText.isVisible = manga.favorite
binding.badges.favoriteText.isVisible = manga.favorite
setImage(manga)
}
@@ -10,7 +10,7 @@ import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.coil.MangaCoverFetcher
import eu.kanade.tachiyomi.data.database.models.Manga
import eu.kanade.tachiyomi.databinding.SourceComfortableGridItemBinding
import eu.kanade.tachiyomi.databinding.SourceCompactGridItemBinding
import eu.kanade.tachiyomi.widget.StateImageViewTarget
import exh.metadata.metadata.MangaDexSearchMetadata
import exh.metadata.metadata.base.RaisedSearchMetadata
@@ -23,10 +23,10 @@ import exh.metadata.metadata.base.RaisedSearchMetadata
* @param adapter the adapter handling this holder.
* @constructor creates a new catalogue holder.
*/
open class SourceGridHolder(private val view: View, private val adapter: FlexibleAdapter<*>) :
SourceHolder<SourceComfortableGridItemBinding>(view, adapter) {
open class SourceCompactGridHolder(private val view: View, private val adapter: FlexibleAdapter<*>) :
SourceHolder<SourceCompactGridItemBinding>(view, adapter) {
override val binding = SourceComfortableGridItemBinding.bind(view)
override val binding = SourceCompactGridItemBinding.bind(view)
/**
* Method called from [CatalogueAdapter.onBindViewHolder]. It updates the data for this
@@ -42,11 +42,11 @@ open class SourceGridHolder(private val view: View, private val adapter: Flexibl
binding.thumbnail.alpha = if (manga.favorite) 0.3f else 1.0f
// For rounded corners
binding.leftBadges.clipToOutline = true
binding.rightBadges.clipToOutline = true
binding.badges.leftBadges.clipToOutline = true
binding.badges.rightBadges.clipToOutline = true
// Set favorite badge
binding.favoriteText.isVisible = manga.favorite
binding.badges.favoriteText.isVisible = manga.favorite
setImage(manga)
}
@@ -58,7 +58,7 @@ class SourceItem(val manga: Manga, private val displayMode: Preference<DisplayMo
Gravity.BOTTOM
)
}
SourceGridHolder(view, adapter)
SourceCompactGridHolder(view, adapter)
}
DisplayModeSetting.COMFORTABLE_GRID /* SY --> */, DisplayModeSetting.NO_TITLE_GRID /* SY <-- */ -> {
val binding = SourceComfortableGridItemBinding.bind(view)
@@ -61,26 +61,26 @@ class LibraryComfortableGridHolder(
// SY <--
// For rounded corners
binding.leftBadges.clipToOutline = true
binding.rightBadges.clipToOutline = true
binding.badges.leftBadges.clipToOutline = true
binding.badges.rightBadges.clipToOutline = true
// Update the unread count and its visibility.
with(binding.unreadText) {
with(binding.badges.unreadText) {
isVisible = item.unreadCount > 0
text = item.unreadCount.toString()
}
// Update the download count and its visibility.
with(binding.downloadText) {
with(binding.badges.downloadText) {
isVisible = item.downloadCount > 0
text = item.downloadCount.toString()
}
// Update the source language and its visibility
with(binding.languageText) {
with(binding.badges.languageText) {
isVisible = item.sourceLanguage.isNotEmpty()
text = item.sourceLanguage
}
// set local visibility if its local manga
binding.localText.isVisible = item.isLocal
binding.badges.localText.isVisible = item.isLocal
// SY -->
binding.playLayout.isVisible = (item.manga.unread > 0 && item.startReadingButton)
@@ -57,26 +57,26 @@ class LibraryCompactGridHolder(
binding.title.text = item.manga.title
// For rounded corners
binding.leftBadges.clipToOutline = true
binding.rightBadges.clipToOutline = true
binding.badges.leftBadges.clipToOutline = true
binding.badges.rightBadges.clipToOutline = true
// Update the unread count and its visibility.
with(binding.unreadText) {
with(binding.badges.unreadText) {
isVisible = item.unreadCount > 0
text = item.unreadCount.toString()
}
// Update the download count and its visibility.
with(binding.downloadText) {
with(binding.badges.downloadText) {
isVisible = item.downloadCount > 0
text = item.downloadCount.toString()
}
// Update the source language and its visibility
with(binding.languageText) {
with(binding.badges.languageText) {
isVisible = item.sourceLanguage.isNotEmpty()
text = item.sourceLanguage
}
// set local visibility if its local manga
binding.localText.isVisible = item.isLocal
binding.badges.localText.isVisible = item.isLocal
// SY -->
binding.playLayout.isVisible = (item.manga.unread > 0 && item.startReadingButton)