Handle toolbar title in manga details on tablets similar to on phones

This commit is contained in:
arkon 2021-05-24 16:28:50 -04:00
parent b47face2f8
commit 47f865aa72
2 changed files with 16 additions and 15 deletions

View file

@ -253,6 +253,15 @@ class MangaController :
// Tablet layout // Tablet layout
binding.infoRecycler?.let { binding.infoRecycler?.let {
it.adapter = mangaInfoAdapter it.adapter = mangaInfoAdapter
it.scrollEvents()
.onEach { updateToolbarTitleAlpha() }
.launchIn(viewScope)
// Delayed in case we need to jump to chapters
it.post {
updateToolbarTitleAlpha()
}
} }
binding.chaptersRecycler?.let { binding.chaptersRecycler?.let {
it.adapter = ConcatAdapter(chaptersHeaderAdapter, chaptersAdapter) it.adapter = ConcatAdapter(chaptersHeaderAdapter, chaptersAdapter)
@ -284,19 +293,17 @@ class MangaController :
} }
private fun updateToolbarTitleAlpha(alpha: Int? = null) { private fun updateToolbarTitleAlpha(alpha: Int? = null) {
if (binding.fullRecycler == null) { val scrolledList = binding.fullRecycler ?: binding.infoRecycler!!
return
}
val calculatedAlpha = when { val calculatedAlpha = when {
// Specific alpha provided // Specific alpha provided
alpha != null -> alpha alpha != null -> alpha
// First item isn't in view, full opacity // 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 // 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( (activity as? MainActivity)?.binding?.toolbar?.setTitleTextColor(

View file

@ -195,17 +195,11 @@ class MangaInfoHeaderAdapter(
*/ */
private fun setMangaInfo(manga: Manga, source: Source?) { private fun setMangaInfo(manga: Manga, source: Source?) {
// Update full title TextView. // Update full title TextView.
with(binding.mangaFullTitle) { binding.mangaFullTitle.text = if (manga.title.isBlank()) {
if (isTablet) {
isVisible = false
} else {
text = if (manga.title.isBlank()) {
view.context.getString(R.string.unknown) view.context.getString(R.string.unknown)
} else { } else {
manga.title manga.title
} }
}
}
// Update author TextView. // Update author TextView.
binding.mangaAuthor.text = if (manga.author.isNullOrBlank()) { binding.mangaAuthor.text = if (manga.author.isNullOrBlank()) {