[MediaWiki-commits] [Gerrit] apps...wikipedia[master]: Use displaytitle from server for link previews
jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/390853 ) Change subject: Use displaytitle from server for link previews .. Use displaytitle from server for link previews Prevents article title display inconsistencies by using the displaytitle provided by the server response (and deferring adding the title to the link preview until then). In practice, the delay should be barely user- noticeable. If the summary request fails, the app falls back to the old behavior in the error callback. This should also have the desirable effect of showing the true article title in previews, with any redirects resolved. Bug: T149429 Change-Id: I9030f5871250505e0e0399c94f2b857c30204db5 --- M app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwPageService.java M app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwQueryPageSummary.java M app/src/main/java/org/wikipedia/dataclient/page/PageSummary.java M app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageSummary.java M app/src/main/java/org/wikipedia/page/linkpreview/LinkPreviewDialog.java 5 files changed, 42 insertions(+), 14 deletions(-) Approvals: jenkins-bot: Verified Cooltey: Looks good to me, approved 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 03cb652..f2e2844 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 @@ -37,8 +37,8 @@ */ @Headers("x-analytics: preview=1") @GET("w/api.php?action=query=json=2==" -+ "=extracts%7Cpageimages=5==thumbnail%7Cname" -+ "=any=" + Constants.PREFERRED_THUMB_SIZE) ++ "=extracts%7Cpageimages%7Cpageprops=5=thumbnail%7Cname" ++ "=any==" + Constants.PREFERRED_THUMB_SIZE) @NonNull Call summary(@NonNull @Query("titles") String title); /** diff --git a/app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwQueryPageSummary.java b/app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwQueryPageSummary.java index ba2723f..f670ff7 100644 --- a/app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwQueryPageSummary.java +++ b/app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwQueryPageSummary.java @@ -29,6 +29,11 @@ } @Override @Nullable +public String getDisplayTitle() { +return getFirstPage() == null ? null : getFirstPage().getDisplayTitle(); +} + +@Override @Nullable public String getExtract() { return getFirstPage() == null ? null : getFirstPage().extract; } @@ -49,6 +54,7 @@ private static class MwPage { @SuppressWarnings("unused") @Nullable private String title; +@SuppressWarnings("unused") @Nullable private PageProps pageprops; @SuppressWarnings("unused") @Nullable private String extract; @SuppressWarnings("unused") @Nullable private Thumb thumbnail; @@ -56,16 +62,31 @@ public String getThumbnailUrl() { return thumbnail == null ? null : thumbnail.getUrl(); } + +@Nullable +public String getDisplayTitle() { +return pageprops != null && pageprops.displayTitle() != null +? pageprops.displayTitle() +: title; +} } /** * For the thumbnail URL of the page */ -public static class Thumb { +static class Thumb { @SuppressWarnings("unused") private String source; -public String getUrl() { +String getUrl() { return source; } } + +static class PageProps { +@SuppressWarnings("unused") @Nullable private String displaytitle; + +String displayTitle() { +return displaytitle; +} +} } diff --git a/app/src/main/java/org/wikipedia/dataclient/page/PageSummary.java b/app/src/main/java/org/wikipedia/dataclient/page/PageSummary.java index 0e92533..80c40a9 100644 --- a/app/src/main/java/org/wikipedia/dataclient/page/PageSummary.java +++ b/app/src/main/java/org/wikipedia/dataclient/page/PageSummary.java @@ -11,6 +11,7 @@ boolean hasError(); @Nullable ServiceError getError(); @Nullable String getTitle(); +@Nullable String getDisplayTitle(); @Nullable String getExtract(); @Nullable String getThumbnailUrl(); } diff --git a/app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageSummary.java b/app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageSummary.java index ac27029..bb7af41 100644 --- a/app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageSummary.java +++ b/app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageSummary.java @@ -3,8 +3,6 @@ import android.support.annotation.NonNull; import
[MediaWiki-commits] [Gerrit] apps...wikipedia[master]: Use displaytitle from server for link previews
Mholloway has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/390853 ) Change subject: Use displaytitle from server for link previews .. Use displaytitle from server for link previews Prevents article title display inconsistencies by using the displaytitle provided by the server response (and deferring adding the title to the link preview until then). In practice, the change should barely user- noticeable. If the summary request fails, the app falls back to the old behavior in the error callback. This should also have the desirable effect of showing the true article title in previews, with any redirects resolved. Bug: T149429 Change-Id: I9030f5871250505e0e0399c94f2b857c30204db5 --- M app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwPageService.java M app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwQueryPageSummary.java M app/src/main/java/org/wikipedia/dataclient/page/PageSummary.java M app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageSummary.java M app/src/main/java/org/wikipedia/page/linkpreview/LinkPreviewDialog.java 5 files changed, 41 insertions(+), 14 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia refs/changes/53/390853/1 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 03cb652..f2e2844 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 @@ -37,8 +37,8 @@ */ @Headers("x-analytics: preview=1") @GET("w/api.php?action=query=json=2==" -+ "=extracts%7Cpageimages=5==thumbnail%7Cname" -+ "=any=" + Constants.PREFERRED_THUMB_SIZE) ++ "=extracts%7Cpageimages%7Cpageprops=5=thumbnail%7Cname" ++ "=any==" + Constants.PREFERRED_THUMB_SIZE) @NonNull Call summary(@NonNull @Query("titles") String title); /** diff --git a/app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwQueryPageSummary.java b/app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwQueryPageSummary.java index ba2723f..f670ff7 100644 --- a/app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwQueryPageSummary.java +++ b/app/src/main/java/org/wikipedia/dataclient/mwapi/page/MwQueryPageSummary.java @@ -29,6 +29,11 @@ } @Override @Nullable +public String getDisplayTitle() { +return getFirstPage() == null ? null : getFirstPage().getDisplayTitle(); +} + +@Override @Nullable public String getExtract() { return getFirstPage() == null ? null : getFirstPage().extract; } @@ -49,6 +54,7 @@ private static class MwPage { @SuppressWarnings("unused") @Nullable private String title; +@SuppressWarnings("unused") @Nullable private PageProps pageprops; @SuppressWarnings("unused") @Nullable private String extract; @SuppressWarnings("unused") @Nullable private Thumb thumbnail; @@ -56,16 +62,31 @@ public String getThumbnailUrl() { return thumbnail == null ? null : thumbnail.getUrl(); } + +@Nullable +public String getDisplayTitle() { +return pageprops != null && pageprops.displayTitle() != null +? pageprops.displayTitle() +: title; +} } /** * For the thumbnail URL of the page */ -public static class Thumb { +static class Thumb { @SuppressWarnings("unused") private String source; -public String getUrl() { +String getUrl() { return source; } } + +static class PageProps { +@SuppressWarnings("unused") @Nullable private String displaytitle; + +String displayTitle() { +return displaytitle; +} +} } diff --git a/app/src/main/java/org/wikipedia/dataclient/page/PageSummary.java b/app/src/main/java/org/wikipedia/dataclient/page/PageSummary.java index 0e92533..80c40a9 100644 --- a/app/src/main/java/org/wikipedia/dataclient/page/PageSummary.java +++ b/app/src/main/java/org/wikipedia/dataclient/page/PageSummary.java @@ -11,6 +11,7 @@ boolean hasError(); @Nullable ServiceError getError(); @Nullable String getTitle(); +@Nullable String getDisplayTitle(); @Nullable String getExtract(); @Nullable String getThumbnailUrl(); } diff --git a/app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageSummary.java b/app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageSummary.java index ac27029..bb7af41 100644 --- a/app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageSummary.java +++ b/app/src/main/java/org/wikipedia/dataclient/restbase/page/RbPageSummary.java @@ -3,8 +3,6 @@ import android.support.annotation.NonNull; import