From 47f865aa720c47faa7853f4be3065e3ba718f1ba Mon Sep 17 00:00:00 2001 From: arkon Date: Mon, 24 May 2021 16:28:50 -0400 Subject: [PATCH] Handle toolbar title in manga details on tablets similar to on phones --- .../tachiyomi/ui/manga/MangaController.kt | 17 ++++++++++++----- .../ui/manga/info/MangaInfoHeaderAdapter.kt | 14 ++++---------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt index ccdc4fa850..2cb7cc1eb6 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt @@ -253,6 +253,15 @@ class MangaController : // Tablet layout binding.infoRecycler?.let { it.adapter = mangaInfoAdapter + + it.scrollEvents() + .onEach { updateToolbarTitleAlpha() } + .launchIn(viewScope) + + // Delayed in case we need to jump to chapters + it.post { + updateToolbarTitleAlpha() + } } binding.chaptersRecycler?.let { it.adapter = ConcatAdapter(chaptersHeaderAdapter, chaptersAdapter) @@ -284,19 +293,17 @@ class MangaController : } private fun updateToolbarTitleAlpha(alpha: Int? = null) { - if (binding.fullRecycler == null) { - return - } + val scrolledList = binding.fullRecycler ?: binding.infoRecycler!! val calculatedAlpha = when { // Specific alpha provided alpha != null -> alpha // First item isn't in view, full opacity - ((binding.fullRecycler!!.layoutManager as LinearLayoutManager).findFirstVisibleItemPosition() > 0) -> 255 + ((scrolledList.layoutManager as LinearLayoutManager).findFirstVisibleItemPosition() > 0) -> 255 // Based on scroll amount when first item is in view - else -> min(binding.fullRecycler!!.computeVerticalScrollOffset(), 255) + else -> min(scrolledList.computeVerticalScrollOffset(), 255) } (activity as? MainActivity)?.binding?.toolbar?.setTitleTextColor( diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt index 8a156b4e2a..3c121fe5c1 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt @@ -195,16 +195,10 @@ class MangaInfoHeaderAdapter( */ private fun setMangaInfo(manga: Manga, source: Source?) { // Update full title TextView. - with(binding.mangaFullTitle) { - if (isTablet) { - isVisible = false - } else { - text = if (manga.title.isBlank()) { - view.context.getString(R.string.unknown) - } else { - manga.title - } - } + binding.mangaFullTitle.text = if (manga.title.isBlank()) { + view.context.getString(R.string.unknown) + } else { + manga.title } // Update author TextView.