You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.7 KiB
51 lines
1.7 KiB
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; |
|
} |
|
} |
|
} |
|
|
|
}
|
|
|