Niedzielski has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/341387 )
Change subject: Add cache option to PageClient
......................................................................
Add cache option to PageClient
Bug: T156917
Change-Id: I1ab55a6d08f6d79693ce62f709a81f0cf17e1312
---
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
M app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageClient.java
M app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageService.java
M app/src/main/java/org/wikipedia/page/PageFragmentLoadState.java
M app/src/main/java/org/wikipedia/savedpages/SavedPageSyncService.java
M app/src/main/java/org/wikipedia/widgets/WidgetProviderFeaturedPage.java
8 files changed, 38 insertions(+), 19 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia
refs/changes/87/341387/1
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 c180257..bebe394 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
@@ -25,16 +25,18 @@
}
@SuppressWarnings("unchecked")
- @NonNull @Override public Call<? extends PageLead> lead(@NonNull String
title,
+ @NonNull @Override public Call<? extends PageLead> lead(@NonNull
CacheOption cacheOption,
+ @NonNull String
title,
int
leadThumbnailWidth,
boolean noImages) {
- return service.lead(title, leadThumbnailWidth, optional(noImages));
+ return service.lead(cacheOption.save(), title, leadThumbnailWidth,
optional(noImages));
}
@SuppressWarnings("unchecked")
- @NonNull @Override public Call<? extends PageRemaining> sections(@NonNull
String title,
+ @NonNull @Override public Call<? extends PageRemaining> sections(@NonNull
CacheOption cacheOption,
+ @NonNull
String title,
boolean
noImages) {
- return service.sections(title, optional(noImages));
+ return service.sections(cacheOption.save(), title, optional(noImages));
}
/**
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 51ca18e..1463745 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
@@ -4,9 +4,11 @@
import android.support.annotation.Nullable;
import org.wikipedia.Constants;
+import org.wikipedia.dataclient.okhttp.cache.SaveHeader;
import retrofit2.Call;
import retrofit2.http.GET;
+import retrofit2.http.Header;
import retrofit2.http.Headers;
import retrofit2.http.Query;
@@ -52,7 +54,8 @@
+
"%7Cdescription%7Clastmodified%7Cnormalizedtitle%7Cdisplaytitle%7Cprotection"
+
"%7Ceditable%7Cpageprops&pageprops=wikibase_item&onlyrequestedsections=1"
+
"§ions=0§ionprop=toclevel%7Cline%7Canchor&noheadings=true")
- @NonNull Call<MwMobileViewPageLead> lead(@NonNull @Query("page") String
title,
+ @NonNull Call<MwMobileViewPageLead> lead(@Header(SaveHeader.FIELD) boolean
save,
+ @NonNull @Query("page") String
title,
@Query("thumbwidth") int
leadThumbnailWidth,
@Nullable @Query("noimages")
Boolean noImages);
@@ -65,6 +68,7 @@
@GET("w/api.php?action=mobileview&format=json&prop="
+ "text%7Csections&onlyrequestedsections=1§ions=1-"
+ "§ionprop=toclevel%7Cline%7Canchor&noheadings=true")
- @NonNull Call<MwMobileViewPageRemaining> sections(@NonNull @Query("page")
String title,
+ @NonNull Call<MwMobileViewPageRemaining>
sections(@Header(SaveHeader.FIELD) boolean save,
+ @NonNull @Query("page")
String title,
@Nullable
@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 7bcfbd8..503e52e 100644
--- a/app/src/main/java/org/wikipedia/dataclient/page/PageClient.java
+++ b/app/src/main/java/org/wikipedia/dataclient/page/PageClient.java
@@ -24,7 +24,9 @@
* @param leadThumbnailWidth one of the bucket widths for the lead image
* @param noImages add the noimages flag to the request if true
*/
- @NonNull <T extends PageLead> Call<T> lead(@NonNull String title, int
leadThumbnailWidth,
+ @NonNull <T extends PageLead> Call<T> lead(@NonNull CacheOption
cacheOption,
+ @NonNull String title,
+ int leadThumbnailWidth,
boolean noImages);
/**
@@ -33,5 +35,7 @@
* @param title the page title to be used including prefix
* @param noImages add the noimages flag to the request if true
*/
- @NonNull <T extends PageRemaining> Call<T> sections(@NonNull String title,
boolean noImages);
+ @NonNull <T extends PageRemaining> Call<T> sections(@NonNull CacheOption
cacheOption,
+ @NonNull String title,
+ boolean noImages);
}
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 e31de34..cb5e7d2 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
@@ -46,16 +46,18 @@
}
@SuppressWarnings("unchecked")
- @NonNull @Override public Call<? extends PageLead> lead(@NonNull String
title,
+ @NonNull @Override public Call<? extends PageLead> lead(@NonNull
CacheOption cacheOption,
+ @NonNull String
title,
int
leadThumbnailWidth,
boolean noImages) {
- return service.lead(title, optional(noImages));
+ return service.lead(cacheOption.save(), title, optional(noImages));
}
@SuppressWarnings("unchecked")
- @NonNull @Override public Call<? extends PageRemaining> sections(@NonNull
String title,
+ @NonNull @Override public Call<? extends PageRemaining> sections(@NonNull
CacheOption cacheOption,
+ @NonNull
String title,
boolean
noImages) {
- return service.sections(title, optional(noImages));
+ return service.sections(cacheOption.save(), title, optional(noImages));
}
/* 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/RbPageService.java
b/app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageService.java
index e9e75cb..72467d5 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
@@ -3,12 +3,14 @@
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
+import org.wikipedia.dataclient.okhttp.cache.SaveHeader;
import org.wikipedia.dataclient.restbase.RbDefinition;
import java.util.Map;
import retrofit2.Call;
import retrofit2.http.GET;
+import retrofit2.http.Header;
import retrofit2.http.Headers;
import retrofit2.http.Path;
import retrofit2.http.Query;
@@ -42,7 +44,8 @@
ACCEPT_HEADER_MOBILE_SECTIONS
})
@GET("page/mobile-sections-lead/{title}")
- @NonNull Call<RbPageLead> lead(@NonNull @Path("title") String title,
+ @NonNull Call<RbPageLead> lead(@Header(SaveHeader.FIELD) boolean save,
+ @NonNull @Path("title") String title,
@Nullable @Query("noimages") Boolean
noImages);
/**
@@ -53,7 +56,8 @@
*/
@Headers(ACCEPT_HEADER_MOBILE_SECTIONS)
@GET("page/mobile-sections-remaining/{title}")
- @NonNull Call<RbPageRemaining> sections(@NonNull @Path("title") String
title,
+ @NonNull Call<RbPageRemaining> sections(@Header(SaveHeader.FIELD) boolean
save,
+ @NonNull @Path("title") String
title,
@Nullable @Query("noimages")
Boolean noImages);
// todo: this Content Service-only endpoint is under page/ but that
implementation detail should
diff --git a/app/src/main/java/org/wikipedia/page/PageFragmentLoadState.java
b/app/src/main/java/org/wikipedia/page/PageFragmentLoadState.java
index ef9393c..6cd8dcd 100644
--- a/app/src/main/java/org/wikipedia/page/PageFragmentLoadState.java
+++ b/app/src/main/java/org/wikipedia/page/PageFragmentLoadState.java
@@ -21,6 +21,7 @@
import org.wikipedia.bridge.CommunicationBridge;
import org.wikipedia.database.contract.PageImageHistoryContract;
import org.wikipedia.dataclient.ServiceError;
+import org.wikipedia.dataclient.page.PageClient;
import org.wikipedia.dataclient.page.PageClientFactory;
import org.wikipedia.dataclient.page.PageLead;
import org.wikipedia.dataclient.page.PageRemaining;
@@ -242,8 +243,8 @@
app.getSessionFunnel().leadSectionFetchStart();
PageClientFactory
.create(model.getTitle().getWikiSite(),
model.getTitle().namespace())
- .lead(model.getTitle().getPrefixedText(),
calculateLeadImageWidth(),
- !app.isImageDownloadEnabled())
+ .lead(PageClient.CacheOption.CACHE,
model.getTitle().getPrefixedText(),
+ calculateLeadImageWidth(),
!app.isImageDownloadEnabled())
.enqueue(new retrofit2.Callback<PageLead>() {
@Override public void onResponse(Call<PageLead> call,
Response<PageLead> rsp) {
app.getSessionFunnel().leadSectionFetchEnd();
@@ -610,7 +611,8 @@
app.getSessionFunnel().restSectionsFetchStart();
PageClientFactory
.create(model.getTitle().getWikiSite(),
model.getTitle().namespace())
- .sections(model.getTitle().getPrefixedText(),
!app.isImageDownloadEnabled())
+ .sections(PageClient.CacheOption.CACHE,
model.getTitle().getPrefixedText(),
+ !app.isImageDownloadEnabled())
.enqueue(new retrofit2.Callback<PageRemaining>() {
@Override public void onResponse(Call<PageRemaining> call,
Response<PageRemaining> rsp) {
app.getSessionFunnel().restSectionsFetchEnd();
diff --git
a/app/src/main/java/org/wikipedia/savedpages/SavedPageSyncService.java
b/app/src/main/java/org/wikipedia/savedpages/SavedPageSyncService.java
index 4bda952..73ffb3e 100644
--- a/app/src/main/java/org/wikipedia/savedpages/SavedPageSyncService.java
+++ b/app/src/main/java/org/wikipedia/savedpages/SavedPageSyncService.java
@@ -40,7 +40,7 @@
}
@Override
- protected void onHandleIntent(@NonNull Intent intent) {
+ protected void onHandleIntent(@Nullable Intent intent) {
if (!DeviceUtil.isOnline(this)) {
L.i("Device is offline; aborting sync service");
return;
diff --git
a/app/src/main/java/org/wikipedia/widgets/WidgetProviderFeaturedPage.java
b/app/src/main/java/org/wikipedia/widgets/WidgetProviderFeaturedPage.java
index 39762b4..cd1fcae 100644
--- a/app/src/main/java/org/wikipedia/widgets/WidgetProviderFeaturedPage.java
+++ b/app/src/main/java/org/wikipedia/widgets/WidgetProviderFeaturedPage.java
@@ -79,7 +79,8 @@
app.getWikiSite());
getApiService(title)
- .lead(title.getPrefixedText(),
DimenUtil.calculateLeadImageWidth(),
+ .lead(PageClient.CacheOption.CACHE, title.getPrefixedText(),
+ DimenUtil.calculateLeadImageWidth(),
!app.isImageDownloadEnabled())
.enqueue(new retrofit2.Callback<PageLead>() {
@Override public void onResponse(Call<PageLead> call,
Response<PageLead> rsp) {
--
To view, visit https://gerrit.wikimedia.org/r/341387
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I1ab55a6d08f6d79693ce62f709a81f0cf17e1312
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