Niedzielski has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/341386 )
Change subject: Remove page combo endpoint usage
......................................................................
Remove page combo endpoint usage
Bug: T156917
Change-Id: Idf9e527a7fc4674821a9afdc0363defdad09247f
---
D
app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwMobileViewPageCombo.java
M app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwPageClient.java
M app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwPageService.java
M app/src/main/java/org/wikipedia/dataclient/page/PageClient.java
D app/src/main/java/org/wikipedia/dataclient/page/PageCombo.java
M app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageClient.java
D app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageCombo.java
M app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageService.java
M app/src/main/java/org/wikipedia/savedpages/SavedPageSyncService.java
9 files changed, 10 insertions(+), 189 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia
refs/changes/86/341386/1
diff --git
a/app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwMobileViewPageCombo.java
b/app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwMobileViewPageCombo.java
deleted file mode 100644
index 2abaf41..0000000
---
a/app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwMobileViewPageCombo.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.wikipedia.dataclient.mwapi.page;
-
-import org.wikipedia.dataclient.page.PageCombo;
-
-/**
- * Combines MwMobileViewPageLead and MwMobileViewPageRemaining Gson POJOs for
mobileview API.
- * In mobileview API the implementation is basically the same as
MwMobileViewPageLead.
- * The class name "Page" was already used, and is very entrenched in this code
base.
- */
-public class MwMobileViewPageCombo extends MwMobileViewPageLead implements
PageCombo {
-}
diff --git
a/app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwPageClient.java
b/app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwPageClient.java
index db13a09..c180257 100644
--- a/app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwPageClient.java
+++ b/app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwPageClient.java
@@ -2,17 +2,12 @@
import android.support.annotation.NonNull;
-import org.wikipedia.dataclient.ServiceError;
import org.wikipedia.dataclient.page.PageClient;
-import org.wikipedia.dataclient.page.PageCombo;
import org.wikipedia.dataclient.page.PageLead;
import org.wikipedia.dataclient.page.PageRemaining;
import org.wikipedia.dataclient.page.PageSummary;
-import java.io.IOException;
-
import retrofit2.Call;
-import retrofit2.Response;
/**
* Retrofit web service client for MediaWiki PHP API.
@@ -40,17 +35,6 @@
@NonNull @Override public Call<? extends PageRemaining> sections(@NonNull
String title,
boolean
noImages) {
return service.sections(title, optional(noImages));
- }
-
- @Override public PageCombo pageCombo(String title, boolean noImages)
throws IOException {
- Response<MwMobileViewPageCombo> rsp = service.pageCombo(title,
optional(noImages)).execute();
- if (!rsp.body().hasError()) {
- return rsp.body();
- }
- ServiceError err = rsp.body() == null || rsp.body().getError() == null
- ? null
- : rsp.body().getError();
- throw new IOException(err == null ? rsp.message() : err.getDetails());
}
/**
diff --git
a/app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwPageService.java
b/app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwPageService.java
index 53711eb..51ca18e 100644
--- a/app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwPageService.java
+++ b/app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwPageService.java
@@ -67,19 +67,4 @@
+ "§ionprop=toclevel%7Cline%7Canchor&noheadings=true")
@NonNull Call<MwMobileViewPageRemaining> sections(@NonNull @Query("page")
String title,
@Nullable
@Query("noimages") Boolean noImages);
-
- /**
- * Gets all page content of a given title -- for refreshing a saved page
- * Note: the only difference in the URL from #pageLead is the sections=all
instead of 0.
- *
- * @param title the page title to be used including prefix
- * @param noImages add the noimages flag to the request if true
- */
- @GET("w/api.php?action=mobileview&format=json&formatversion=2&prop="
- +
"text%7Csections%7Clanguagecount%7Cthumb%7Cimage%7Cid%7Crevision%7Cdescription"
- +
"%7Clastmodified%7Cnormalizedtitle%7Cdisplaytitle%7Cprotection%7Ceditable"
- +
"%7Cpageprops&pageprops=wikibase_item&onlyrequestedsections=1§ions=all"
- + "§ionprop=toclevel%7Cline%7Canchor&noheadings=true")
- Call<MwMobileViewPageCombo> pageCombo(@Query("page") String title,
- @Query("noimages") Boolean noImages);
}
diff --git a/app/src/main/java/org/wikipedia/dataclient/page/PageClient.java
b/app/src/main/java/org/wikipedia/dataclient/page/PageClient.java
index a8f4008..7bcfbd8 100644
--- a/app/src/main/java/org/wikipedia/dataclient/page/PageClient.java
+++ b/app/src/main/java/org/wikipedia/dataclient/page/PageClient.java
@@ -2,8 +2,6 @@
import android.support.annotation.NonNull;
-import java.io.IOException;
-
import retrofit2.Call;
/**
@@ -36,14 +34,4 @@
* @param noImages add the noimages flag to the request if true
*/
@NonNull <T extends PageRemaining> Call<T> sections(@NonNull String title,
boolean noImages);
-
- /**
- * Gets all page content of a given title. Used in the saved page sync
background service.
- * Synchronous call.
- *
- * @param title the page title to be used including prefix
- * @param noImages add the noimages flag to the request if true
- * @throws IOException when the request did not succeed
- */
- PageCombo pageCombo(String title, boolean noImages) throws IOException;
}
diff --git a/app/src/main/java/org/wikipedia/dataclient/page/PageCombo.java
b/app/src/main/java/org/wikipedia/dataclient/page/PageCombo.java
deleted file mode 100644
index c066b07..0000000
--- a/app/src/main/java/org/wikipedia/dataclient/page/PageCombo.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.wikipedia.dataclient.page;
-
-/**
- * Combines PageLead and PageRemaining Gson POJIs for mobileview API.
- * It's basically the same as PageLead.
- * The class name "Page" was already used, and is very entrenched in this code
base.
- */
-public interface PageCombo extends PageLead {
-
- /** So we can have polymorphic Retrofit Callbacks */
- interface Callback {
- void success(PageCombo pageCombo);
-
- void failure(Throwable throwable);
- }
-}
diff --git
a/app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageClient.java
b/app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageClient.java
index 36f9fb3..e31de34 100644
--- a/app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageClient.java
+++ b/app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageClient.java
@@ -5,15 +5,12 @@
import com.google.gson.JsonParseException;
-import org.wikipedia.dataclient.ServiceError;
import org.wikipedia.dataclient.page.PageClient;
-import org.wikipedia.dataclient.page.PageCombo;
import org.wikipedia.dataclient.page.PageLead;
import org.wikipedia.dataclient.page.PageRemaining;
import org.wikipedia.dataclient.page.PageSummary;
import org.wikipedia.dataclient.restbase.RbDefinition;
-import java.io.IOException;
import java.util.Map;
import retrofit2.Call;
@@ -59,17 +56,6 @@
@NonNull @Override public Call<? extends PageRemaining> sections(@NonNull
String title,
boolean
noImages) {
return service.sections(title, optional(noImages));
- }
-
- @Override public PageCombo pageCombo(String title, boolean noImages)
throws IOException {
- Response<RbPageCombo> rsp = service.pageCombo(title,
optional(noImages)).execute();
- if (!rsp.body().hasError()) {
- return rsp.body();
- }
- ServiceError err = rsp.body() == null || rsp.body().getError() == null
- ? null
- : rsp.body().getError();
- throw new IOException(err == null ? rsp.message() : err.getDetails());
}
/* Not defined in the PageClient interface since the Wiktionary definition
endpoint exists only
diff --git
a/app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageCombo.java
b/app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageCombo.java
deleted file mode 100644
index 741271e..0000000
--- a/app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageCombo.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package org.wikipedia.dataclient.restbase.page;
-
-import android.location.Location;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-
-import org.wikipedia.dataclient.WikiSite;
-import org.wikipedia.dataclient.page.PageCombo;
-import org.wikipedia.dataclient.restbase.RbServiceError;
-import org.wikipedia.page.Page;
-import org.wikipedia.page.PageProperties;
-import org.wikipedia.page.PageTitle;
-import org.wikipedia.util.log.L;
-
-
-/**
- * Combines RbPageLead and RbPageRemaining Gson POJOs for RESTBase Nodejs API.
- * When using the Mobile Content Service API this class composes the two
parts, lead and
- * remaining.
- */
-public class RbPageCombo implements PageCombo {
- @SuppressWarnings("unused") @Nullable private RbServiceError error;
- @SuppressWarnings("unused") @Nullable private RbPageLead lead;
- @SuppressWarnings("unused") @Nullable private RbPageRemaining remaining;
-
- @Override
- public boolean hasError() {
- return error != null;
- }
-
- @Override
- @Nullable
- public RbServiceError getError() {
- return error;
- }
-
- @Override
- public void logError(String message) {
- if (error != null) {
- message += ": " + error.toString();
- }
- L.e(message);
- }
-
- /**
- * Note: before using this check that #hasError is false
- */
- @Override
- public Page toPage(PageTitle title) {
- if (lead == null) {
- throw new RuntimeException("lead is null. Check for errors before
use!");
- }
- Page page = new Page(lead.adjustPageTitle(title), lead.getSections(),
- toPageProperties(title.getWikiSite()));
- if (remaining != null) {
- page.augmentRemainingSections(remaining.getSections());
- }
- return page;
- }
-
- @Override
- public String getLeadSectionContent() {
- return lead != null ? lead.getLeadSectionContent() : "";
- }
-
- @Override
- @Nullable
- public String getTitlePronunciationUrl() {
- return lead == null ? null : lead.getTitlePronunciationUrl();
- }
-
- @Nullable
- @Override
- public Location getGeo() {
- return lead == null ? null : lead.getGeo();
- }
-
- /** Converter */
- public PageProperties toPageProperties(@NonNull WikiSite wiki) {
- return new PageProperties(wiki, lead);
- }
-}
diff --git
a/app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageService.java
b/app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageService.java
index 875d159..e9e75cb 100644
---
a/app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageService.java
+++
b/app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageService.java
@@ -56,18 +56,6 @@
@NonNull Call<RbPageRemaining> sections(@NonNull @Path("title") String
title,
@Nullable @Query("noimages")
Boolean noImages);
- /**
- * Gets all page content of a given title -- for refreshing a saved page
- * Note: the only difference in the URL from #pageLead is the sections=all
instead of 0.
- *
- * @param title the page title to be used including prefix
- * @param noImages add the noimages flag to the request if true
- */
- @Headers(ACCEPT_HEADER_MOBILE_SECTIONS)
- @GET("page/mobile-sections/{title}")
- Call<RbPageCombo> pageCombo(@Path("title") String title,
- @Query("noimages") Boolean noImages);
-
// todo: this Content Service-only endpoint is under page/ but that
implementation detail should
// probably not be reflected here. Move to WordDefinitionClient
/**
diff --git
a/app/src/main/java/org/wikipedia/savedpages/SavedPageSyncService.java
b/app/src/main/java/org/wikipedia/savedpages/SavedPageSyncService.java
index 8276e03..4bda952 100644
--- a/app/src/main/java/org/wikipedia/savedpages/SavedPageSyncService.java
+++ b/app/src/main/java/org/wikipedia/savedpages/SavedPageSyncService.java
@@ -6,11 +6,9 @@
import android.support.annotation.Nullable;
import android.support.annotation.VisibleForTesting;
-import org.wikipedia.WikipediaApp;
import org.wikipedia.dataclient.okhttp.OkHttpConnectionFactory;
import org.wikipedia.dataclient.page.PageClient;
import org.wikipedia.dataclient.page.PageClientFactory;
-import org.wikipedia.page.Page;
import org.wikipedia.page.PageTitle;
import org.wikipedia.readinglist.page.ReadingListPageRow;
import org.wikipedia.readinglist.page.database.ReadingListPageDao;
@@ -104,15 +102,16 @@
}
try {
- final Page page =
getApiService(title).pageCombo(title.getPrefixedText(),
-
!WikipediaApp.getInstance().isImageDownloadEnabled()).toPage(title);
- final SavedPage savedPage = new SavedPage(page.getTitle());
- final ImageUrlMap imageUrlMap = new
ImageUrlMap.Builder(FileUtil.getSavedPageDirFor(title))
- .extractUrls(page).build();
- downloadImages(imageUrlMap);
- savedPage.writeUrlMap(imageUrlMap.toJSON());
- L.i("Page " + title.getDisplayText() + " saved!");
- return true;
+// final Page page =
getApiService(title).pageCombo(title.getPrefixedText(),
+//
!WikipediaApp.getInstance().isImageDownloadEnabled()).toPage(title);
+// final SavedPage savedPage = new SavedPage(page.getTitle());
+// final ImageUrlMap imageUrlMap = new
ImageUrlMap.Builder(FileUtil.getSavedPageDirFor(title))
+// .extractUrls(page).build();
+// downloadImages(imageUrlMap);
+// savedPage.writeUrlMap(imageUrlMap.toJSON());
+// L.i("Page " + title.getDisplayText() + " saved!");
+// return true;
+ return false;
} catch (Exception e) {
L.e("Failed to save page " + title.getDisplayText(), e);
return false;
--
To view, visit https://gerrit.wikimedia.org/r/341386
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Idf9e527a7fc4674821a9afdc0363defdad09247f
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Niedzielski <[email protected]>
Gerrit-Reviewer: Sniedzielski <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits