Fix Genre tag search while browsing related-titles or from Feed Screen

This commit is contained in:
Cuong Tran 2024-06-04 03:51:16 +07:00 committed by Cuong M. Tran
parent d5c57d1ee3
commit b6b7114c29
No known key found for this signature in database
GPG key ID: 733AA7624B9315C2

View file

@ -525,19 +525,21 @@ class MangaScreen(
return
}
when (val previousController = navigator.items[navigator.size - 2]) {
navigator.popUntil { screen ->
navigator.size < 2 || screen is BrowseSourceScreen ||
screen is HomeScreen || screen is SourceFeedScreen
}
when (val previousController = navigator.lastItem) {
is HomeScreen -> {
navigator.pop()
previousController.search(query)
}
is BrowseSourceScreen -> {
navigator.pop()
previousController.search(query)
}
// SY -->
is SourceFeedScreen -> {
navigator.pop()
navigator.replace(BrowseSourceScreen(previousController.sourceId, query))
navigator.push(BrowseSourceScreen(previousController.sourceId, query))
}
// SY <--
}
@ -553,13 +555,24 @@ class MangaScreen(
return
}
val previousController = navigator.items[navigator.size - 2]
if (previousController is BrowseSourceScreen && source is HttpSource) {
navigator.pop()
previousController.searchGenre(genreName)
} else {
performSearch(navigator, genreName, global = false)
var previousController: cafe.adriel.voyager.core.screen.Screen
var idx = navigator.size - 2
while (idx >= 0) {
previousController = navigator.items[idx--]
if (previousController is BrowseSourceScreen && source is HttpSource) {
navigator.popUntil { navigator.size == idx + 2 }
previousController.searchGenre(genreName)
return
}
if (previousController is SourceFeedScreen && source is HttpSource) {
navigator.popUntil { navigator.size == idx + 2 }
navigator.push(BrowseSourceScreen(previousController.sourceId, ""))
previousController = navigator.lastItem as BrowseSourceScreen
previousController.searchGenre(genreName)
return
}
}
performSearch(navigator, genreName, global = false)
}
/**