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

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

Issue 2009243002: Use MediaMetadata artwork in MediaNotification [NOT READY] (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@artwork_content
Patch Set: rebased onto per-frame metadata, this is a working version Created 4 years, 3 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 d69aa18d31432d9ed7ad9b12c1c814255aeb3b84..1fac0248cfc5145f68d4c98c745e0af98dba8d08 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
@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.media.ui;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
+import android.graphics.Rect;
import android.media.AudioManager;
import android.text.TextUtils;
@@ -19,6 +20,7 @@ import org.chromium.chrome.browser.tab.EmptyTabObserver;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabObserver;
import org.chromium.components.url_formatter.UrlFormatter;
+import org.chromium.content_public.browser.ImageDownloadCallback;
import org.chromium.content_public.browser.WebContents;
import org.chromium.content_public.browser.WebContentsObserver;
import org.chromium.content_public.common.MediaMetadata;
@@ -26,6 +28,7 @@ import org.chromium.ui.base.WindowAndroid;
import java.net.URI;
import java.net.URISyntaxException;
+import java.util.List;
/**
* A tab helper responsible for enabling/disabling media controls and passing
@@ -46,6 +49,25 @@ public class MediaSessionTabHelper {
private MediaNotificationInfo.Builder mNotificationInfoBuilder = null;
private MediaMetadata mFallbackMetadata;
+ private ImageDownloadCallback mImageDownloadCallback = new ImageDownloadCallback() {
+ @Override
+ public void onFinishDownloadImage(int id, int httpStatusCode, String imageUrl,
+ List<Bitmap> bitmaps, List<Rect> sizes) {
+ Log.i(TAG, "====== image downloaded ======");
+ Log.i(TAG, "id=" + Integer.toString(id));
+ Log.i(TAG, "httpStatusCode=" + Integer.toString(httpStatusCode));
+ Log.i(TAG, "imageUrl=" + imageUrl);
+ if (bitmaps.isEmpty()) {
+ Log.i(TAG, "failed to retrive image");
+ return;
+ }
+ if (mNotificationInfoBuilder == null) return;
+ mNotificationInfoBuilder.setLargeIcon(bitmaps.get(0));
+ MediaNotificationManager.show(
+ ContextUtils.getApplicationContext(), mNotificationInfoBuilder.build());
+ }
+ };
+
private MediaNotificationListener mControlsListener = new MediaNotificationListener() {
@Override
public void onPlay(int actionSource) {
@@ -100,6 +122,16 @@ public class MediaSessionTabHelper {
return;
}
+ if (metadata != null && !metadata.getArtwork().isEmpty()) {
+ Log.i(TAG, "mediaSessionStateChanged(): downloading image");
+ mTab.getWebContents().downloadImage(
+ metadata.getArtwork().get(0).getSrc(),
+ false, 1024, false, mImageDownloadCallback);
+ } else {
+ if (metadata == null) Log.i(TAG, "metadata is null");
+ else if (metadata.getArtwork().isEmpty()) Log.i(TAG, "artwork empty");
+ }
+
mFallbackMetadata = null;
// The page's title is used as a placeholder if no title is specified in the
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698