diff --git a/app/src/main/java/org/kiwix/kiwixmobile/search/AutoCompleteAdapter.java b/app/src/main/java/org/kiwix/kiwixmobile/search/AutoCompleteAdapter.java index 4a939aac3..da4f223eb 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/search/AutoCompleteAdapter.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/search/AutoCompleteAdapter.java @@ -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 implements Filtera zimReaderContainer.searchSuggestions(query, 200); String suggestion; String suggestionUrl; + HashMap results; List 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); diff --git a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/ZimFileReader.kt b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/ZimFileReader.kt index eecfea347..93f92714f 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/ZimFileReader.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/ZimFileReader.kt @@ -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? { + val title = JNIKiwixString() + val url = JNIKiwixString() + if (jniKiwixReader.getNextSuggestion(title, url)) { + val results = HashMap() + 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) }