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,16 +195,10 @@ 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) { view.context.getString(R.string.unknown)
isVisible = false } else {
} else { manga.title
text = if (manga.title.isBlank()) {
view.context.getString(R.string.unknown)
} else {
manga.title
}
}
} }
// Update author TextView. // Update author TextView.