[MediaWiki-commits] [Gerrit] Add article title pronunciations - change (apps...wikipedia)
jenkins-bot has submitted this change and it was merged. Change subject: Add article title pronunciations .. Add article title pronunciations * Unpack the article title pronunciation URL from the lead Content Service response and allow it to be played. * Fix a bug where the lead subtitle was not cleared when transitioning from an article with a displayable subtitle to one without. Depends: Ie8bcd2fbd1d649d5f2c402662398244b42dde061 Bug: T114524 Change-Id: Icf96e6f0d92f55f28dca8793aa6d17cdf3bc851a --- M app/src/main/java/org/wikipedia/media/AvPlayerImplementation.java M app/src/main/java/org/wikipedia/media/MediaPlayerImplementation.java M app/src/main/java/org/wikipedia/page/Page.java M app/src/main/java/org/wikipedia/page/PageProperties.java M app/src/main/java/org/wikipedia/page/leadimages/LeadImagesHandler.java M app/src/main/java/org/wikipedia/richtext/AudioUrlSpan.java M app/src/main/java/org/wikipedia/richtext/DrawableSpan.java M app/src/main/java/org/wikipedia/server/PageLead.java M app/src/main/java/org/wikipedia/server/PageLeadProperties.java M app/src/main/java/org/wikipedia/server/mwapi/MwPageLead.java M app/src/main/java/org/wikipedia/server/restbase/RbPageCombo.java M app/src/main/java/org/wikipedia/server/restbase/RbPageLead.java M app/src/main/java/org/wikipedia/views/ArticleHeaderView.java 13 files changed, 129 insertions(+), 21 deletions(-) Approvals: Dbrant: Looks good to me, approved jenkins-bot: Verified diff --git a/app/src/main/java/org/wikipedia/media/AvPlayerImplementation.java b/app/src/main/java/org/wikipedia/media/AvPlayerImplementation.java index 8348d7d..dce958e 100644 --- a/app/src/main/java/org/wikipedia/media/AvPlayerImplementation.java +++ b/app/src/main/java/org/wikipedia/media/AvPlayerImplementation.java @@ -3,12 +3,23 @@ import android.support.annotation.NonNull; interface AvPlayerImplementation { +// May be called when initialized. void deinit(); + +// May only be called when deinitialized. void init(); + +// May be called when initialized. void load(@NonNull String path, @NonNull AvPlayer.Callback callback, @NonNull AvPlayer.ErrorCallback errorCallback); + +// May be called when playing or paused. void stop(); + +// May be called when loaded and not playing. void play(@NonNull AvPlayer.Callback callback, @NonNull AvPlayer.ErrorCallback errorCallback); + +// May be called when playing. void pause(); -} \ No newline at end of file +} diff --git a/app/src/main/java/org/wikipedia/media/MediaPlayerImplementation.java b/app/src/main/java/org/wikipedia/media/MediaPlayerImplementation.java index 670e906..d5bd274 100644 --- a/app/src/main/java/org/wikipedia/media/MediaPlayerImplementation.java +++ b/app/src/main/java/org/wikipedia/media/MediaPlayerImplementation.java @@ -9,7 +9,6 @@ public class MediaPlayerImplementation implements AvPlayerImplementation { private static final boolean VERBOSE = false; -private boolean paused; @NonNull private final MediaPlayer player = new MediaPlayer(); @@ -23,10 +22,6 @@ @Override public void init() { -if (VERBOSE) { -L.v("Resetting"); -} -player.reset(); } @Override @@ -44,10 +39,9 @@ } // Do not call MediaPlayer.stop(). This requires going through the whole lifecycle again. -if (!paused) { -pause(); -} +// Also, seek triggers playback, so call before pausing. player.seekTo(0); +pause(); } @Override @@ -62,7 +56,6 @@ if (VERBOSE) { L.v("Pausing"); } -paused = true; player.pause(); } @@ -70,9 +63,9 @@ @NonNull MediaPlayer.OnPreparedListener listener, @NonNull MediaPlayer.OnErrorListener errorListener) { if (VERBOSE) { -L.v("Loading"); +L.v("Loading path=" + path); } -paused = false; +player.reset(); player.setOnPreparedListener(listener); player.setOnErrorListener(errorListener); if (setDataSource(path)) { @@ -87,7 +80,6 @@ if (VERBOSE) { L.v("Playing"); } -paused = false; player.setOnCompletionListener(listener); player.setOnErrorListener(errorListener); player.start(); diff --git a/app/src/main/java/org/wikipedia/page/Page.java b/app/src/main/java/org/wikipedia/page/Page.java index abf31f3..7188062 100755 --- a/app/src/main/java/org/wikipedia/page/Page.java +++ b/app/src/main/java/org/wikipedia/page/Page.java @@ -1,5 +1,7 @@ package org.wikipedia.page; +import android.support.annotation.Nullable; + import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -56,6 +58,11 @@ return
[MediaWiki-commits] [Gerrit] Add article title pronunciations - change (apps...wikipedia)
Niedzielski has uploaded a new change for review. https://gerrit.wikimedia.org/r/252367 Change subject: Add article title pronunciations .. Add article title pronunciations * Unpack the article title pronunciation URL from the lead Content Service response and allow it to be played. * Fix a bug where the lead subtitle was not cleared when transitioning from an article with a displayable subtitle to one without. Bug: T114524 Change-Id: Icf96e6f0d92f55f28dca8793aa6d17cdf3bc851a --- M app/src/main/java/org/wikipedia/media/AvPlayerImplementation.java M app/src/main/java/org/wikipedia/media/MediaPlayerImplementation.java M app/src/main/java/org/wikipedia/page/Page.java M app/src/main/java/org/wikipedia/page/PageProperties.java M app/src/main/java/org/wikipedia/page/leadimages/LeadImagesHandler.java M app/src/main/java/org/wikipedia/richtext/AudioUrlSpan.java M app/src/main/java/org/wikipedia/server/PageLead.java M app/src/main/java/org/wikipedia/server/PageLeadProperties.java M app/src/main/java/org/wikipedia/server/mwapi/MwPageLead.java M app/src/main/java/org/wikipedia/server/restbase/RbPageCombo.java M app/src/main/java/org/wikipedia/server/restbase/RbPageLead.java M app/src/main/java/org/wikipedia/views/ArticleHeaderView.java 12 files changed, 83 insertions(+), 20 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia refs/changes/67/252367/1 diff --git a/app/src/main/java/org/wikipedia/media/AvPlayerImplementation.java b/app/src/main/java/org/wikipedia/media/AvPlayerImplementation.java index 8348d7d..dce958e 100644 --- a/app/src/main/java/org/wikipedia/media/AvPlayerImplementation.java +++ b/app/src/main/java/org/wikipedia/media/AvPlayerImplementation.java @@ -3,12 +3,23 @@ import android.support.annotation.NonNull; interface AvPlayerImplementation { +// May be called when initialized. void deinit(); + +// May only be called when deinitialized. void init(); + +// May be called when initialized. void load(@NonNull String path, @NonNull AvPlayer.Callback callback, @NonNull AvPlayer.ErrorCallback errorCallback); + +// May be called when playing or paused. void stop(); + +// May be called when loaded and not playing. void play(@NonNull AvPlayer.Callback callback, @NonNull AvPlayer.ErrorCallback errorCallback); + +// May be called when playing. void pause(); -} \ No newline at end of file +} diff --git a/app/src/main/java/org/wikipedia/media/MediaPlayerImplementation.java b/app/src/main/java/org/wikipedia/media/MediaPlayerImplementation.java index 670e906..d5bd274 100644 --- a/app/src/main/java/org/wikipedia/media/MediaPlayerImplementation.java +++ b/app/src/main/java/org/wikipedia/media/MediaPlayerImplementation.java @@ -9,7 +9,6 @@ public class MediaPlayerImplementation implements AvPlayerImplementation { private static final boolean VERBOSE = false; -private boolean paused; @NonNull private final MediaPlayer player = new MediaPlayer(); @@ -23,10 +22,6 @@ @Override public void init() { -if (VERBOSE) { -L.v("Resetting"); -} -player.reset(); } @Override @@ -44,10 +39,9 @@ } // Do not call MediaPlayer.stop(). This requires going through the whole lifecycle again. -if (!paused) { -pause(); -} +// Also, seek triggers playback, so call before pausing. player.seekTo(0); +pause(); } @Override @@ -62,7 +56,6 @@ if (VERBOSE) { L.v("Pausing"); } -paused = true; player.pause(); } @@ -70,9 +63,9 @@ @NonNull MediaPlayer.OnPreparedListener listener, @NonNull MediaPlayer.OnErrorListener errorListener) { if (VERBOSE) { -L.v("Loading"); +L.v("Loading path=" + path); } -paused = false; +player.reset(); player.setOnPreparedListener(listener); player.setOnErrorListener(errorListener); if (setDataSource(path)) { @@ -87,7 +80,6 @@ if (VERBOSE) { L.v("Playing"); } -paused = false; player.setOnCompletionListener(listener); player.setOnErrorListener(errorListener); player.start(); diff --git a/app/src/main/java/org/wikipedia/page/Page.java b/app/src/main/java/org/wikipedia/page/Page.java index abf31f3..7188062 100755 --- a/app/src/main/java/org/wikipedia/page/Page.java +++ b/app/src/main/java/org/wikipedia/page/Page.java @@ -1,5 +1,7 @@ package org.wikipedia.page; +import android.support.annotation.Nullable; + import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -56,6 +58,11 @@ return pageProperties.getDisplayTitle(); } +@Nullable +public String