Allow searching for multiple extensions at once (closes #5922)

This commit is contained in:
arkon 2021-10-09 16:59:18 -04:00
parent b8d8cf19d9
commit ea34ba53b9

View file

@ -144,7 +144,7 @@ open class ExtensionController :
.filter { router.backstack.lastOrNull()?.controller == this }
.onEach {
query = it.toString()
drawExtensions()
updateExtensionsList()
}
.launchIn(viewScope)
}
@ -179,7 +179,7 @@ open class ExtensionController :
fun setExtensions(extensions: List<ExtensionItem>) {
binding.swipeRefresh.isRefreshing = false
this.extensions = extensions
drawExtensions()
updateExtensionsList()
// Update badge on parent controller tab
val ctrl = parentController as BrowseController
@ -187,11 +187,14 @@ open class ExtensionController :
ctrl.extensionListUpdateRelay.call(true)
}
private fun drawExtensions() {
private fun updateExtensionsList() {
if (query.isNotBlank()) {
val extensionNames = query.split(",")
adapter?.updateDataSet(
extensions.filter {
it.extension.name.contains(query, ignoreCase = true)
extensionNames.any { queriedName ->
it.extension.name.contains(queriedName, ignoreCase = true)
}
}
)
} else {