From 38f1af7577ba8581cb811b59c02798ac5d6cce16 Mon Sep 17 00:00:00 2001 From: arkon Date: Sat, 9 Oct 2021 17:26:53 -0400 Subject: [PATCH] Use single layout for grid badges (cherry picked from commit c95a269460e5aa611b2ca744770334d7ef8c6a55) # Conflicts: # app/src/main/res/layout/source_comfortable_grid_item.xml # app/src/main/res/layout/source_compact_grid_item.xml --- .../browse/SourceComfortableGridHolder.kt | 6 +- ...idHolder.kt => SourceCompactGridHolder.kt} | 14 +-- .../ui/browse/source/browse/SourceItem.kt | 2 +- .../library/LibraryComfortableGridHolder.kt | 12 +- .../ui/library/LibraryCompactGridHolder.kt | 12 +- .../layout/source_comfortable_grid_item.xml | 109 +---------------- .../res/layout/source_compact_grid_item.xml | 110 +---------------- .../res/layout/source_grid_item_badges.xml | 111 ++++++++++++++++++ 8 files changed, 139 insertions(+), 237 deletions(-) rename app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/{SourceGridHolder.kt => SourceCompactGridHolder.kt} (84%) create mode 100644 app/src/main/res/layout/source_grid_item_badges.xml diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceComfortableGridHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceComfortableGridHolder.kt index dd56e20f3..3a21e01cb 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceComfortableGridHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceComfortableGridHolder.kt @@ -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) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceGridHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceCompactGridHolder.kt similarity index 84% rename from app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceGridHolder.kt rename to app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceCompactGridHolder.kt index f5c3f9a2a..bcfd7c710 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceGridHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceCompactGridHolder.kt @@ -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(view, adapter) { +open class SourceCompactGridHolder(private val view: View, private val adapter: FlexibleAdapter<*>) : + SourceHolder(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) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceItem.kt index e7420e2a9..12495de2f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceItem.kt @@ -58,7 +58,7 @@ class SourceItem(val manga: Manga, private val displayMode: Preference */, DisplayModeSetting.NO_TITLE_GRID /* SY <-- */ -> { val binding = SourceComfortableGridItemBinding.bind(view) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryComfortableGridHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryComfortableGridHolder.kt index 508734a23..5a138e782 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryComfortableGridHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryComfortableGridHolder.kt @@ -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) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCompactGridHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCompactGridHolder.kt index 3c78b742a..97d78069b 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCompactGridHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCompactGridHolder.kt @@ -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) diff --git a/app/src/main/res/layout/source_comfortable_grid_item.xml b/app/src/main/res/layout/source_comfortable_grid_item.xml index e6c40a468..db8849ff8 100644 --- a/app/src/main/res/layout/source_comfortable_grid_item.xml +++ b/app/src/main/res/layout/source_comfortable_grid_item.xml @@ -57,114 +57,9 @@ app:tint="@android:color/white" /> - - - - - - - - - - - - - - - - - - - - - + layout="@layout/source_grid_item_badges" /> - - - - - - - - - - - - - - - - - - - - + layout="@layout/source_grid_item_badges" /> - \ No newline at end of file + diff --git a/app/src/main/res/layout/source_grid_item_badges.xml b/app/src/main/res/layout/source_grid_item_badges.xml new file mode 100644 index 000000000..b3ee9f72d --- /dev/null +++ b/app/src/main/res/layout/source_grid_item_badges.xml @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + +