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
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(

View File

@ -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.