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()); |
} |