am 80e8a28c: Merge "Fix artwork not received in RemoteController metadata update." into klp-dev

* commit '80e8a28c339e88b59b681eff20d5438526d6b699':
  Fix artwork not received in RemoteController metadata update.
diff --git a/media/java/android/media/RemoteController.java b/media/java/android/media/RemoteController.java
index 29e505c..10e1c70 100644
--- a/media/java/android/media/RemoteController.java
+++ b/media/java/android/media/RemoteController.java
@@ -418,6 +418,12 @@
             mApplied = false;
         }
 
+        private void cleanupBitmapFromBundle(int key) {
+            if (METADATA_KEYS_TYPE.get(key, METADATA_TYPE_INVALID) == METADATA_TYPE_BITMAP) {
+                mEditorMetadata.remove(String.valueOf(key));
+            }
+        }
+
         /**
          * Applies all of the metadata changes that have been set since the MediaMetadataEditor
          * instance was created with {@link RemoteController#editMetadata()}
@@ -529,9 +535,6 @@
 
         public void setArtwork(int genId, Bitmap artwork) {
             if (DEBUG) { Log.v(TAG, "setArtwork("+genId+")"); }
-            if (artwork == null) {
-                return;
-            }
             synchronized(mGenLock) {
                 if (mClientGenerationIdCurrent != genId) {
                     return;
@@ -700,6 +703,10 @@
                     // existing metadata, merge existing and new
                     mMetadataEditor.mEditorMetadata.putAll(metadata);
                 }
+                mMetadataEditor.putBitmap(MediaMetadataEditor.BITMAP_KEY_ARTWORK,
+                        (Bitmap)metadata.getParcelable(
+                                String.valueOf(MediaMetadataEditor.BITMAP_KEY_ARTWORK)));
+                mMetadataEditor.cleanupBitmapFromBundle(MediaMetadataEditor.BITMAP_KEY_ARTWORK);
             } else {
                 mMetadataEditor = new MetadataEditor(metadata, editableKeys);
             }