Increment: Use the url returning alternative of getNextSuggestion() provided by kiwix-lib

This commit is contained in:
Aditya-Sood 2019-09-26 14:01:42 +05:30
parent cca60df69f
commit de0b295d3b
2 changed files with 18 additions and 4 deletions

View File

@ -26,6 +26,7 @@ import android.widget.Filter;
import android.widget.Filterable;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import javax.inject.Inject;
import org.kiwix.kiwixlib.JNIKiwix;
@ -117,9 +118,12 @@ public class AutoCompleteAdapter extends ArrayAdapter<String> implements Filtera
zimReaderContainer.searchSuggestions(query, 200);
String suggestion;
String suggestionUrl;
HashMap<String, String> results;
List<String> alreadyAdded = new ArrayList<>();
while ((suggestion = zimReaderContainer.getNextSuggestion()) != null) {
suggestionUrl = zimReaderContainer.getPageUrlFromTitle(suggestion);
while ((results = zimReaderContainer.getNextSuggestion()) != null) {
suggestion = results.get("title");
suggestionUrl = results.get("url");
if (!alreadyAdded.contains(suggestionUrl)) {
alreadyAdded.add(suggestionUrl);
data.add(suggestion);

View File

@ -90,8 +90,18 @@ class ZimFileReader(
fun searchSuggestions(prefix: String, count: Int) =
jniKiwixReader.searchSuggestions(prefix, count)
fun getNextSuggestion(): String? =
valueOfJniStringAfter(jniKiwixReader::getNextSuggestion)
fun getNextSuggestion(): HashMap<String, String>? {
val title = JNIKiwixString()
val url = JNIKiwixString()
if (jniKiwixReader.getNextSuggestion(title, url)) {
val results = HashMap<String, String>()
results.put("title", title.value)
results.put("url", url.value)
return results
} else {
return null
}
}
fun getPageUrlFrom(title: String): String? =
valueOfJniStringAfter { jniKiwixReader.getPageUrlFromTitle(title, it) }