|
|
|
package org.purplei2p.lightning.search.suggestions;
|
|
|
|
|
|
|
|
import android.app.Application;
|
|
|
|
import android.support.annotation.NonNull;
|
|
|
|
|
|
|
|
import org.json.JSONArray;
|
|
|
|
|
|
|
|
import java.io.InputStream;
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
import org.purplei2p.lightning.R;
|
|
|
|
import org.purplei2p.lightning.database.HistoryItem;
|
|
|
|
import org.purplei2p.lightning.utils.FileUtils;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* The search suggestions provider for the DuckDuckGo search engine.
|
|
|
|
*/
|
|
|
|
public final class LegworkSuggestionsModel extends BaseSuggestionsModel {
|
|
|
|
|
|
|
|
@NonNull private static final String ENCODING = "UTF-8";
|
|
|
|
@NonNull private final String mSearchSubtitle;
|
|
|
|
|
|
|
|
public LegworkSuggestionsModel(@NonNull Application application) {
|
|
|
|
super(application, ENCODING);
|
|
|
|
mSearchSubtitle = application.getString(R.string.suggestion);
|
|
|
|
}
|
|
|
|
|
|
|
|
@NonNull
|
|
|
|
@Override
|
|
|
|
protected String createQueryUrl(@NonNull String query, @NonNull String language) {
|
|
|
|
return "http://legwork.i2p/suggest.json?query=" + query;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected void parseResults(@NonNull InputStream inputStream, @NonNull List<HistoryItem> results) throws Exception {
|
|
|
|
String content = FileUtils.readStringFromStream(inputStream, ENCODING);
|
|
|
|
JSONArray respArray = new JSONArray(content);
|
|
|
|
JSONArray jsonArray = respArray.getJSONArray(1);
|
|
|
|
int counter = 0;
|
|
|
|
for (int n = 0, size = jsonArray.length(); n < size; n++) {
|
|
|
|
String suggestion = jsonArray.getString(n);
|
|
|
|
results.add(new HistoryItem(mSearchSubtitle + " \"" + suggestion + '"',
|
|
|
|
suggestion, R.drawable.ic_search));
|
|
|
|
counter++;
|
|
|
|
if (counter >= MAX_RESULTS) {
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|