Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 218f8e3b authored by Jaewan Kim's avatar Jaewan Kim Committed by Android (Google) Code Review
Browse files

Merge "MediaMetadata2: Add radio frequency and callsigns"

parents d89b871a 87ed6334
Loading
Loading
Loading
Loading
+24 −10
Original line number Diff line number Diff line
@@ -38,16 +38,11 @@ import java.util.Set;
public class MediaMetadata2Impl implements MediaMetadata2Provider {
    private static final String TAG = "MediaMetadata2";

    /**
     * A {@link Bundle} extra.
     * @hide
     */
    public static final String METADATA_KEY_EXTRA = "android.media.metadata.EXTRA";

    static final int METADATA_TYPE_LONG = 0;
    static final int METADATA_TYPE_TEXT = 1;
    static final int METADATA_TYPE_BITMAP = 2;
    static final int METADATA_TYPE_RATING = 3;
    static final int METADATA_TYPE_FLOAT = 4;
    static final ArrayMap<String, Integer> METADATA_KEYS_TYPE;

    static {
@@ -83,6 +78,8 @@ public class MediaMetadata2Impl implements MediaMetadata2Provider {
        METADATA_KEYS_TYPE.put(METADATA_KEY_MEDIA_URI, METADATA_TYPE_TEXT);
        METADATA_KEYS_TYPE.put(METADATA_KEY_ADVERTISEMENT, METADATA_TYPE_LONG);
        METADATA_KEYS_TYPE.put(METADATA_KEY_DOWNLOAD_STATUS, METADATA_TYPE_LONG);
        METADATA_KEYS_TYPE.put(METADATA_KEY_RADIO_FREQUENCY, METADATA_TYPE_FLOAT);
        METADATA_KEYS_TYPE.put(METADATA_KEY_RADIO_CALLSIGN, METADATA_TYPE_TEXT);
    }

    private static final @TextKey
@@ -166,6 +163,11 @@ public class MediaMetadata2Impl implements MediaMetadata2Provider {
        return rating;
    }

    @Override
    public float getFloat_impl(@FloatKey String key) {
        return mBundle.getFloat(key);
    }

    @Override
    public Bitmap getBitmap_impl(@BitmapKey String key) {
        Bitmap bmp = null;
@@ -179,9 +181,9 @@ public class MediaMetadata2Impl implements MediaMetadata2Provider {
    }

    @Override
    public Bundle getExtra_impl() {
    public Bundle getExtras_impl() {
        try {
            return mBundle.getBundle(METADATA_KEY_EXTRA);
            return mBundle.getBundle(METADATA_KEY_EXTRAS);
        } catch (Exception e) {
            // ignore, value was not an bundle
            Log.w(TAG, "Failed to retrieve an extra");
@@ -305,8 +307,20 @@ public class MediaMetadata2Impl implements MediaMetadata2Provider {
        }

        @Override
        public Builder setExtra_impl(Bundle bundle) {
            mBundle.putBundle(METADATA_KEY_EXTRA, bundle);
        public Builder putFloat_impl(@FloatKey String key, float value) {
            if (METADATA_KEYS_TYPE.containsKey(key)) {
                if (METADATA_KEYS_TYPE.get(key) != METADATA_TYPE_FLOAT) {
                    throw new IllegalArgumentException("The " + key
                            + " key cannot be used to put a float");
                }
            }
            mBundle.putFloat(key, value);
            return mInstance;
        }

        @Override
        public Builder setExtras_impl(Bundle bundle) {
            mBundle.putBundle(METADATA_KEY_EXTRAS, bundle);
            return mInstance;
        }

+4 −4
Original line number Diff line number Diff line
@@ -42,20 +42,20 @@ public class MediaMetadata2Test {

    @Test
    public void testBuilder() {
        final Bundle extra = new Bundle();
        extra.putString("MediaMetadata2Test", "testBuilder");
        final Bundle extras = new Bundle();
        extras.putString("MediaMetadata2Test", "testBuilder");
        final String title = "title";
        final long discNumber = 10;
        final Rating2 rating = Rating2.newThumbRating(mContext, true);

        MediaMetadata2.Builder builder = new Builder(mContext);
        builder.setExtra(extra);
        builder.setExtras(extras);
        builder.putString(MediaMetadata2.METADATA_KEY_DISPLAY_TITLE, title);
        builder.putLong(MediaMetadata2.METADATA_KEY_DISC_NUMBER, discNumber);
        builder.putRating(MediaMetadata2.METADATA_KEY_USER_RATING, rating);

        MediaMetadata2 metadata = builder.build();
        assertTrue(TestUtils.equals(extra, metadata.getExtra()));
        assertTrue(TestUtils.equals(extras, metadata.getExtras()));
        assertEquals(title, metadata.getString(MediaMetadata2.METADATA_KEY_DISPLAY_TITLE));
        assertEquals(discNumber, metadata.getLong(MediaMetadata2.METADATA_KEY_DISC_NUMBER));
        assertEquals(rating, metadata.getRating(MediaMetadata2.METADATA_KEY_USER_RATING));