[MediaWiki-commits] [Gerrit] apps...wikipedia[master]: Advise users when they are reading an article from an offlin...
jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/365085 ) Change subject: Advise users when they are reading an article from an offline compilation .. Advise users when they are reading an article from an offline compilation * Shows a toast with the date downloaded upon loading the article * Substitutes the footer "last modified" HTML with a download date string Bug: T166652 Change-Id: I7b95f830224023493c860b8099f1563daf53 --- M app/src/main/java/org/wikipedia/offline/Compilation.java M app/src/main/java/org/wikipedia/offline/OfflineManager.java M app/src/main/java/org/wikipedia/page/Page.java M app/src/main/java/org/wikipedia/page/PageFragmentLoadState.java M app/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java M app/src/main/java/org/wikipedia/util/DateUtil.java M app/src/main/res/values-qq/strings.xml M app/src/main/res/values/strings.xml M app/src/test/java/org/wikipedia/offline/OfflineManagerTest.java 9 files changed, 88 insertions(+), 14 deletions(-) Approvals: Dbrant: Looks good to me, approved jenkins-bot: Verified diff --git a/app/src/main/java/org/wikipedia/offline/Compilation.java b/app/src/main/java/org/wikipedia/offline/Compilation.java index 03d7c9a..ec354dd 100644 --- a/app/src/main/java/org/wikipedia/offline/Compilation.java +++ b/app/src/main/java/org/wikipedia/offline/Compilation.java @@ -57,6 +57,10 @@ return ""; } +public long timestamp() { +return file.lastModified(); +} + @NonNull public String description() { try { return reader.getZimDescription(); diff --git a/app/src/main/java/org/wikipedia/offline/OfflineManager.java b/app/src/main/java/org/wikipedia/offline/OfflineManager.java index 6aeb69b..aa51a0d 100644 --- a/app/src/main/java/org/wikipedia/offline/OfflineManager.java +++ b/app/src/main/java/org/wikipedia/offline/OfflineManager.java @@ -98,11 +98,11 @@ return null; } -@NonNull public String getHtmlForTitle(@NonNull String title) throws IOException { +@NonNull public HtmlResult getHtmlForTitle(@NonNull String title) throws IOException { for (Compilation c : compilations) { ByteArrayOutputStream stream = c.getDataForTitle(title); if (stream != null) { -return stream.toString("utf-8"); +return new HtmlResult(c, stream.toString("utf-8")); } } throw new IOException("Content not found in any compilation for " + title); @@ -135,6 +135,24 @@ this.compilations = compilations; } +public static class HtmlResult { +@NonNull private String html; +@NonNull private Compilation comp; + +public HtmlResult(@NonNull Compilation comp, @NonNull String html) { +this.html = html; +this.comp = comp; +} + +public Compilation compilation() { +return comp; +} + +public String html() { +return html; +} +} + private OfflineManager() { } } diff --git a/app/src/main/java/org/wikipedia/page/Page.java b/app/src/main/java/org/wikipedia/page/Page.java index e3db2fd..30836a7 100755 --- a/app/src/main/java/org/wikipedia/page/Page.java +++ b/app/src/main/java/org/wikipedia/page/Page.java @@ -6,6 +6,7 @@ import org.wikipedia.settings.RbSwitch; +import java.util.Date; import java.util.List; /** @@ -18,6 +19,8 @@ @NonNull private final PageTitle title; @NonNull private final List sections; @NonNull private final PageProperties pageProperties; + +@Nullable private Date compilationDownloadDate; /** * An indicator what payload version the page content was originally retrieved from. @@ -90,6 +93,18 @@ return !isMainPage() && getTitle().namespace() == Namespace.MAIN; } +public boolean isFromOfflineCompilation() { +return compilationDownloadDate != null; +} + +@Nullable public Date getCompilationDownloadDate() { +return compilationDownloadDate; +} + +public void setCompilationDownloadDate(@NonNull Date date) { +this.compilationDownloadDate = date; +} + /** For old PHP API */ public void addRemainingSections(List remainingSections) { sections.addAll(remainingSections); diff --git a/app/src/main/java/org/wikipedia/page/PageFragmentLoadState.java b/app/src/main/java/org/wikipedia/page/PageFragmentLoadState.java index 6cdd65d..47911cf 100644 --- a/app/src/main/java/org/wikipedia/page/PageFragmentLoadState.java +++ b/app/src/main/java/org/wikipedia/page/PageFragmentLoadState.java @@ -54,6 +54,7 @@ import java.text.ParseException; import java.util.ArrayList; import java.util.Collections; +import java.util.Date; import java.util.List; import java.util.Locale; import java.util.Map; @@ -435,9 +436,13 @@ try {
[MediaWiki-commits] [Gerrit] apps...wikipedia[master]: Advise users when they are reading an article from an offlin...
Mholloway has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/365085 ) Change subject: Advise users when they are reading an article from an offline compilation .. Advise users when they are reading an article from an offline compilation * Shows a toast with the date downloaded upon loading the article * Substitutes the footer "last modified" HTML with a download date string Bug: T166652 Change-Id: I7b95f830224023493c860b8099f1563daf53 --- M app/src/main/java/org/wikipedia/offline/Compilation.java M app/src/main/java/org/wikipedia/offline/OfflineManager.java M app/src/main/java/org/wikipedia/page/Page.java M app/src/main/java/org/wikipedia/page/PageFragmentLoadState.java M app/src/main/java/org/wikipedia/page/bottomcontent/BottomContentHandler.java M app/src/main/java/org/wikipedia/util/DateUtil.java M app/src/main/res/values-qq/strings.xml M app/src/main/res/values/strings.xml M app/src/test/java/org/wikipedia/offline/OfflineManagerTest.java 9 files changed, 88 insertions(+), 14 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia refs/changes/85/365085/1 diff --git a/app/src/main/java/org/wikipedia/offline/Compilation.java b/app/src/main/java/org/wikipedia/offline/Compilation.java index 03d7c9a..ec354dd 100644 --- a/app/src/main/java/org/wikipedia/offline/Compilation.java +++ b/app/src/main/java/org/wikipedia/offline/Compilation.java @@ -57,6 +57,10 @@ return ""; } +public long timestamp() { +return file.lastModified(); +} + @NonNull public String description() { try { return reader.getZimDescription(); diff --git a/app/src/main/java/org/wikipedia/offline/OfflineManager.java b/app/src/main/java/org/wikipedia/offline/OfflineManager.java index 6aeb69b..b6dd4e7 100644 --- a/app/src/main/java/org/wikipedia/offline/OfflineManager.java +++ b/app/src/main/java/org/wikipedia/offline/OfflineManager.java @@ -98,11 +98,11 @@ return null; } -@NonNull public String getHtmlForTitle(@NonNull String title) throws IOException { +@NonNull public HtmlResult getHtmlForTitle(@NonNull String title) throws IOException { for (Compilation c : compilations) { ByteArrayOutputStream stream = c.getDataForTitle(title); if (stream != null) { -return stream.toString("utf-8"); +return new HtmlResult(stream.toString("utf-8"), c.timestamp()); } } throw new IOException("Content not found in any compilation for " + title); @@ -135,6 +135,24 @@ this.compilations = compilations; } +public static class HtmlResult { +@NonNull private String html; +private long timestamp; + +public HtmlResult(@NonNull String html, long timestamp) { +this.html = html; +this.timestamp = timestamp; +} + +public String html() { +return html; +} + +public long timestamp() { +return timestamp; +} +} + private OfflineManager() { } } diff --git a/app/src/main/java/org/wikipedia/page/Page.java b/app/src/main/java/org/wikipedia/page/Page.java index e3db2fd..a3f9a28 100755 --- a/app/src/main/java/org/wikipedia/page/Page.java +++ b/app/src/main/java/org/wikipedia/page/Page.java @@ -6,6 +6,7 @@ import org.wikipedia.settings.RbSwitch; +import java.util.Date; import java.util.List; /** @@ -18,6 +19,8 @@ @NonNull private final PageTitle title; @NonNull private final List sections; @NonNull private final PageProperties pageProperties; + +@Nullable private Date zimDownloadDate; /** * An indicator what payload version the page content was originally retrieved from. @@ -90,6 +93,18 @@ return !isMainPage() && getTitle().namespace() == Namespace.MAIN; } +public boolean isFromZimCompilation() { +return zimDownloadDate != null; +} + +@Nullable public Date getZimDownloadDate() { +return zimDownloadDate; +} + +public void setZimDownloadDate(@NonNull Date date) { +this.zimDownloadDate = date; +} + /** For old PHP API */ public void addRemainingSections(List remainingSections) { sections.addAll(remainingSections); diff --git a/app/src/main/java/org/wikipedia/page/PageFragmentLoadState.java b/app/src/main/java/org/wikipedia/page/PageFragmentLoadState.java index 6cdd65d..f06ddd0 100644 --- a/app/src/main/java/org/wikipedia/page/PageFragmentLoadState.java +++ b/app/src/main/java/org/wikipedia/page/PageFragmentLoadState.java @@ -54,6 +54,7 @@ import java.text.ParseException; import java.util.ArrayList; import java.util.Collections; +import java.util.Date; import java.util.List; import java.util.Locale; import java.util.Map; @@ -435,9 +436,13 @@ try { Page page = model.getPage();