summaryrefslogtreecommitdiffstats
path: root/v4
diff options
context:
space:
mode:
authorJae Seo <jaeseo@google.com>2015-10-29 17:35:23 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-10-29 17:35:23 +0000
commit2a6f86b4b2f7351c48669356a59a87ce51816245 (patch)
tree8ac27aa9db7ef2b82c9e9e889fe2067d7c058c1f /v4
parente532c5a043f4b5f3530e4427c300244adcf7e2fd (diff)
parent56264c1f9d3493fc24728b37e20c11dc066385e7 (diff)
downloadandroid_frameworks_support-2a6f86b4b2f7351c48669356a59a87ce51816245.tar.gz
android_frameworks_support-2a6f86b4b2f7351c48669356a59a87ce51816245.tar.bz2
android_frameworks_support-2a6f86b4b2f7351c48669356a59a87ce51816245.zip
Merge "MediaRouter: Preserve custom data in metadata between Api21 and Compat" into mnc-ub-dev
Diffstat (limited to 'v4')
-rw-r--r--v4/api21/android/support/v4/media/MediaMetadataCompatApi21.java9
-rw-r--r--v4/java/android/support/v4/media/MediaMetadataCompat.java63
2 files changed, 21 insertions, 51 deletions
diff --git a/v4/api21/android/support/v4/media/MediaMetadataCompatApi21.java b/v4/api21/android/support/v4/media/MediaMetadataCompatApi21.java
index eddcf76944..fd51f783ce 100644
--- a/v4/api21/android/support/v4/media/MediaMetadataCompatApi21.java
+++ b/v4/api21/android/support/v4/media/MediaMetadataCompatApi21.java
@@ -19,6 +19,7 @@ package android.support.v4.media;
import android.graphics.Bitmap;
import android.media.MediaMetadata;
import android.media.Rating;
+import android.os.Parcel;
import java.util.Set;
@@ -43,6 +44,14 @@ class MediaMetadataCompatApi21 {
return ((MediaMetadata) metadataObj).getText(key);
}
+ public static void writeToParcel(Object metadataObj, Parcel dest, int flags) {
+ ((MediaMetadata) metadataObj).writeToParcel(dest, flags);
+ }
+
+ public static Object createFromParcel(Parcel in) {
+ return MediaMetadata.CREATOR.createFromParcel(in);
+ }
+
public static class Builder {
public static Object newInstance() {
return new MediaMetadata.Builder();
diff --git a/v4/java/android/support/v4/media/MediaMetadataCompat.java b/v4/java/android/support/v4/media/MediaMetadataCompat.java
index d6ebfa410a..f9bd3ae52f 100644
--- a/v4/java/android/support/v4/media/MediaMetadataCompat.java
+++ b/v4/java/android/support/v4/media/MediaMetadataCompat.java
@@ -510,32 +510,12 @@ public final class MediaMetadataCompat implements Parcelable {
return null;
}
- Builder builder = new Builder();
- for (String key : MediaMetadataCompatApi21.keySet(metadataObj)) {
- Integer type = METADATA_KEYS_TYPE.get(key);
- if (type != null) {
- switch (type) {
- case METADATA_TYPE_BITMAP:
- builder.putBitmap(key,
- MediaMetadataCompatApi21.getBitmap(metadataObj, key));
- break;
- case METADATA_TYPE_LONG:
- builder.putLong(key,
- MediaMetadataCompatApi21.getLong(metadataObj, key));
- break;
- case METADATA_TYPE_RATING:
- builder.putRating(key, RatingCompat.fromRating(
- MediaMetadataCompatApi21.getRating(metadataObj, key)));
- break;
- case METADATA_TYPE_TEXT:
- builder.putText(key,
- MediaMetadataCompatApi21.getText(metadataObj, key));
- break;
- }
- }
- }
- MediaMetadataCompat metadata = builder.build();
- metadata.mMetadataObj = metadataObj;
+ Parcel p = Parcel.obtain();
+ MediaMetadataCompatApi21.writeToParcel(metadataObj, p, 0);
+ p.setDataPosition(0);
+ MediaMetadataCompat metadata = MediaMetadataCompat.CREATOR.createFromParcel(p);
+ p.recycle();
+
return metadata;
}
@@ -554,31 +534,12 @@ public final class MediaMetadataCompat implements Parcelable {
return mMetadataObj;
}
- Object builderObj = MediaMetadataCompatApi21.Builder.newInstance();
- for (String key : keySet()) {
- Integer type = METADATA_KEYS_TYPE.get(key);
- if (type != null) {
- switch (type) {
- case METADATA_TYPE_BITMAP:
- MediaMetadataCompatApi21.Builder.putBitmap(builderObj, key,
- getBitmap(key));
- break;
- case METADATA_TYPE_LONG:
- MediaMetadataCompatApi21.Builder.putLong(builderObj, key,
- getLong(key));
- break;
- case METADATA_TYPE_RATING:
- MediaMetadataCompatApi21.Builder.putRating(builderObj, key,
- getRating(key).getRating());
- break;
- case METADATA_TYPE_TEXT:
- MediaMetadataCompatApi21.Builder.putText(builderObj, key,
- getText(key));
- break;
- }
- }
- }
- mMetadataObj = MediaMetadataCompatApi21.Builder.build(builderObj);
+ Parcel p = Parcel.obtain();
+ writeToParcel(p, 0);
+ p.setDataPosition(0);
+ mMetadataObj = MediaMetadataCompatApi21.createFromParcel(p);
+ p.recycle();
+
return mMetadataObj;
}