Replace HashMap with a data class for search results

This commit is contained in:
Aditya-Sood 2019-10-24 00:49:45 +05:30
parent de0b295d3b
commit 24969014ce
2 changed files with 8 additions and 9 deletions

View File

@ -26,13 +26,13 @@ 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;
import org.kiwix.kiwixlib.JNIKiwixSearcher;
import org.kiwix.kiwixmobile.KiwixApplication;
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
import org.kiwix.kiwixmobile.zim_manager.NextSuggestion;
import org.kiwix.kiwixmobile.zim_manager.ZimReaderContainer;
public class AutoCompleteAdapter extends ArrayAdapter<String> implements Filterable {
@ -118,11 +118,11 @@ public class AutoCompleteAdapter extends ArrayAdapter<String> implements Filtera
zimReaderContainer.searchSuggestions(query, 200);
String suggestion;
String suggestionUrl;
HashMap<String, String> results;
NextSuggestion results;
List<String> alreadyAdded = new ArrayList<>();
while ((results = zimReaderContainer.getNextSuggestion()) != null) {
suggestion = results.get("title");
suggestionUrl = results.get("url");
suggestion = results.getTitle();
suggestionUrl = results.getUrl();
if (!alreadyAdded.contains(suggestionUrl)) {
alreadyAdded.add(suggestionUrl);

View File

@ -90,14 +90,11 @@ class ZimFileReader(
fun searchSuggestions(prefix: String, count: Int) =
jniKiwixReader.searchSuggestions(prefix, count)
fun getNextSuggestion(): HashMap<String, String>? {
fun getNextSuggestion(): NextSuggestion? {
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
return NextSuggestion(title.value, url.value)
} else {
return null
}
@ -248,3 +245,5 @@ private val String.mimeType: String?
get() = MimeTypeMap.getSingleton().getMimeTypeFromExtension(
MimeTypeMap.getFileExtensionFromUrl(this)
)
data class NextSuggestion(val title: String, val url: String)