jenkins-bot has submitted this change and it was merged.
Change subject: Hygiene: Split off page content loading into two variants
......................................................................
Hygiene: Split off page content loading into two variants
Currently they are using the same code. Will update in future patch to be
different.
Bug: T104714
Change-Id: I3dfa7b0e964bf8cdd9fc93b891debd7a00c82776
---
M wikipedia/src/androidTest/java/org/wikipedia/test/PageFetchTaskTests.java
M wikipedia/src/main/java/org/wikipedia/ApiTask.java
M wikipedia/src/main/java/org/wikipedia/page/JsonPageLoadStrategy.java
A wikipedia/src/main/java/org/wikipedia/page/fetch/Fetcher.java
A wikipedia/src/main/java/org/wikipedia/page/fetch/LeadSectionFetcher.java
A
wikipedia/src/main/java/org/wikipedia/page/fetch/LeadSectionFetcherFactory.java
A wikipedia/src/main/java/org/wikipedia/page/fetch/LeadSectionFetcherPHP.java
A wikipedia/src/main/java/org/wikipedia/page/fetch/LeadSectionFetcherRB.java
A wikipedia/src/main/java/org/wikipedia/page/fetch/OldSectionsFetchTask.java
A wikipedia/src/main/java/org/wikipedia/page/fetch/RestSectionFetcher.java
A
wikipedia/src/main/java/org/wikipedia/page/fetch/RestSectionFetcherFactory.java
A wikipedia/src/main/java/org/wikipedia/page/fetch/RestSectionFetcherPHP.java
A wikipedia/src/main/java/org/wikipedia/page/fetch/RestSectionFetcherRB.java
R wikipedia/src/main/java/org/wikipedia/page/fetch/SectionsFetcherPHP.java
C wikipedia/src/main/java/org/wikipedia/page/fetch/SectionsFetcherRB.java
M wikipedia/src/main/java/org/wikipedia/savedpages/RefreshSavedPageTask.java
M wikipedia/src/main/java/org/wikipedia/settings/Prefs.java
M wikipedia/src/main/java/org/wikipedia/widgets/WidgetProviderFeaturedPage.java
18 files changed, 272 insertions(+), 50 deletions(-)
Approvals:
Mholloway: Looks good to me, approved
Niedzielski: Looks good to me, but someone else must approve
jenkins-bot: Verified
diff --git
a/wikipedia/src/androidTest/java/org/wikipedia/test/PageFetchTaskTests.java
b/wikipedia/src/androidTest/java/org/wikipedia/test/PageFetchTaskTests.java
index 717dfa0..90a2ee3 100644
--- a/wikipedia/src/androidTest/java/org/wikipedia/test/PageFetchTaskTests.java
+++ b/wikipedia/src/androidTest/java/org/wikipedia/test/PageFetchTaskTests.java
@@ -7,7 +7,7 @@
import org.wikipedia.page.PageTitle;
import org.wikipedia.Site;
import org.wikipedia.page.Section;
-import org.wikipedia.page.SectionsFetchTask;
+import org.wikipedia.page.fetch.OldSectionsFetchTask;
import java.util.List;
import java.util.concurrent.CountDownLatch;
@@ -40,7 +40,7 @@
@Override
public void run() {
final WikipediaApp app = WikipediaApp.getInstance();
- new SectionsFetchTask(app, new PageTitle(null, title, new
Site("test.wikipedia.org")), "all") {
+ new OldSectionsFetchTask(app, new PageTitle(null, title, new
Site("test.wikipedia.org")), "all") {
@Override
public void onFinish(List<Section> result) {
assertNotNull(result);
diff --git a/wikipedia/src/main/java/org/wikipedia/ApiTask.java
b/wikipedia/src/main/java/org/wikipedia/ApiTask.java
index 92240b0..6888a17 100644
--- a/wikipedia/src/main/java/org/wikipedia/ApiTask.java
+++ b/wikipedia/src/main/java/org/wikipedia/ApiTask.java
@@ -8,6 +8,7 @@
import org.mediawiki.api.json.ApiException;
import org.mediawiki.api.json.ApiResult;
import org.mediawiki.api.json.RequestBuilder;
+import org.wikipedia.page.fetch.Fetcher;
import org.wikipedia.concurrency.SaneAsyncTask;
import org.wikipedia.util.NetworkUtils;
import org.wikipedia.util.ThrowableUtil;
@@ -19,7 +20,7 @@
import javax.net.ssl.SSLException;
-public abstract class ApiTask<T> extends SaneAsyncTask<T> {
+public abstract class ApiTask<T> extends SaneAsyncTask<T> implements
Fetcher<T> {
private static final boolean VERBOSE =
WikipediaApp.getInstance().isDevRelease();
private final Api api;
@@ -73,10 +74,6 @@
protected ApiResult makeRequest(RequestBuilder builder) throws
ApiException {
return builder.get();
}
-
- public abstract RequestBuilder buildRequest(Api api);
- public abstract T processResult(ApiResult result) throws Throwable;
-
private String buildUrl(String url, Map<String, String> params) {
Uri.Builder builder = new Uri.Builder().encodedPath(url);
diff --git
a/wikipedia/src/main/java/org/wikipedia/page/JsonPageLoadStrategy.java
b/wikipedia/src/main/java/org/wikipedia/page/JsonPageLoadStrategy.java
index 6daaa82..af704a2 100644
--- a/wikipedia/src/main/java/org/wikipedia/page/JsonPageLoadStrategy.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/JsonPageLoadStrategy.java
@@ -1,7 +1,9 @@
package org.wikipedia.page;
import org.acra.ACRA;
+import org.wikipedia.ApiTask;
import org.wikipedia.R;
+import org.wikipedia.Site;
import org.wikipedia.Utils;
import org.wikipedia.WikipediaApp;
import org.wikipedia.bridge.CommunicationBridge;
@@ -10,6 +12,10 @@
import org.wikipedia.history.HistoryEntry;
import org.wikipedia.page.bottomcontent.BottomContentHandler;
import org.wikipedia.page.bottomcontent.BottomContentInterface;
+import org.wikipedia.page.fetch.LeadSectionFetcher;
+import org.wikipedia.page.fetch.LeadSectionFetcherFactory;
+import org.wikipedia.page.fetch.RestSectionFetcher;
+import org.wikipedia.page.fetch.RestSectionFetcherFactory;
import org.wikipedia.page.leadimages.LeadImagesHandler;
import org.wikipedia.pageimages.PageImage;
import org.wikipedia.pageimages.PageImagesTask;
@@ -612,38 +618,38 @@
}
}
+ private Api getAPIForSite(Site site) {
+ return WikipediaApp.getInstance().getAPIForSite(site);
+ }
- private class LeadSectionFetchTask extends SectionsFetchTask {
+ private class LeadSectionFetchTask extends ApiTask<List<Section>> {
private final int startSequenceNum;
private PageProperties pageProperties;
- private String pagePropsResponseName = "mobileview";
+ private LeadSectionFetcher sectionsFetcher;
public LeadSectionFetchTask(int startSequenceNum) {
- super(app, model.getTitle(), "0");
+ super(SINGLE_THREAD, getAPIForSite(model.getTitle().getSite()));
+ this.sectionsFetcher = LeadSectionFetcherFactory.create(app,
model.getTitle());
this.startSequenceNum = startSequenceNum;
}
@Override
public RequestBuilder buildRequest(Api api) {
- RequestBuilder builder = super.buildRequest(api);
- builder.param("prop", builder.getParams().get("prop")
- + "|thumb|image|id|revision|description|"
- + Page.API_REQUEST_PROPS);
- builder.param("thumbsize",
Integer.toString(calculateLeadImageWidth()));
- return builder;
+ return sectionsFetcher.buildRequest(api,
calculateLeadImageWidth());
}
@Override
public List<Section> processResult(ApiResult result) throws Throwable {
if (startSequenceNum != currentSequenceNum) {
- return super.processResult(result);
+ return sectionsFetcher.processResult(result);
}
- JSONObject metadata =
result.asObject().optJSONObject(pagePropsResponseName);
+ JSONObject metadata
+ =
result.asObject().optJSONObject(sectionsFetcher.getPagePropsResponseName());
if (metadata != null) {
pageProperties = new PageProperties(metadata);
model.setTitle(fragment.adjustPageTitleFromMobileview(model.getTitle(),
metadata));
}
- return super.processResult(result);
+ return sectionsFetcher.processResult(result);
}
@Override
@@ -708,15 +714,27 @@
return (int) (res.getDimension(R.dimen.leadImageWidth) /
res.getDisplayMetrics().density);
}
- private class RestSectionsFetchTask extends SectionsFetchTask {
+ private class RestSectionsFetchTask extends ApiTask<List<Section>> {
private final int startSequenceNum;
+ private RestSectionFetcher sectionsFetcher;
public RestSectionsFetchTask(int startSequenceNum) {
- super(app, model.getTitle(), "1-");
+ super(SINGLE_THREAD, getAPIForSite(model.getTitle().getSite()));
+ this.sectionsFetcher = RestSectionFetcherFactory.create(app,
model.getTitle());
this.startSequenceNum = startSequenceNum;
}
@Override
+ public RequestBuilder buildRequest(Api api) {
+ return sectionsFetcher.buildRequest(api);
+ }
+
+ @Override
+ public List<Section> processResult(ApiResult result) throws Throwable {
+ return sectionsFetcher.processResult(result);
+ }
+
+ @Override
public void onFinish(List<Section> result) {
if (!fragment.isAdded() || startSequenceNum != currentSequenceNum)
{
return;
diff --git a/wikipedia/src/main/java/org/wikipedia/page/fetch/Fetcher.java
b/wikipedia/src/main/java/org/wikipedia/page/fetch/Fetcher.java
new file mode 100644
index 0000000..2c4fcf1
--- /dev/null
+++ b/wikipedia/src/main/java/org/wikipedia/page/fetch/Fetcher.java
@@ -0,0 +1,14 @@
+package org.wikipedia.page.fetch;
+
+import org.mediawiki.api.json.Api;
+import org.mediawiki.api.json.ApiResult;
+import org.mediawiki.api.json.RequestBuilder;
+
+/**
+ * Fetches something from the server synchronously; i.e. no AsyncTask.
+ */
+public interface Fetcher<T> {
+ RequestBuilder buildRequest(Api api);
+
+ T processResult(ApiResult result) throws Throwable;
+}
diff --git
a/wikipedia/src/main/java/org/wikipedia/page/fetch/LeadSectionFetcher.java
b/wikipedia/src/main/java/org/wikipedia/page/fetch/LeadSectionFetcher.java
new file mode 100644
index 0000000..bc06e02
--- /dev/null
+++ b/wikipedia/src/main/java/org/wikipedia/page/fetch/LeadSectionFetcher.java
@@ -0,0 +1,21 @@
+package org.wikipedia.page.fetch;
+
+import org.mediawiki.api.json.Api;
+import org.mediawiki.api.json.ApiResult;
+import org.mediawiki.api.json.RequestBuilder;
+import org.wikipedia.page.Section;
+
+import java.util.List;
+
+/**
+ * Retrieve the first section, general page metadata, and whatever we need to
show below the fold.
+ */
+public interface LeadSectionFetcher {
+ RequestBuilder buildRequest(Api api, int leadImageWidth);
+
+ List<Section> processResult(ApiResult result) throws Throwable;
+
+ /** @return the JSONObject key for a child JSONObject which contains the
metadata for
+ * PageProperties */
+ String getPagePropsResponseName();
+}
diff --git
a/wikipedia/src/main/java/org/wikipedia/page/fetch/LeadSectionFetcherFactory.java
b/wikipedia/src/main/java/org/wikipedia/page/fetch/LeadSectionFetcherFactory.java
new file mode 100644
index 0000000..2cb646b
--- /dev/null
+++
b/wikipedia/src/main/java/org/wikipedia/page/fetch/LeadSectionFetcherFactory.java
@@ -0,0 +1,22 @@
+package org.wikipedia.page.fetch;
+
+import org.wikipedia.WikipediaApp;
+import org.wikipedia.page.PageTitle;
+import org.wikipedia.settings.Prefs;
+
+/**
+ * Chooses between different variants of page loading mechanisms for the lead
section.
+ */
+public final class LeadSectionFetcherFactory {
+ public static LeadSectionFetcher create(WikipediaApp app, PageTitle title)
{
+ boolean downloadImages = app.isImageDownloadEnabled();
+ if (Prefs.isRESTBaseJsonPageLoadEnabled()) {
+ return new LeadSectionFetcherRB(title, "0", downloadImages);
+ } else {
+ return new LeadSectionFetcherPHP(title, "0", downloadImages);
+ }
+ }
+
+ private LeadSectionFetcherFactory() {
+ }
+}
diff --git
a/wikipedia/src/main/java/org/wikipedia/page/fetch/LeadSectionFetcherPHP.java
b/wikipedia/src/main/java/org/wikipedia/page/fetch/LeadSectionFetcherPHP.java
new file mode 100644
index 0000000..6977001
--- /dev/null
+++
b/wikipedia/src/main/java/org/wikipedia/page/fetch/LeadSectionFetcherPHP.java
@@ -0,0 +1,25 @@
+package org.wikipedia.page.fetch;
+
+import org.mediawiki.api.json.Api;
+import org.mediawiki.api.json.RequestBuilder;
+import org.wikipedia.page.Page;
+import org.wikipedia.page.PageTitle;
+
+/**
+ * @see SectionsFetcherPHP
+ */
+public class LeadSectionFetcherPHP extends SectionsFetcherPHP implements
LeadSectionFetcher {
+ public LeadSectionFetcherPHP(PageTitle title, String sectionsRequested,
boolean downloadImages) {
+ super(title, sectionsRequested, downloadImages);
+ }
+
+ @Override
+ public RequestBuilder buildRequest(Api api, int leadImageWidth) {
+ RequestBuilder builder = super.buildRequest(api);
+ builder.param("prop", builder.getParams().get("prop")
+ + "|thumb|image|id|revision|description|"
+ + Page.API_REQUEST_PROPS);
+ builder.param("thumbsize", Integer.toString(leadImageWidth));
+ return builder;
+ }
+}
diff --git
a/wikipedia/src/main/java/org/wikipedia/page/fetch/LeadSectionFetcherRB.java
b/wikipedia/src/main/java/org/wikipedia/page/fetch/LeadSectionFetcherRB.java
new file mode 100644
index 0000000..0fed5e1
--- /dev/null
+++ b/wikipedia/src/main/java/org/wikipedia/page/fetch/LeadSectionFetcherRB.java
@@ -0,0 +1,25 @@
+package org.wikipedia.page.fetch;
+
+import org.mediawiki.api.json.Api;
+import org.mediawiki.api.json.RequestBuilder;
+import org.wikipedia.page.Page;
+import org.wikipedia.page.PageTitle;
+
+/**
+ * @see SectionsFetcherRB
+ */
+public class LeadSectionFetcherRB extends SectionsFetcherRB implements
LeadSectionFetcher {
+ public LeadSectionFetcherRB(PageTitle title, String sectionsRequested,
boolean downloadImages) {
+ super(title, sectionsRequested, downloadImages);
+ }
+
+ @Override
+ public RequestBuilder buildRequest(Api api, int leadImageWidth) {
+ RequestBuilder builder = super.buildRequest(api);
+ builder.param("prop", builder.getParams().get("prop")
+ + "|thumb|image|id|revision|description|"
+ + Page.API_REQUEST_PROPS);
+ builder.param("thumbsize", Integer.toString(leadImageWidth));
+ return builder;
+ }
+}
diff --git
a/wikipedia/src/main/java/org/wikipedia/page/fetch/OldSectionsFetchTask.java
b/wikipedia/src/main/java/org/wikipedia/page/fetch/OldSectionsFetchTask.java
new file mode 100644
index 0000000..7f40dfc
--- /dev/null
+++ b/wikipedia/src/main/java/org/wikipedia/page/fetch/OldSectionsFetchTask.java
@@ -0,0 +1,35 @@
+package org.wikipedia.page.fetch;
+
+import org.mediawiki.api.json.Api;
+import org.mediawiki.api.json.ApiResult;
+import org.mediawiki.api.json.RequestBuilder;
+import org.wikipedia.ApiTask;
+import org.wikipedia.WikipediaApp;
+import org.wikipedia.page.PageTitle;
+import org.wikipedia.page.Section;
+
+import java.util.List;
+
+/** For code that has not been moved to swappable page load mechanisms yet. */
+public class OldSectionsFetchTask extends ApiTask<List<Section>> {
+ private final SectionsFetcherPHP sectionsFetcher;
+
+ public OldSectionsFetchTask(WikipediaApp app, PageTitle title, String
sectionsRequested) {
+ super(
+ SINGLE_THREAD,
+ app.getAPIForSite(title.getSite())
+ );
+ sectionsFetcher = new SectionsFetcherPHP(title, sectionsRequested,
+ app.isImageDownloadEnabled());
+ }
+
+ @Override
+ public RequestBuilder buildRequest(Api api) {
+ return sectionsFetcher.buildRequest(api);
+ }
+
+ @Override
+ public List<Section> processResult(ApiResult result) throws Throwable {
+ return sectionsFetcher.processResult(result);
+ }
+}
diff --git
a/wikipedia/src/main/java/org/wikipedia/page/fetch/RestSectionFetcher.java
b/wikipedia/src/main/java/org/wikipedia/page/fetch/RestSectionFetcher.java
new file mode 100644
index 0000000..a26d663
--- /dev/null
+++ b/wikipedia/src/main/java/org/wikipedia/page/fetch/RestSectionFetcher.java
@@ -0,0 +1,17 @@
+package org.wikipedia.page.fetch;
+
+import org.mediawiki.api.json.Api;
+import org.mediawiki.api.json.ApiResult;
+import org.mediawiki.api.json.RequestBuilder;
+import org.wikipedia.page.Section;
+
+import java.util.List;
+
+/**
+ * Retrieve the remaining page content and metadata not already covered by the
+ * {@link LeadSectionFetcher}.
+ */
+public interface RestSectionFetcher {
+ RequestBuilder buildRequest(Api api);
+ List<Section> processResult(ApiResult result) throws Throwable;
+}
diff --git
a/wikipedia/src/main/java/org/wikipedia/page/fetch/RestSectionFetcherFactory.java
b/wikipedia/src/main/java/org/wikipedia/page/fetch/RestSectionFetcherFactory.java
new file mode 100644
index 0000000..f7c4fc5
--- /dev/null
+++
b/wikipedia/src/main/java/org/wikipedia/page/fetch/RestSectionFetcherFactory.java
@@ -0,0 +1,22 @@
+package org.wikipedia.page.fetch;
+
+import org.wikipedia.WikipediaApp;
+import org.wikipedia.page.PageTitle;
+import org.wikipedia.settings.Prefs;
+
+/**
+ * Chooses between different variants of page loading mechanisms for the
remaining sections.
+ */
+public final class RestSectionFetcherFactory {
+ public static RestSectionFetcher create(WikipediaApp app, PageTitle title)
{
+ boolean downloadImages = app.isImageDownloadEnabled();
+ if (Prefs.isRESTBaseJsonPageLoadEnabled()) {
+ return new RestSectionFetcherRB(title, "1-", downloadImages);
+ } else {
+ return new RestSectionFetcherPHP(title, "1-", downloadImages);
+ }
+ }
+
+ private RestSectionFetcherFactory() {
+ }
+}
diff --git
a/wikipedia/src/main/java/org/wikipedia/page/fetch/RestSectionFetcherPHP.java
b/wikipedia/src/main/java/org/wikipedia/page/fetch/RestSectionFetcherPHP.java
new file mode 100644
index 0000000..2585b9a
--- /dev/null
+++
b/wikipedia/src/main/java/org/wikipedia/page/fetch/RestSectionFetcherPHP.java
@@ -0,0 +1,12 @@
+package org.wikipedia.page.fetch;
+
+import org.wikipedia.page.PageTitle;
+
+/**
+ * @see SectionsFetcherPHP
+ */
+public class RestSectionFetcherPHP extends SectionsFetcherPHP implements
RestSectionFetcher {
+ public RestSectionFetcherPHP(PageTitle title, String sectionsRequested,
boolean downloadImages) {
+ super(title, sectionsRequested, downloadImages);
+ }
+}
diff --git
a/wikipedia/src/main/java/org/wikipedia/page/fetch/RestSectionFetcherRB.java
b/wikipedia/src/main/java/org/wikipedia/page/fetch/RestSectionFetcherRB.java
new file mode 100644
index 0000000..f798aef
--- /dev/null
+++ b/wikipedia/src/main/java/org/wikipedia/page/fetch/RestSectionFetcherRB.java
@@ -0,0 +1,12 @@
+package org.wikipedia.page.fetch;
+
+import org.wikipedia.page.PageTitle;
+
+/**
+ * @see SectionsFetcherRB
+ */
+public class RestSectionFetcherRB extends SectionsFetcherRB implements
RestSectionFetcher {
+ public RestSectionFetcherRB(PageTitle title, String sectionsRequested,
boolean downloadImages) {
+ super(title, sectionsRequested, downloadImages);
+ }
+}
diff --git a/wikipedia/src/main/java/org/wikipedia/page/SectionsFetchTask.java
b/wikipedia/src/main/java/org/wikipedia/page/fetch/SectionsFetcherPHP.java
similarity index 75%
rename from wikipedia/src/main/java/org/wikipedia/page/SectionsFetchTask.java
rename to
wikipedia/src/main/java/org/wikipedia/page/fetch/SectionsFetcherPHP.java
index 96de58b..41b165b 100644
--- a/wikipedia/src/main/java/org/wikipedia/page/SectionsFetchTask.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/fetch/SectionsFetcherPHP.java
@@ -1,4 +1,4 @@
-package org.wikipedia.page;
+package org.wikipedia.page.fetch;
import org.json.JSONArray;
import org.json.JSONException;
@@ -6,23 +6,20 @@
import org.mediawiki.api.json.ApiException;
import org.mediawiki.api.json.ApiResult;
import org.mediawiki.api.json.RequestBuilder;
-import org.wikipedia.ApiTask;
-import org.wikipedia.WikipediaApp;
+import org.wikipedia.page.PageTitle;
+import org.wikipedia.page.Section;
import java.util.ArrayList;
import java.util.List;
-public class SectionsFetchTask extends ApiTask<List<Section>> {
- private final WikipediaApp app;
+/** Using traditional api.php endpoints */
+public class SectionsFetcherPHP implements Fetcher<List<Section>> {
private final PageTitle title;
private final String sectionsRequested;
+ private final boolean downloadImages;
- public SectionsFetchTask(WikipediaApp app, PageTitle title, String
sectionsRequested) {
- super(
- SINGLE_THREAD,
- app.getAPIForSite(title.getSite())
- );
- this.app = app;
+ public SectionsFetcherPHP(PageTitle title, String sectionsRequested,
boolean downloadImages) {
+ this.downloadImages = downloadImages;
this.title = title;
this.sectionsRequested = sectionsRequested;
}
@@ -36,7 +33,7 @@
.param("sections", sectionsRequested)
.param("sectionprop", "toclevel|line|anchor")
.param("noheadings", "true");
- if (!app.isImageDownloadEnabled()) {
+ if (!downloadImages) {
builder.param("noimages", "true");
}
return builder;
@@ -57,4 +54,8 @@
return sections;
}
+
+ public String getPagePropsResponseName() {
+ return "mobileview";
+ }
}
diff --git a/wikipedia/src/main/java/org/wikipedia/page/SectionsFetchTask.java
b/wikipedia/src/main/java/org/wikipedia/page/fetch/SectionsFetcherRB.java
similarity index 75%
copy from wikipedia/src/main/java/org/wikipedia/page/SectionsFetchTask.java
copy to wikipedia/src/main/java/org/wikipedia/page/fetch/SectionsFetcherRB.java
index 96de58b..13c4e9c 100644
--- a/wikipedia/src/main/java/org/wikipedia/page/SectionsFetchTask.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/fetch/SectionsFetcherRB.java
@@ -1,4 +1,4 @@
-package org.wikipedia.page;
+package org.wikipedia.page.fetch;
import org.json.JSONArray;
import org.json.JSONException;
@@ -6,23 +6,20 @@
import org.mediawiki.api.json.ApiException;
import org.mediawiki.api.json.ApiResult;
import org.mediawiki.api.json.RequestBuilder;
-import org.wikipedia.ApiTask;
-import org.wikipedia.WikipediaApp;
+import org.wikipedia.page.PageTitle;
+import org.wikipedia.page.Section;
import java.util.ArrayList;
import java.util.List;
-public class SectionsFetchTask extends ApiTask<List<Section>> {
- private final WikipediaApp app;
+/** TODO: Using nodejs/RESTBase endpoints */
+public class SectionsFetcherRB implements Fetcher<List<Section>> {
private final PageTitle title;
private final String sectionsRequested;
+ private final boolean downloadImages;
- public SectionsFetchTask(WikipediaApp app, PageTitle title, String
sectionsRequested) {
- super(
- SINGLE_THREAD,
- app.getAPIForSite(title.getSite())
- );
- this.app = app;
+ public SectionsFetcherRB(PageTitle title, String sectionsRequested,
boolean downloadImages) {
+ this.downloadImages = downloadImages;
this.title = title;
this.sectionsRequested = sectionsRequested;
}
@@ -36,7 +33,7 @@
.param("sections", sectionsRequested)
.param("sectionprop", "toclevel|line|anchor")
.param("noheadings", "true");
- if (!app.isImageDownloadEnabled()) {
+ if (!downloadImages) {
builder.param("noimages", "true");
}
return builder;
@@ -57,4 +54,8 @@
return sections;
}
+
+ public String getPagePropsResponseName() {
+ return "mobileview";
+ }
}
diff --git
a/wikipedia/src/main/java/org/wikipedia/savedpages/RefreshSavedPageTask.java
b/wikipedia/src/main/java/org/wikipedia/savedpages/RefreshSavedPageTask.java
index 30fad46..d692429 100644
--- a/wikipedia/src/main/java/org/wikipedia/savedpages/RefreshSavedPageTask.java
+++ b/wikipedia/src/main/java/org/wikipedia/savedpages/RefreshSavedPageTask.java
@@ -10,13 +10,13 @@
import org.wikipedia.page.Page;
import org.wikipedia.page.PageProperties;
import org.wikipedia.page.Section;
-import org.wikipedia.page.SectionsFetchTask;
+import org.wikipedia.page.fetch.OldSectionsFetchTask;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
-public class RefreshSavedPageTask extends SectionsFetchTask {
+public class RefreshSavedPageTask extends OldSectionsFetchTask {
private final SavedPage savedPage;
private final WikipediaApp app;
diff --git a/wikipedia/src/main/java/org/wikipedia/settings/Prefs.java
b/wikipedia/src/main/java/org/wikipedia/settings/Prefs.java
index 7d38748..963d87c 100644
--- a/wikipedia/src/main/java/org/wikipedia/settings/Prefs.java
+++ b/wikipedia/src/main/java/org/wikipedia/settings/Prefs.java
@@ -223,7 +223,7 @@
setBoolean(R.string.preference_key_exp_html_page_load, enabled);
}
- public static boolean isExperimentalJsonPageLoadEnabled() {
+ public static boolean isRESTBaseJsonPageLoadEnabled() {
return getBoolean(R.string.preference_key_exp_json_page_load, false);
}
diff --git
a/wikipedia/src/main/java/org/wikipedia/widgets/WidgetProviderFeaturedPage.java
b/wikipedia/src/main/java/org/wikipedia/widgets/WidgetProviderFeaturedPage.java
index 8bdfc6c..e09affa 100644
---
a/wikipedia/src/main/java/org/wikipedia/widgets/WidgetProviderFeaturedPage.java
+++
b/wikipedia/src/main/java/org/wikipedia/widgets/WidgetProviderFeaturedPage.java
@@ -22,7 +22,7 @@
import org.wikipedia.page.PageActivity;
import org.wikipedia.page.PageTitle;
import org.wikipedia.page.Section;
-import org.wikipedia.page.SectionsFetchTask;
+import org.wikipedia.page.fetch.OldSectionsFetchTask;
import org.wikipedia.staticdata.MainPageNameData;
import java.util.List;
@@ -92,7 +92,7 @@
}
}
- private class FetchMainPageTask extends SectionsFetchTask {
+ private class FetchMainPageTask extends OldSectionsFetchTask {
public FetchMainPageTask(WikipediaApp app) {
super(app,
new
PageTitle(MainPageNameData.valueFor(app.getAppOrSystemLanguageCode()),
--
To view, visit https://gerrit.wikimedia.org/r/226675
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I3dfa7b0e964bf8cdd9fc93b891debd7a00c82776
Gerrit-PatchSet: 7
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: BearND <[email protected]>
Gerrit-Reviewer: BearND <[email protected]>
Gerrit-Reviewer: Brion VIBBER <[email protected]>
Gerrit-Reviewer: Dbrant <[email protected]>
Gerrit-Reviewer: Mholloway <[email protected]>
Gerrit-Reviewer: Niedzielski <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits