Bug 1357639 - part1 : change tab's media playing state when the tab is controlled by media control. draft
authorAlastor Wu <alwu@mozilla.com>
Mon, 08 May 2017 14:10:39 +0800
changeset 573963 7c544ea30bfc713e2b877f04427ca1fa4a2eee94
parent 571131 2e7c10a9b86e30691f67855f6c8f98d984508d7c
child 573964 24f910de830aac0bbadb5835ded0ec8badc42da5
push id57550
push useralwu@mozilla.com
push dateMon, 08 May 2017 07:06:13 +0000
bugs1357639
milestone55.0a1
Bug 1357639 - part1 : change tab's media playing state when the tab is controlled by media control. MozReview-Commit-ID: HGuMXut29uB
mobile/android/base/java/org/mozilla/gecko/media/MediaControlService.java
--- a/mobile/android/base/java/org/mozilla/gecko/media/MediaControlService.java
+++ b/mobile/android/base/java/org/mozilla/gecko/media/MediaControlService.java
@@ -330,26 +330,35 @@ public class MediaControlService extends
                 setState(State.STOPPED);
                 notifyObservers("mediaControl", "mediaControlStopped");
                 mTabReference = new WeakReference<>(null);
             }
         });
 
     }
 
+    private void setMediaStateForTab(boolean isTabPlaying) {
+        final Tab tab = mTabReference.get();
+        if (tab == null) {
+            return;
+        }
+        tab.setIsMediaPlaying(isTabPlaying);
+    }
+
     private void notifyObservers(String topic, String data) {
         GeckoAppShell.notifyObservers(topic, data);
     }
 
     private boolean isNeedToRemoveControlInterface(State state) {
         return state.equals(State.STOPPED);
     }
 
     private void setState(State newState) {
         mMediaState = newState;
+        setMediaStateForTab(mMediaState.equals(State.PLAYING));
         onStateChanged();
     }
 
     private void onStateChanged() {
         if (!mInitialize) {
             return;
         }