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 Original line Diff line number Diff line
@@ -38,16 +38,11 @@ import java.util.Set;
public class MediaMetadata2Impl implements MediaMetadata2Provider {
public class MediaMetadata2Impl implements MediaMetadata2Provider {
    private static final String TAG = "MediaMetadata2";
    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_LONG = 0;
    static final int METADATA_TYPE_TEXT = 1;
    static final int METADATA_TYPE_TEXT = 1;
    static final int METADATA_TYPE_BITMAP = 2;
    static final int METADATA_TYPE_BITMAP = 2;
    static final int METADATA_TYPE_RATING = 3;
    static final int METADATA_TYPE_RATING = 3;
    static final int METADATA_TYPE_FLOAT = 4;
    static final ArrayMap<String, Integer> METADATA_KEYS_TYPE;
    static final ArrayMap<String, Integer> METADATA_KEYS_TYPE;


    static {
    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_MEDIA_URI, METADATA_TYPE_TEXT);
        METADATA_KEYS_TYPE.put(METADATA_KEY_ADVERTISEMENT, METADATA_TYPE_LONG);
        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_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
    private static final @TextKey
@@ -166,6 +163,11 @@ public class MediaMetadata2Impl implements MediaMetadata2Provider {
        return rating;
        return rating;
    }
    }


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

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


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


        @Override
        @Override
        public Builder setExtra_impl(Bundle bundle) {
        public Builder putFloat_impl(@FloatKey String key, float value) {
            mBundle.putBundle(METADATA_KEY_EXTRA, bundle);
            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;
            return mInstance;
        }
        }


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


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


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


        MediaMetadata2 metadata = builder.build();
        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(title, metadata.getString(MediaMetadata2.METADATA_KEY_DISPLAY_TITLE));
        assertEquals(discNumber, metadata.getLong(MediaMetadata2.METADATA_KEY_DISC_NUMBER));
        assertEquals(discNumber, metadata.getLong(MediaMetadata2.METADATA_KEY_DISC_NUMBER));
        assertEquals(rating, metadata.getRating(MediaMetadata2.METADATA_KEY_USER_RATING));
        assertEquals(rating, metadata.getRating(MediaMetadata2.METADATA_KEY_USER_RATING));