BearND has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/231786

Change subject: Revert "Hygiene: Split off page content loading into two 
variants"
......................................................................

Revert "Hygiene: Split off page content loading into two variants"

This reverts commit 1fe3e21d5efaa350e38722f3db15672f56bd99d7.

Looks like java-mwapi structure (Api, RequestBuilder, etc.) is not a good fit 
for dealing with REST endpoints. Looking into other options, like Retrofit 
instead.

Change-Id: I0a8e773d07242303e063cf35de642a1fa42c0608
---
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
R wikipedia/src/main/java/org/wikipedia/page/SectionsFetchTask.java
D wikipedia/src/main/java/org/wikipedia/page/fetch/Fetcher.java
D wikipedia/src/main/java/org/wikipedia/page/fetch/LeadSectionFetcher.java
D 
wikipedia/src/main/java/org/wikipedia/page/fetch/LeadSectionFetcherFactory.java
D wikipedia/src/main/java/org/wikipedia/page/fetch/LeadSectionFetcherPHP.java
D wikipedia/src/main/java/org/wikipedia/page/fetch/LeadSectionFetcherRB.java
D wikipedia/src/main/java/org/wikipedia/page/fetch/OldSectionsFetchTask.java
D wikipedia/src/main/java/org/wikipedia/page/fetch/RestSectionFetcher.java
D 
wikipedia/src/main/java/org/wikipedia/page/fetch/RestSectionFetcherFactory.java
D wikipedia/src/main/java/org/wikipedia/page/fetch/RestSectionFetcherPHP.java
D wikipedia/src/main/java/org/wikipedia/page/fetch/RestSectionFetcherRB.java
D 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, 38 insertions(+), 320 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia 
refs/changes/86/231786/1

diff --git 
a/wikipedia/src/androidTest/java/org/wikipedia/test/PageFetchTaskTests.java 
b/wikipedia/src/androidTest/java/org/wikipedia/test/PageFetchTaskTests.java
index 90a2ee3..717dfa0 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.fetch.OldSectionsFetchTask;
+import org.wikipedia.page.SectionsFetchTask;
 
 import java.util.List;
 import java.util.concurrent.CountDownLatch;
@@ -40,7 +40,7 @@
             @Override
             public void run() {
                 final WikipediaApp app = WikipediaApp.getInstance();
-                new OldSectionsFetchTask(app, new PageTitle(null, title, new 
Site("test.wikipedia.org")), "all") {
+                new SectionsFetchTask(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 6888a17..92240b0 100644
--- a/wikipedia/src/main/java/org/wikipedia/ApiTask.java
+++ b/wikipedia/src/main/java/org/wikipedia/ApiTask.java
@@ -8,7 +8,6 @@
 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;
@@ -20,7 +19,7 @@
 
 import javax.net.ssl.SSLException;
 
-public abstract class ApiTask<T> extends SaneAsyncTask<T> implements 
Fetcher<T> {
+public abstract class ApiTask<T> extends SaneAsyncTask<T> {
     private static final boolean VERBOSE = 
WikipediaApp.getInstance().isDevRelease();
     private final Api api;
 
@@ -75,6 +74,10 @@
         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);
         for (Map.Entry<String, String> param : params.entrySet()) {
diff --git 
a/wikipedia/src/main/java/org/wikipedia/page/JsonPageLoadStrategy.java 
b/wikipedia/src/main/java/org/wikipedia/page/JsonPageLoadStrategy.java
index af704a2..6daaa82 100644
--- a/wikipedia/src/main/java/org/wikipedia/page/JsonPageLoadStrategy.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/JsonPageLoadStrategy.java
@@ -1,9 +1,7 @@
 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;
@@ -12,10 +10,6 @@
 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;
@@ -618,38 +612,38 @@
         }
     }
 
-    private Api getAPIForSite(Site site) {
-        return WikipediaApp.getInstance().getAPIForSite(site);
-    }
 
-    private class LeadSectionFetchTask extends ApiTask<List<Section>> {
+    private class LeadSectionFetchTask extends SectionsFetchTask {
         private final int startSequenceNum;
         private PageProperties pageProperties;
-        private LeadSectionFetcher sectionsFetcher;
+        private String pagePropsResponseName = "mobileview";
 
         public LeadSectionFetchTask(int startSequenceNum) {
-            super(SINGLE_THREAD, getAPIForSite(model.getTitle().getSite()));
-            this.sectionsFetcher = LeadSectionFetcherFactory.create(app, 
model.getTitle());
+            super(app, model.getTitle(), "0");
             this.startSequenceNum = startSequenceNum;
         }
 
         @Override
         public RequestBuilder buildRequest(Api api) {
-            return sectionsFetcher.buildRequest(api, 
calculateLeadImageWidth());
+            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;
         }
 
         @Override
         public List<Section> processResult(ApiResult result) throws Throwable {
             if (startSequenceNum != currentSequenceNum) {
-                return sectionsFetcher.processResult(result);
+                return super.processResult(result);
             }
-            JSONObject metadata
-                    = 
result.asObject().optJSONObject(sectionsFetcher.getPagePropsResponseName());
+            JSONObject metadata = 
result.asObject().optJSONObject(pagePropsResponseName);
             if (metadata != null) {
                 pageProperties = new PageProperties(metadata);
                 
model.setTitle(fragment.adjustPageTitleFromMobileview(model.getTitle(), 
metadata));
             }
-            return sectionsFetcher.processResult(result);
+            return super.processResult(result);
         }
 
         @Override
@@ -714,24 +708,12 @@
         return (int) (res.getDimension(R.dimen.leadImageWidth) / 
res.getDisplayMetrics().density);
     }
 
-    private class RestSectionsFetchTask extends ApiTask<List<Section>> {
+    private class RestSectionsFetchTask extends SectionsFetchTask {
         private final int startSequenceNum;
-        private RestSectionFetcher sectionsFetcher;
 
         public RestSectionsFetchTask(int startSequenceNum) {
-            super(SINGLE_THREAD, getAPIForSite(model.getTitle().getSite()));
-            this.sectionsFetcher = RestSectionFetcherFactory.create(app, 
model.getTitle());
+            super(app, model.getTitle(), "1-");
             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
diff --git 
a/wikipedia/src/main/java/org/wikipedia/page/fetch/SectionsFetcherPHP.java 
b/wikipedia/src/main/java/org/wikipedia/page/SectionsFetchTask.java
similarity index 75%
rename from 
wikipedia/src/main/java/org/wikipedia/page/fetch/SectionsFetcherPHP.java
rename to wikipedia/src/main/java/org/wikipedia/page/SectionsFetchTask.java
index 41b165b..96de58b 100644
--- a/wikipedia/src/main/java/org/wikipedia/page/fetch/SectionsFetcherPHP.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/SectionsFetchTask.java
@@ -1,4 +1,4 @@
-package org.wikipedia.page.fetch;
+package org.wikipedia.page;
 
 import org.json.JSONArray;
 import org.json.JSONException;
@@ -6,20 +6,23 @@
 import org.mediawiki.api.json.ApiException;
 import org.mediawiki.api.json.ApiResult;
 import org.mediawiki.api.json.RequestBuilder;
-import org.wikipedia.page.PageTitle;
-import org.wikipedia.page.Section;
+import org.wikipedia.ApiTask;
+import org.wikipedia.WikipediaApp;
 
 import java.util.ArrayList;
 import java.util.List;
 
-/** Using traditional api.php endpoints */
-public class SectionsFetcherPHP implements Fetcher<List<Section>> {
+public class SectionsFetchTask extends ApiTask<List<Section>> {
+    private final WikipediaApp app;
     private final PageTitle title;
     private final String sectionsRequested;
-    private final boolean downloadImages;
 
-    public SectionsFetcherPHP(PageTitle title, String sectionsRequested, 
boolean downloadImages) {
-        this.downloadImages = downloadImages;
+    public SectionsFetchTask(WikipediaApp app, PageTitle title, String 
sectionsRequested) {
+        super(
+                SINGLE_THREAD,
+                app.getAPIForSite(title.getSite())
+        );
+        this.app = app;
         this.title = title;
         this.sectionsRequested = sectionsRequested;
     }
@@ -33,7 +36,7 @@
                 .param("sections", sectionsRequested)
                 .param("sectionprop", "toclevel|line|anchor")
                 .param("noheadings", "true");
-        if (!downloadImages) {
+        if (!app.isImageDownloadEnabled()) {
             builder.param("noimages", "true");
         }
         return builder;
@@ -53,9 +56,5 @@
         }
 
         return sections;
-    }
-
-    public String getPagePropsResponseName() {
-        return "mobileview";
     }
 }
diff --git a/wikipedia/src/main/java/org/wikipedia/page/fetch/Fetcher.java 
b/wikipedia/src/main/java/org/wikipedia/page/fetch/Fetcher.java
deleted file mode 100644
index 2c4fcf1..0000000
--- a/wikipedia/src/main/java/org/wikipedia/page/fetch/Fetcher.java
+++ /dev/null
@@ -1,14 +0,0 @@
-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
deleted file mode 100644
index bc06e02..0000000
--- a/wikipedia/src/main/java/org/wikipedia/page/fetch/LeadSectionFetcher.java
+++ /dev/null
@@ -1,21 +0,0 @@
-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
deleted file mode 100644
index 2cb646b..0000000
--- 
a/wikipedia/src/main/java/org/wikipedia/page/fetch/LeadSectionFetcherFactory.java
+++ /dev/null
@@ -1,22 +0,0 @@
-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
deleted file mode 100644
index 6977001..0000000
--- 
a/wikipedia/src/main/java/org/wikipedia/page/fetch/LeadSectionFetcherPHP.java
+++ /dev/null
@@ -1,25 +0,0 @@
-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
deleted file mode 100644
index 0fed5e1..0000000
--- a/wikipedia/src/main/java/org/wikipedia/page/fetch/LeadSectionFetcherRB.java
+++ /dev/null
@@ -1,25 +0,0 @@
-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
deleted file mode 100644
index 7f40dfc..0000000
--- a/wikipedia/src/main/java/org/wikipedia/page/fetch/OldSectionsFetchTask.java
+++ /dev/null
@@ -1,35 +0,0 @@
-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
deleted file mode 100644
index a26d663..0000000
--- a/wikipedia/src/main/java/org/wikipedia/page/fetch/RestSectionFetcher.java
+++ /dev/null
@@ -1,17 +0,0 @@
-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
deleted file mode 100644
index f7c4fc5..0000000
--- 
a/wikipedia/src/main/java/org/wikipedia/page/fetch/RestSectionFetcherFactory.java
+++ /dev/null
@@ -1,22 +0,0 @@
-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
deleted file mode 100644
index 2585b9a..0000000
--- 
a/wikipedia/src/main/java/org/wikipedia/page/fetch/RestSectionFetcherPHP.java
+++ /dev/null
@@ -1,12 +0,0 @@
-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
deleted file mode 100644
index f798aef..0000000
--- a/wikipedia/src/main/java/org/wikipedia/page/fetch/RestSectionFetcherRB.java
+++ /dev/null
@@ -1,12 +0,0 @@
-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/fetch/SectionsFetcherRB.java 
b/wikipedia/src/main/java/org/wikipedia/page/fetch/SectionsFetcherRB.java
deleted file mode 100644
index 13c4e9c..0000000
--- a/wikipedia/src/main/java/org/wikipedia/page/fetch/SectionsFetcherRB.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.wikipedia.page.fetch;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.mediawiki.api.json.Api;
-import org.mediawiki.api.json.ApiException;
-import org.mediawiki.api.json.ApiResult;
-import org.mediawiki.api.json.RequestBuilder;
-import org.wikipedia.page.PageTitle;
-import org.wikipedia.page.Section;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/** 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 SectionsFetcherRB(PageTitle title, String sectionsRequested, 
boolean downloadImages) {
-        this.downloadImages = downloadImages;
-        this.title = title;
-        this.sectionsRequested = sectionsRequested;
-    }
-
-    @Override
-    public RequestBuilder buildRequest(Api api) {
-        RequestBuilder builder = api.action("mobileview")
-                .param("page", title.getPrefixedText())
-                .param("prop", "text|sections|languagecount")
-                .param("onlyrequestedsections", "1") // Stupid mediawiki & 
stupid backwardscompat
-                .param("sections", sectionsRequested)
-                .param("sectionprop", "toclevel|line|anchor")
-                .param("noheadings", "true");
-        if (!downloadImages) {
-            builder.param("noimages", "true");
-        }
-        return builder;
-    }
-
-    @Override
-    public List<Section> processResult(ApiResult result) throws Throwable {
-        JSONArray sectionsJSON = 
result.asObject().optJSONObject("mobileview").optJSONArray("sections");
-        ArrayList<Section> sections = new ArrayList<>();
-
-        if (sectionsJSON == null) {
-            throw new ApiException(new JSONException("FIXME: server returned 0 
sections with no error."));
-        }
-        for (int i = 0; i < sectionsJSON.length(); i++) {
-            Section newSection = new Section(sectionsJSON.getJSONObject(i));
-            sections.add(newSection);
-        }
-
-        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 d692429..30fad46 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.fetch.OldSectionsFetchTask;
+import org.wikipedia.page.SectionsFetchTask;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.CountDownLatch;
 
-public class RefreshSavedPageTask extends OldSectionsFetchTask {
+public class RefreshSavedPageTask extends SectionsFetchTask {
     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 963d87c..7d38748 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 isRESTBaseJsonPageLoadEnabled() {
+    public static boolean isExperimentalJsonPageLoadEnabled() {
         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 e09affa..8bdfc6c 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.fetch.OldSectionsFetchTask;
+import org.wikipedia.page.SectionsFetchTask;
 import org.wikipedia.staticdata.MainPageNameData;
 
 import java.util.List;
@@ -92,7 +92,7 @@
         }
     }
 
-    private class FetchMainPageTask extends OldSectionsFetchTask {
+    private class FetchMainPageTask extends SectionsFetchTask {
         public FetchMainPageTask(WikipediaApp app) {
             super(app,
                     new 
PageTitle(MainPageNameData.valueFor(app.getAppOrSystemLanguageCode()),

-- 
To view, visit https://gerrit.wikimedia.org/r/231786
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I0a8e773d07242303e063cf35de642a1fa42c0608
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: BearND <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to