diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 579b3f4d94..3fa83ef749 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -226,7 +226,7 @@ dependencies { implementation("com.github.kizitonwose:AndroidTagGroup:1.6.0") implementation("com.github.chrisbanes:PhotoView:2.3.0") - implementation("com.github.carlosesco:DirectionalViewPager:a844dbca0a") + implementation("com.github.tachiyomiorg:DirectionalViewPager:1.0.0") implementation("com.github.florent37:viewtooltip:1.2.2") implementation("com.getkeepsafe.taptargetview:taptargetview:1.13.0") 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 448a2b93fd..e7ed3903da 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 @@ -3,6 +3,7 @@ package eu.kanade.tachiyomi.ui.manga import android.annotation.SuppressLint import android.content.res.ColorStateList import android.graphics.Color +import android.view.LayoutInflater import android.view.MotionEvent import android.view.View import androidx.constraintlayout.widget.ConstraintLayout @@ -12,6 +13,7 @@ import androidx.core.view.isInvisible import androidx.core.view.isVisible import coil.request.CachePolicy import com.google.android.material.button.MaterialButton +import com.google.android.material.chip.Chip import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.image.coil.loadManga @@ -98,9 +100,7 @@ class MangaHeaderHolder( moreBgGradient.rotation = 180f } lessButton.setOnClickListener { collapseDesc() } - mangaGenresTags.setOnTagClickListener { - adapter.delegate.tagClicked(it) - } + webviewButton.setOnClickListener { adapter.delegate.openInWebView() } shareButton.setOnClickListener { adapter.delegate.prepareToShareManga() } favoriteButton.setOnClickListener { @@ -190,10 +190,7 @@ class MangaHeaderHolder( } binding.title.text = manga.title - if (manga.genre.isNullOrBlank().not()) binding.mangaGenresTags.setTags( - manga.genre?.split(",")?.map(String::trim) - ) - else binding.mangaGenresTags.setTags(emptyList()) + setGenreTags(binding, manga) if (manga.author == manga.artist || manga.artist.isNullOrBlank()) { binding.mangaAuthor.text = manga.author?.trim() @@ -315,6 +312,28 @@ class MangaHeaderHolder( updateCover(manga) } + private fun setGenreTags(binding: MangaHeaderItemBinding, manga: Manga) { + with(binding.mangaGenresTags) { + removeAllViews() + if (manga.genre.isNullOrBlank().not()) { + (manga.getGenres() ?: emptyList()).map { genreText -> + val chip = LayoutInflater.from(binding.root.context).inflate( + R.layout.genre_chip, + this, + false + ) as Chip + val id = View.generateViewId() + chip.id = id + chip.text = genreText + chip.setOnClickListener { + adapter.delegate.tagClicked(genreText) + } + this.addView(chip) + } + } + } + } + fun clearDescFocus() { binding ?: return binding.mangaSummary.setTextIsSelectable(false) 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 81e7c6fdf6..de4af2018f 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 @@ -296,19 +296,14 @@ android:layout_height="wrap_content" app:constraint_referenced_ids="manga_summary,manga_summary_label,sub_button_scroll" /> - - + \ No newline at end of file diff --git a/app/src/main/res/layout/manga_header_item.xml b/app/src/main/res/layout/manga_header_item.xml index c5a340ee8e..a72cde5b28 100644 --- a/app/src/main/res/layout/manga_header_item.xml +++ b/app/src/main/res/layout/manga_header_item.xml @@ -295,19 +295,14 @@ android:layout_height="wrap_content" app:constraint_referenced_ids="manga_summary,manga_summary_label,sub_button_scroll" /> - ?colorAccent + +