mirror of
https://github.com/null2264/yokai.git
synced 2025-06-21 10:44:42 +00:00
Fix chapter search clearing in manga details
This commit is contained in:
parent
a432366172
commit
2a0924cea5
1 changed files with 37 additions and 24 deletions
|
@ -53,7 +53,6 @@ import eu.kanade.tachiyomi.data.image.coil.getBestColor
|
||||||
import eu.kanade.tachiyomi.data.notification.NotificationReceiver
|
import eu.kanade.tachiyomi.data.notification.NotificationReceiver
|
||||||
import eu.kanade.tachiyomi.data.track.model.TrackSearch
|
import eu.kanade.tachiyomi.data.track.model.TrackSearch
|
||||||
import eu.kanade.tachiyomi.databinding.MangaDetailsControllerBinding
|
import eu.kanade.tachiyomi.databinding.MangaDetailsControllerBinding
|
||||||
import eu.kanade.tachiyomi.source.LocalSource
|
|
||||||
import eu.kanade.tachiyomi.source.Source
|
import eu.kanade.tachiyomi.source.Source
|
||||||
import eu.kanade.tachiyomi.source.SourceManager
|
import eu.kanade.tachiyomi.source.SourceManager
|
||||||
import eu.kanade.tachiyomi.source.online.HttpSource
|
import eu.kanade.tachiyomi.source.online.HttpSource
|
||||||
|
@ -101,6 +100,7 @@ import eu.kanade.tachiyomi.util.system.setCustomTitleAndMessage
|
||||||
import eu.kanade.tachiyomi.util.system.toast
|
import eu.kanade.tachiyomi.util.system.toast
|
||||||
import eu.kanade.tachiyomi.util.view.activityBinding
|
import eu.kanade.tachiyomi.util.view.activityBinding
|
||||||
import eu.kanade.tachiyomi.util.view.getText
|
import eu.kanade.tachiyomi.util.view.getText
|
||||||
|
import eu.kanade.tachiyomi.util.view.isControllerVisible
|
||||||
import eu.kanade.tachiyomi.util.view.requestFilePermissionsSafe
|
import eu.kanade.tachiyomi.util.view.requestFilePermissionsSafe
|
||||||
import eu.kanade.tachiyomi.util.view.scrollViewWith
|
import eu.kanade.tachiyomi.util.view.scrollViewWith
|
||||||
import eu.kanade.tachiyomi.util.view.setOnQueryTextChangeListener
|
import eu.kanade.tachiyomi.util.view.setOnQueryTextChangeListener
|
||||||
|
@ -570,10 +570,13 @@ class MangaDetailsController :
|
||||||
// fetch cover again in case the user set a new cover while reading
|
// fetch cover again in case the user set a new cover while reading
|
||||||
setPaletteColor()
|
setPaletteColor()
|
||||||
}
|
}
|
||||||
val isCurrentController = router?.backstack?.lastOrNull()?.controller ==
|
if (isControllerVisible) {
|
||||||
this
|
|
||||||
if (isCurrentController) {
|
|
||||||
setStatusBarAndToolbar()
|
setStatusBarAndToolbar()
|
||||||
|
val searchView =
|
||||||
|
activityBinding?.toolbar?.menu?.findItem(R.id.action_search)?.actionView as? SearchView
|
||||||
|
searchView?.post {
|
||||||
|
setSearchViewListener(searchView)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -717,7 +720,7 @@ class MangaDetailsController :
|
||||||
adapter?.setChapters(presenter.chapters)
|
adapter?.setChapters(presenter.chapters)
|
||||||
tabletAdapter?.notifyItemChanged(0)
|
tabletAdapter?.notifyItemChanged(0)
|
||||||
addMangaHeader()
|
addMangaHeader()
|
||||||
activity?.invalidateOptionsMenu()
|
updateMenuVisibility(activityBinding?.toolbar?.menu)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun updateChapters(chapters: List<ChapterItem>) {
|
fun updateChapters(chapters: List<ChapterItem>) {
|
||||||
|
@ -731,7 +734,7 @@ class MangaDetailsController :
|
||||||
adapter?.setChapters(chapters)
|
adapter?.setChapters(chapters)
|
||||||
addMangaHeader()
|
addMangaHeader()
|
||||||
colorToolbar(binding.recycler.canScrollVertically(-1))
|
colorToolbar(binding.recycler.canScrollVertically(-1))
|
||||||
activity?.invalidateOptionsMenu()
|
updateMenuVisibility(activityBinding?.toolbar?.menu)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun addMangaHeader() {
|
private fun addMangaHeader() {
|
||||||
|
@ -971,21 +974,7 @@ class MangaDetailsController :
|
||||||
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
||||||
inflater.inflate(R.menu.manga_details, menu)
|
inflater.inflate(R.menu.manga_details, menu)
|
||||||
colorToolbar(binding.recycler.canScrollVertically(-1))
|
colorToolbar(binding.recycler.canScrollVertically(-1))
|
||||||
val editItem = menu.findItem(R.id.action_edit)
|
updateMenuVisibility(menu)
|
||||||
editItem.isVisible = presenter.manga.favorite && !presenter.isLockedFromSearch
|
|
||||||
menu.findItem(R.id.action_download).isVisible = !presenter.isLockedFromSearch &&
|
|
||||||
!presenter.manga.isLocal()
|
|
||||||
menu.findItem(R.id.action_mark_all_as_read).isVisible =
|
|
||||||
presenter.getNextUnreadChapter() != null && !presenter.isLockedFromSearch
|
|
||||||
menu.findItem(R.id.action_mark_all_as_unread).isVisible =
|
|
||||||
presenter.anyRead() && !presenter.isLockedFromSearch
|
|
||||||
menu.findItem(R.id.action_remove_downloads).isVisible =
|
|
||||||
presenter.hasDownloads() && !presenter.isLockedFromSearch &&
|
|
||||||
!presenter.manga.isLocal()
|
|
||||||
menu.findItem(R.id.remove_non_bookmarked).isVisible =
|
|
||||||
presenter.hasBookmark() && !presenter.isLockedFromSearch
|
|
||||||
menu.findItem(R.id.action_migrate).isVisible = !presenter.isLockedFromSearch &&
|
|
||||||
manga?.source != LocalSource.ID && presenter.manga.favorite
|
|
||||||
menu.findItem(R.id.action_migrate).title = view?.context?.getString(
|
menu.findItem(R.id.action_migrate).title = view?.context?.getString(
|
||||||
R.string.migrate_,
|
R.string.migrate_,
|
||||||
presenter.manga.seriesType(view!!.context),
|
presenter.manga.seriesType(view!!.context),
|
||||||
|
@ -998,13 +987,19 @@ class MangaDetailsController :
|
||||||
val searchItem = menu.findItem(R.id.action_search)
|
val searchItem = menu.findItem(R.id.action_search)
|
||||||
val searchView = searchItem.actionView as SearchView
|
val searchView = searchItem.actionView as SearchView
|
||||||
searchView.queryHint = resources?.getString(R.string.search_chapters)
|
searchView.queryHint = resources?.getString(R.string.search_chapters)
|
||||||
searchItem.collapseActionView()
|
if (query.isNotEmpty() && (!searchItem.isActionViewExpanded || searchView.query != query)) {
|
||||||
if (query.isNotEmpty()) {
|
|
||||||
searchItem.expandActionView()
|
searchItem.expandActionView()
|
||||||
|
setSearchViewListener(searchView)
|
||||||
searchView.setQuery(query, true)
|
searchView.setQuery(query, true)
|
||||||
searchView.clearFocus()
|
searchView.clearFocus()
|
||||||
|
} else {
|
||||||
|
setSearchViewListener(searchView)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
searchItem.fixExpand(onExpand = { invalidateMenuOnExpand() })
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun setSearchViewListener(searchView: SearchView?) {
|
||||||
setOnQueryTextChangeListener(searchView) {
|
setOnQueryTextChangeListener(searchView) {
|
||||||
query = it ?: ""
|
query = it ?: ""
|
||||||
if (!isTablet) {
|
if (!isTablet) {
|
||||||
|
@ -1016,7 +1011,25 @@ class MangaDetailsController :
|
||||||
adapter?.performFilter()
|
adapter?.performFilter()
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
searchItem.fixExpand(onExpand = { invalidateMenuOnExpand() })
|
}
|
||||||
|
|
||||||
|
private fun updateMenuVisibility(menu: Menu?) {
|
||||||
|
menu ?: return
|
||||||
|
val editItem = menu.findItem(R.id.action_edit)
|
||||||
|
editItem?.isVisible = presenter.manga.favorite && !presenter.isLockedFromSearch
|
||||||
|
menu.findItem(R.id.action_download)?.isVisible = !presenter.isLockedFromSearch &&
|
||||||
|
!presenter.manga.isLocal()
|
||||||
|
menu.findItem(R.id.action_mark_all_as_read)?.isVisible =
|
||||||
|
presenter.getNextUnreadChapter() != null && !presenter.isLockedFromSearch
|
||||||
|
menu.findItem(R.id.action_mark_all_as_unread)?.isVisible =
|
||||||
|
presenter.anyRead() && !presenter.isLockedFromSearch
|
||||||
|
menu.findItem(R.id.action_remove_downloads)?.isVisible =
|
||||||
|
presenter.hasDownloads() && !presenter.isLockedFromSearch &&
|
||||||
|
!presenter.manga.isLocal()
|
||||||
|
menu.findItem(R.id.remove_non_bookmarked)?.isVisible =
|
||||||
|
presenter.hasBookmark() && !presenter.isLockedFromSearch
|
||||||
|
menu.findItem(R.id.action_migrate)?.isVisible = !presenter.isLockedFromSearch &&
|
||||||
|
!presenter.manga.isLocal() && presenter.manga.favorite
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue