BearND has uploaded a new change for review. https://gerrit.wikimedia.org/r/174293
Change subject: Allow caller to specify maxResults in FullSearchTask ...................................................................... Allow caller to specify maxResults in FullSearchTask Also fix the related tests. Change-Id: Ic887b9acd041284c80c279f5cb5c7a05f11f3024 --- M wikipedia-it/src/main/java/org/wikipedia/test/FullSearchTaskTests.java M wikipedia/src/main/java/org/wikipedia/search/FullSearchArticlesTask.java M wikipedia/src/main/java/org/wikipedia/search/FullSearchFragment.java 3 files changed, 20 insertions(+), 19 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia refs/changes/93/174293/1 diff --git a/wikipedia-it/src/main/java/org/wikipedia/test/FullSearchTaskTests.java b/wikipedia-it/src/main/java/org/wikipedia/test/FullSearchTaskTests.java index 5b7e999..f3322d1 100644 --- a/wikipedia-it/src/main/java/org/wikipedia/test/FullSearchTaskTests.java +++ b/wikipedia-it/src/main/java/org/wikipedia/test/FullSearchTaskTests.java @@ -14,7 +14,7 @@ */ public class FullSearchTaskTests extends ActivityUnitTestCase<TestDummyActivity> { private static final int TASK_COMPLETION_TIMEOUT = 20000; - private static final int NUM_RESULTS_REQUESTED = 12; + private static final int BATCH_SIZE = 12; private static final Site SITE = new Site("test.wikipedia.org"); public FullSearchTaskTests() { @@ -28,13 +28,13 @@ @Override public void run() { final WikipediaApp app = (WikipediaApp) getInstrumentation().getTargetContext().getApplicationContext(); - new FullSearchArticlesTask(app.getAPIForSite(SITE), SITE, "test", 0) { + new FullSearchArticlesTask(app.getAPIForSite(SITE), SITE, "test", BATCH_SIZE, null) { @Override public void onFinish(FullSearchResults results) { assertNotNull(results); - assertEquals(results.getResults().size(), NUM_RESULTS_REQUESTED); + assertEquals(results.getResults().size(), BATCH_SIZE); assertEquals(results.getSuggestion(), ""); - assertEquals(results.getContinueOffset(), NUM_RESULTS_REQUESTED); + assertNotNull(results.getContinueOffset()); for (FullSearchResult result : results.getResults()) { if (result.getTitle().getPrefixedText().equals("Test")) { @@ -56,7 +56,7 @@ @Override public void run() { final WikipediaApp app = (WikipediaApp) getInstrumentation().getTargetContext().getApplicationContext(); - new FullSearchArticlesTask(app.getAPIForSite(SITE), SITE, "teest", 0) { // small typo should produce a suggestion + new FullSearchArticlesTask(app.getAPIForSite(SITE), SITE, "teest", BATCH_SIZE, null) { // small typo should produce a suggestion @Override public void onFinish(FullSearchResults results) { assertNotNull(results); @@ -76,13 +76,13 @@ @Override public void run() { final WikipediaApp app = (WikipediaApp) getInstrumentation().getTargetContext().getApplicationContext(); - new FullSearchArticlesTask(app.getAPIForSite(SITE), SITE, "jkfsdfpefdsfwoirpoik", 0) { // toal gibberish, should not exist on testwiki + new FullSearchArticlesTask(app.getAPIForSite(SITE), SITE, "jkfsdfpefdsfwoirpoik", BATCH_SIZE, null) { // total gibberish, should not exist on testwiki @Override public void onFinish(FullSearchResults results) { assertNotNull(results); assertEquals(results.getResults().size(), 0); assertEquals(results.getSuggestion(), ""); - assertEquals(results.getContinueOffset(), 0); + assertNull(results.getContinueOffset()); completionLatch.countDown(); } }.execute(); diff --git a/wikipedia/src/main/java/org/wikipedia/search/FullSearchArticlesTask.java b/wikipedia/src/main/java/org/wikipedia/search/FullSearchArticlesTask.java index 08d5bda..17c4d4c 100644 --- a/wikipedia/src/main/java/org/wikipedia/search/FullSearchArticlesTask.java +++ b/wikipedia/src/main/java/org/wikipedia/search/FullSearchArticlesTask.java @@ -19,22 +19,22 @@ import java.util.Map; public class FullSearchArticlesTask extends ApiTask<FullSearchArticlesTask.FullSearchResults> { - private static final int MAX_RESULTS = 12; - private static final String NUM_RESULTS_PER_QUERY = Integer.toString(MAX_RESULTS); - private final Site site; private final String searchTerm; + private final int maxResults; private final ContinueOffset continueOffset; - public FullSearchArticlesTask(Api api, Site site, String searchTerm, ContinueOffset continueOffset) { + public FullSearchArticlesTask(Api api, Site site, String searchTerm, int maxResults, ContinueOffset continueOffset) { super(LOW_CONCURRENCY, api); this.site = site; this.searchTerm = searchTerm; + this.maxResults = maxResults; this.continueOffset = continueOffset; } @Override public RequestBuilder buildRequest(Api api) { + final String maxResultsString = Integer.toString(maxResults); final RequestBuilder req = api.action("query") .param("prop", "pageprops|pageimages") .param("ppprop", "wikibase_item") // only interested in wikibase_item @@ -44,17 +44,17 @@ .param("gsrwhat", "text") .param("gsrinfo", "") .param("gsrprop", "redirecttitle") - .param("gsrlimit", NUM_RESULTS_PER_QUERY) + .param("gsrlimit", maxResultsString) .param("list", "search") // for correct order .param("srsearch", searchTerm) .param("srnamespace", "0") .param("srwhat", "text") .param("srinfo", "suggestion") .param("srprop", "") - .param("srlimit", NUM_RESULTS_PER_QUERY) + .param("srlimit", maxResultsString) .param("piprop", "thumbnail") // for thumbnail URLs .param("pithumbsize", Integer.toString(WikipediaApp.PREFERRED_THUMB_SIZE)) - .param("pilimit", NUM_RESULTS_PER_QUERY); + .param("pilimit", maxResultsString); if (continueOffset != null) { req.param("continue", continueOffset.cont); if (continueOffset.sroffset > 0) { @@ -119,7 +119,7 @@ */ // build a map of full result objects - Map<String, FullSearchResult> map = new HashMap<String, FullSearchResult>(MAX_RESULTS + 1, 1.0f); + Map<String, FullSearchResult> map = new HashMap<String, FullSearchResult>(maxResults + 1, 1.0f); Iterator<String> keys = pages.keys(); while (keys.hasNext()) { String key = keys.next(); @@ -180,12 +180,12 @@ } } - class ContinueOffset { + public class ContinueOffset { private String cont; private int sroffset; private int gsroffset; - ContinueOffset(String cont, int sroffset, int gsroffset) { + private ContinueOffset(String cont, int sroffset, int gsroffset) { this.cont = cont; this.sroffset = sroffset; this.gsroffset = gsroffset; diff --git a/wikipedia/src/main/java/org/wikipedia/search/FullSearchFragment.java b/wikipedia/src/main/java/org/wikipedia/search/FullSearchFragment.java index 1a38c9c..9730129 100644 --- a/wikipedia/src/main/java/org/wikipedia/search/FullSearchFragment.java +++ b/wikipedia/src/main/java/org/wikipedia/search/FullSearchFragment.java @@ -27,6 +27,7 @@ import java.util.Map; public class FullSearchFragment extends Fragment { + private static final int BATCH_SIZE = 12; private static final int DELAY_MILLIS = 1000; private static final int MESSAGE_SEARCH = 1; @@ -158,8 +159,8 @@ } } - private void doSearch(final String searchTerm, final FullSearchArticlesTask.ContinueOffset continueOffset) { - (new FullSearchArticlesTask(app.getAPIForSite(app.getPrimarySite()), app.getPrimarySite(), searchTerm, continueOffset) { + private void doSearch(final String searchTerm, final FullSearchArticlesTask.ContinueOffset continueOffset) { final int maxResults = 12; + (new FullSearchArticlesTask(app.getAPIForSite(app.getPrimarySite()), app.getPrimarySite(), searchTerm, BATCH_SIZE, continueOffset) { @Override public void onFinish(FullSearchResults results) { if (!isAdded()) { -- To view, visit https://gerrit.wikimedia.org/r/174293 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ic887b9acd041284c80c279f5cb5c7a05f11f3024 Gerrit-PatchSet: 1 Gerrit-Project: apps/android/wikipedia Gerrit-Branch: master Gerrit-Owner: BearND <bsitzm...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits