Refactored search functionality according to the new wrapper

This commit is contained in:
MohitMali 2023-07-24 14:35:42 +05:30
parent 7a6447c5da
commit 75adf8185a
4 changed files with 8 additions and 31 deletions

View File

@ -100,9 +100,8 @@ play {
dependencies {
androidTestImplementation(Libs.leakcanary_android_instrumentation)
implementation(files("/home/hp-pc03/Desktop/lib-debug.aar"))
api(fileTree(mapOf("include" to "*.aar", "dir" to "libs")))
implementation("com.getkeepsafe.relinker:relinker:1.4.5")
implementation(files("C:\\Users\\aades\\OneDrive\\Documents/lib-debug.aar"))
}
task("generateVersionCodeAndName") {
val file = File("VERSION_INFO")

View File

@ -65,10 +65,9 @@ dependencies {
// } else {
// api(fileTree(mapOf("include" to "*.aar", "dir" to "libs")))
// }
api(fileTree(mapOf("include" to "*.aar", "dir" to "libs")))
implementation(files("/home/hp-pc03/Desktop/lib-debug.aar"))
implementation("com.getkeepsafe.relinker:relinker:1.4.5")
implementation(files("C:\\Users\\aades\\OneDrive\\Documents/lib-debug.aar"))
api(fileTree(mapOf("include" to "*.aar", "dir" to "libs")))
// Document File
implementation(Libs.select_folder_document_file)

View File

@ -137,7 +137,7 @@ class ZimFileReader constructor(
}
fun searchSuggestions(prefix: String): Search =
searcher.search(Query(prefix).setQuery(prefix))
searcher.search(Query(prefix))
fun getNextSuggestion(suggestionSearch: SuggestionSearch?): List<SearchSuggestion> {
val suggestionList = mutableListOf<SearchSuggestion>()

View File

@ -24,7 +24,6 @@ import kotlinx.coroutines.yield
import org.kiwix.kiwixmobile.core.reader.ZimFileReader
import org.kiwix.kiwixmobile.core.search.adapter.SearchListItem
import org.kiwix.kiwixmobile.core.search.adapter.SearchListItem.ZimSearchResultListItem
import org.kiwix.libzim.SuggestionSearch
import javax.inject.Inject
interface SearchResultGenerator {
@ -53,32 +52,12 @@ class ZimSearchResultGenerator @Inject constructor() : SearchResultGenerator {
val suggestionList = mutableListOf<ZimSearchResultListItem>()
val suggestionIterator =
this?.getResults(0, this.estimatedMatches.toInt())
if (suggestionIterator != null) {
while (suggestionIterator.hasNext()) {
suggestionList.add(ZimSearchResultListItem(suggestionIterator.title))
suggestionIterator?.let {
while (it.hasNext()) {
val entry = it.next()
suggestionList.add(ZimSearchResultListItem(entry.title))
}
}
return@run suggestionList
}
private suspend fun suggestionResults(
reader: ZimFileReader?,
suggestionSearch: SuggestionSearch?
) = createList {
yield()
reader?.getNextSuggestion(suggestionSearch)
?.let {
ZimSearchResultListItem(it[0].title)
}
}
.distinct()
.toList()
private suspend fun <T> createList(readSearchResult: suspend () -> T?): List<T> {
return mutableListOf<T>().apply {
while (true) {
readSearchResult()?.let(::add) ?: break
}
}
}
}