Use FilteredLibrary to search on manga details

instead of going back to library it'll open our new subscreen to search. Also giving that option on browse manga detail pages (only for tags, title/author will still directly global search)
This commit is contained in:
Jays2Kings 2022-12-17 03:05:17 -05:00
parent 3bf27c5da3
commit 698456f4b2

View file

@ -68,6 +68,7 @@ import eu.kanade.tachiyomi.ui.base.SmallToolbarInterface
import eu.kanade.tachiyomi.ui.base.controller.BaseCoroutineController import eu.kanade.tachiyomi.ui.base.controller.BaseCoroutineController
import eu.kanade.tachiyomi.ui.base.controller.DialogController import eu.kanade.tachiyomi.ui.base.controller.DialogController
import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder
import eu.kanade.tachiyomi.ui.library.FilteredLibraryController
import eu.kanade.tachiyomi.ui.library.LibraryController import eu.kanade.tachiyomi.ui.library.LibraryController
import eu.kanade.tachiyomi.ui.main.FloatingSearchInterface import eu.kanade.tachiyomi.ui.main.FloatingSearchInterface
import eu.kanade.tachiyomi.ui.main.HingeSupportedController import eu.kanade.tachiyomi.ui.main.HingeSupportedController
@ -1449,24 +1450,7 @@ class MangaDetailsController :
} }
override fun localSearch(text: String) { override fun localSearch(text: String) {
if (router.backstackSize < 2) { router.pushController(FilteredLibraryController(text, queryText = text).withFadeTransaction())
return
}
when (val previousController = router.backstack[router.backstackSize - 2].controller) {
is LibraryController -> {
router.handleBack()
previousController.search(text)
}
is RecentsController -> {
// Manually navigate to LibraryController
router.handleBack()
(activity as? MainActivity)?.goToTab(R.id.nav_library)
val controller =
router.getControllerWithTag(R.id.nav_library.toString()) as LibraryController
controller.search(text)
}
}
} }
fun sourceSearch(text: String) { fun sourceSearch(text: String) {
@ -1851,10 +1835,7 @@ class MangaDetailsController :
sourceMenuItem?.isVisible = searchSource && presenter.source is CatalogueSource sourceMenuItem?.isVisible = searchSource && presenter.source is CatalogueSource
val context = view?.context ?: return false val context = view?.context ?: return false
val localItem = menu?.findItem(R.id.action_local_search) ?: return true val localItem = menu?.findItem(R.id.action_local_search) ?: return true
localItem.isVisible = when (previousController) { localItem.isVisible = previousController !is FilteredLibraryController
is LibraryController, is RecentsController -> true
else -> false
}
val library = context.getString(R.string.library).lowercase(Locale.getDefault()) val library = context.getString(R.string.library).lowercase(Locale.getDefault())
localItem.title = context.getString(R.string.search_, library) localItem.title = context.getString(R.string.search_, library)
sourceMenuItem?.title = context.getString(R.string.search_, presenter.source.name) sourceMenuItem?.title = context.getString(R.string.search_, presenter.source.name)