[MediaWiki-commits] [Gerrit] Add article title pronunciations - change (apps...wikipedia)

2015-11-12 Thread jenkins-bot (Code Review)
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)

2015-11-10 Thread Niedzielski (Code Review)
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