Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(63)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/media/ui/MediaSessionTabHelper.java

Issue 1458703003: Media Session API: use MediaMetadata in the browser process. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@media_session_browser_side
Patch Set: remove dependencies from other CLs Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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());
}

Powered by Google App Engine
This is Rietveld 408576698