diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaAllInOneHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaAllInOneHolder.kt index d8246453e..795748a5c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaAllInOneHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaAllInOneHolder.kt @@ -131,11 +131,27 @@ class MangaAllInOneHolder( } .launchIn(adapter.delegate.controllerScope) + binding.mangaArtist.longClicks() + .onEach { + adapter.delegate.copyToClipboard(binding.mangaArtistLabel.text.toString(), binding.mangaArtist.text.toString()) + } + .launchIn(adapter.delegate.controllerScope) + + binding.mangaArtist.clicks() + .onEach { + var text = binding.mangaArtist.text.toString() + if (adapter.delegate.isEHentaiBasedSource()) { + text = adapter.delegate.wrapTag("artist", text) + } + adapter.delegate.performGlobalSearch(text) + } + .launchIn(adapter.delegate.controllerScope) + binding.mangaAuthor.longClicks() .onEach { // EXH Special case E-Hentai/ExHentai to ignore author field (unused) if (!adapter.delegate.isEHentaiBasedSource()) { - adapter.delegate.copyToClipboard("author", binding.mangaAuthor.text.toString()) + adapter.delegate.copyToClipboard(binding.mangaAuthorLabel.text.toString(), binding.mangaAuthor.text.toString()) } } .launchIn(adapter.delegate.controllerScope) @@ -187,12 +203,18 @@ class MangaAllInOneHolder( manga.title } - // Update author/artist TextView. - val authors = listOf(manga.author, manga.artist).filter { !it.isNullOrBlank() }.distinct() - binding.mangaAuthor.text = if (authors.isEmpty()) { + // Update artist TextView. + binding.mangaArtist.text = if (manga.artist.isNullOrBlank()) { itemView.context.getString(R.string.unknown) } else { - authors.joinToString(", ") + manga.artist + } + + // Update author TextView. + binding.mangaAuthor.text = if (manga.author.isNullOrBlank()) { + itemView.context.getString(R.string.unknown) + } else { + manga.author } // If manga source is known update source TextView. diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoController.kt index 6935003e2..95c3b840f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoController.kt @@ -176,6 +176,25 @@ class MangaInfoController(private val fromSource: Boolean = false) : } .launchIn(scope) + binding.mangaArtist.longClicks() + .onEach { + activity?.copyToClipboard( + binding.mangaArtistLabel.text.toString(), + binding.mangaArtist.text.toString() + ) + } + .launchIn(scope) + + binding.mangaArtist.clicks() + .onEach { + var text = binding.mangaArtist.text.toString() + if (isEHentaiBasedSource()) { + text = wrapTag("artist", text) + } + performGlobalSearch(text) + } + .launchIn(scope) + binding.mangaAuthor.longClicks() .onEach { // EXH Special case E-Hentai/ExHentai to ignore author field (unused) @@ -318,12 +337,18 @@ class MangaInfoController(private val fromSource: Boolean = false) : manga.title } - // Update author/artist TextView. - val authors = listOf(manga.author, manga.artist).filter { !it.isNullOrBlank() }.distinct() - binding.mangaAuthor.text = if (authors.isEmpty()) { + // Update artist TextView. + binding.mangaArtist.text = if (manga.artist.isNullOrBlank()) { view.context.getString(R.string.unknown) } else { - authors.joinToString(", ") + manga.artist + } + + // Update author TextView. + binding.mangaAuthor.text = if (manga.author.isNullOrBlank()) { + view.context.getString(R.string.unknown) + } else { + manga.author } // If manga source is known update source TextView. diff --git a/app/src/main/res/layout-land/manga_all_in_one_header.xml b/app/src/main/res/layout-land/manga_all_in_one_header.xml index b31bacbb5..2e880ae57 100644 --- a/app/src/main/res/layout-land/manga_all_in_one_header.xml +++ b/app/src/main/res/layout-land/manga_all_in_one_header.xml @@ -70,26 +70,62 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + + + + app:layout_constraintTop_toBottomOf="@+id/manga_author_label" /> + + + app:layout_constraintTop_toBottomOf="@+id/manga_artist_label" /> + + + + + app:layout_constraintTop_toBottomOf="@+id/manga_author_label" /> + + + app:layout_constraintTop_toBottomOf="@+id/manga_artist_label" /> + + + + + app:layout_constraintTop_toBottomOf="@+id/manga_author_label" /> + + + app:layout_constraintTop_toBottomOf="@+id/manga_artist_label" /> + + + + + app:layout_constraintTop_toBottomOf="@+id/manga_author_label" /> + + + app:layout_constraintTop_toBottomOf="@+id/manga_artist_label" /> Title Added to library Removed from library + Author + Artist Chapters Last chapter Updated