Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaSessionTabHelper.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaSessionTabHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaSessionTabHelper.java |
| index db674b73dd62cb97e9aed4aab4633bb09d4401bf..a0a1ee11fb3423b1a666763df21b9e43a42258a6 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaSessionTabHelper.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaSessionTabHelper.java |
| @@ -17,6 +17,7 @@ import org.chromium.chrome.browser.tab.TabObserver; |
| import org.chromium.chrome.browser.util.UrlUtilities; |
| import org.chromium.content_public.browser.WebContents; |
| import org.chromium.content_public.browser.WebContentsObserver; |
| +import org.chromium.content_public.common.MediaMetadata; |
| import org.chromium.ui.base.WindowAndroid; |
| import java.net.URI; |
| @@ -36,6 +37,7 @@ public class MediaSessionTabHelper { |
| private WebContentsObserver mWebContentsObserver; |
| private int mPreviousVolumeControlStream = AudioManager.USE_DEFAULT_STREAM_TYPE; |
| private MediaNotificationInfo.Builder mNotificationInfoBuilder = null; |
| + private MediaMetadata mFallbackMetadata = null; |
|
Ted C
2016/03/01 17:18:11
same comment, no need for the null
mlamouri (slow - plz ping)
2016/03/16 15:47:15
Done.
|
| private MediaNotificationListener mControlsListener = new MediaNotificationListener() { |
| @Override |
| @@ -84,7 +86,8 @@ public class MediaSessionTabHelper { |
| } |
| @Override |
| - public void mediaSessionStateChanged(boolean isControllable, boolean isPaused) { |
| + public void mediaSessionStateChanged(boolean isControllable, boolean isPaused, |
| + MediaMetadata metadata) { |
| if (!isControllable) { |
| hideNotification(); |
| return; |
| @@ -97,8 +100,20 @@ public class MediaSessionTabHelper { |
| + "Showing the full URL instead."); |
| } |
| + mFallbackMetadata = null; |
| + |
| + // The page's title is used as a placeholder if no title is |
|
Ted C
2016/03/01 17:18:11
line length is 100 in java
mlamouri (slow - plz ping)
2016/03/16 15:47:15
I'm aware of that :) Some people prefer comments t
|
| + // specified in the metadata. |
| + if (metadata.title.isEmpty()) { |
|
Ted C
2016/03/01 17:18:11
TextUtils.isEmpty
mlamouri (slow - plz ping)
2016/03/16 15:47:15
Done.
|
| + mFallbackMetadata = new MediaMetadata( |
| + sanitizeMediaTitle(mTab.getTitle()), |
|
Ted C
2016/03/01 17:18:11
+4 indent on the following lines.
mlamouri (slow - plz ping)
2016/03/16 15:47:15
Done.
|
| + metadata.artist, |
| + metadata.album); |
| + metadata = mFallbackMetadata; |
| + } |
| + |
| mNotificationInfoBuilder = new MediaNotificationInfo.Builder() |
| - .setTitle(sanitizeMediaTitle(mTab.getTitle())) |
| + .setMetadata(metadata) |
| .setPaused(isPaused) |
| .setOrigin(origin) |
| .setTabId(mTab.getId()) |
| @@ -145,9 +160,11 @@ public class MediaSessionTabHelper { |
| @Override |
| public void onTitleUpdated(Tab tab) { |
| assert tab == mTab; |
| - if (mNotificationInfoBuilder == null) return; |
| + if (mNotificationInfoBuilder == null || mFallbackMetadata == null) return; |
| + |
| + mFallbackMetadata.title = sanitizeMediaTitle(mTab.getTitle()); |
| + mNotificationInfoBuilder.setMetadata(mFallbackMetadata); |
| - mNotificationInfoBuilder.setTitle(sanitizeMediaTitle(mTab.getTitle())); |
| MediaNotificationManager.show(ApplicationStatus.getApplicationContext(), |
| mNotificationInfoBuilder.build()); |
| } |