From 0099dd55236199002ae2324599ac9962136520cd Mon Sep 17 00:00:00 2001 From: Jays2Kings Date: Mon, 10 May 2021 17:32:27 -0400 Subject: [PATCH] Fix global search scrolling up one section after coming from manga details --- .../kanade/tachiyomi/ui/manga/MangaDetailsController.kt | 5 +++-- .../eu/kanade/tachiyomi/ui/manga/MangaHeaderHolder.kt | 5 +++++ .../java/eu/kanade/tachiyomi/ui/manga/MangaHeaderItem.kt | 9 +++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsController.kt index aa5ee5fcb7..4e6c500f3c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaDetailsController.kt @@ -472,10 +472,10 @@ class MangaDetailsController : override fun onChangeStarted(handler: ControllerChangeHandler, type: ControllerChangeType) { super.onChangeStarted(handler, type) - if (type == ControllerChangeType.PUSH_ENTER || type == ControllerChangeType.POP_ENTER) { + if (type.isEnter) { setActionBar(true) setStatusBarAndToolbar() - } else if (type == ControllerChangeType.PUSH_EXIT || type == ControllerChangeType.POP_EXIT) { + } else { if (router.backstack.lastOrNull()?.controller is DialogController) { return } @@ -485,6 +485,7 @@ class MangaDetailsController : } colorAnimator?.cancel() + getHeader()?.unbind() val colorSecondary = activity?.getResourceColor( R.attr.colorSecondary ) ?: Color.BLACK diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaHeaderHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaHeaderHolder.kt index 88aa8d1b2d..c04ccda591 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaHeaderHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaHeaderHolder.kt @@ -312,6 +312,11 @@ class MangaHeaderHolder( updateCover(manga) } + fun unbind() { + binding?.mangaSummary?.setTextIsSelectable(false) + binding?.mangaSummary?.clearFocus() + } + private fun MaterialButton.checked(checked: Boolean) { if (checked) { backgroundTintList = ColorStateList.valueOf( diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaHeaderItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaHeaderItem.kt index 336f6674da..a2c2d99994 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaHeaderItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaHeaderItem.kt @@ -41,6 +41,15 @@ class MangaHeaderItem(val manga: Manga, var startExpanded: Boolean) : else holder.bind(this, manga) } + override fun unbindViewHolder( + adapter: FlexibleAdapter>?, + holder: MangaHeaderHolder?, + position: Int + ) { + holder?.unbind() + super.unbindViewHolder(adapter, holder, position) + } + override fun equals(other: Any?): Boolean { return (this === other) }