124fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown/* 224fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * Copyright (C) 2014 The Android Open Source Project 324fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * 424fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * Licensed under the Apache License, Version 2.0 (the "License"); 524fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * you may not use this file except in compliance with the License. 624fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * You may obtain a copy of the License at 724fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * 824fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * http://www.apache.org/licenses/LICENSE-2.0 924fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * 1024fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * Unless required by applicable law or agreed to in writing, software 1124fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * distributed under the License is distributed on an "AS IS" BASIS, 1224fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1324fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * See the License for the specific language governing permissions and 1424fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown * limitations under the License. 1524fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown */ 1624fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown 1724fa6c0dd42df057729e1a258388183f94da7f82Jeff Brownpackage android.support.v4.media; 1824fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown 1924fa6c0dd42df057729e1a258388183f94da7f82Jeff Brownimport android.graphics.Bitmap; 2024fa6c0dd42df057729e1a258388183f94da7f82Jeff Brownimport android.media.MediaMetadata; 2124fa6c0dd42df057729e1a258388183f94da7f82Jeff Brownimport android.media.Rating; 22fef15ea991ce111e43b165ad5f12dccd6be9f1f2Jae Seoimport android.os.Parcel; 238f886fe8c7e23fe6ccb8734167c960c2ed3429c3Alan Viveretteimport android.support.annotation.RequiresApi; 2424fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown 2524fa6c0dd42df057729e1a258388183f94da7f82Jeff Brownimport java.util.Set; 2624fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown 278f886fe8c7e23fe6ccb8734167c960c2ed3429c3Alan Viverette@RequiresApi(21) 2824fa6c0dd42df057729e1a258388183f94da7f82Jeff Brownclass MediaMetadataCompatApi21 { 2924fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown public static Set<String> keySet(Object metadataObj) { 3024fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown return ((MediaMetadata)metadataObj).keySet(); 3124fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown } 3224fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown 3324fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown public static Bitmap getBitmap(Object metadataObj, String key) { 3424fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown return ((MediaMetadata)metadataObj).getBitmap(key); 3524fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown } 3624fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown 3724fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown public static long getLong(Object metadataObj, String key) { 3824fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown return ((MediaMetadata)metadataObj).getLong(key); 3924fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown } 4024fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown 4124fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown public static Object getRating(Object metadataObj, String key) { 4224fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown return ((MediaMetadata)metadataObj).getRating(key); 4324fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown } 4424fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown 45515adbf30b9a0c7c1b71450086fa022b1061487aErik Pasternak public static CharSequence getText(Object metadataObj, String key) { 46515adbf30b9a0c7c1b71450086fa022b1061487aErik Pasternak return ((MediaMetadata) metadataObj).getText(key); 4724fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown } 4824fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown 49fef15ea991ce111e43b165ad5f12dccd6be9f1f2Jae Seo public static void writeToParcel(Object metadataObj, Parcel dest, int flags) { 50fef15ea991ce111e43b165ad5f12dccd6be9f1f2Jae Seo ((MediaMetadata) metadataObj).writeToParcel(dest, flags); 51fef15ea991ce111e43b165ad5f12dccd6be9f1f2Jae Seo } 52fef15ea991ce111e43b165ad5f12dccd6be9f1f2Jae Seo 53fef15ea991ce111e43b165ad5f12dccd6be9f1f2Jae Seo public static Object createFromParcel(Parcel in) { 54fef15ea991ce111e43b165ad5f12dccd6be9f1f2Jae Seo return MediaMetadata.CREATOR.createFromParcel(in); 55fef15ea991ce111e43b165ad5f12dccd6be9f1f2Jae Seo } 56fef15ea991ce111e43b165ad5f12dccd6be9f1f2Jae Seo 5724fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown public static class Builder { 5824fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown public static Object newInstance() { 5924fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown return new MediaMetadata.Builder(); 6024fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown } 6124fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown 6224fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown public static void putBitmap(Object builderObj, String key, Bitmap value) { 6324fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown ((MediaMetadata.Builder)builderObj).putBitmap(key, value); 6424fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown } 6524fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown 6624fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown public static void putLong(Object builderObj, String key, long value) { 6724fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown ((MediaMetadata.Builder)builderObj).putLong(key, value); 6824fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown } 6924fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown 7024fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown public static void putRating(Object builderObj, String key, Object ratingObj) { 7124fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown ((MediaMetadata.Builder)builderObj).putRating(key, (Rating)ratingObj); 7224fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown } 7324fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown 74515adbf30b9a0c7c1b71450086fa022b1061487aErik Pasternak public static void putText(Object builderObj, String key, CharSequence value) { 75515adbf30b9a0c7c1b71450086fa022b1061487aErik Pasternak ((MediaMetadata.Builder) builderObj).putText(key, value); 76515adbf30b9a0c7c1b71450086fa022b1061487aErik Pasternak } 77515adbf30b9a0c7c1b71450086fa022b1061487aErik Pasternak 7824fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown public static void putString(Object builderObj, String key, String value) { 79515adbf30b9a0c7c1b71450086fa022b1061487aErik Pasternak ((MediaMetadata.Builder) builderObj).putString(key, value); 8024fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown } 8124fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown 8224fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown public static Object build(Object builderObj) { 8324fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown return ((MediaMetadata.Builder)builderObj).build(); 8424fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown } 8524fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown } 8624fa6c0dd42df057729e1a258388183f94da7f82Jeff Brown} 87