3636import android .net .Uri ;
3737import android .os .Bundle ;
3838import android .service .media .MediaBrowserService ;
39+ import android .text .SpannableString ;
3940import android .text .SpannedString ;
4041import androidx .annotation .Nullable ;
4142import androidx .media3 .common .C ;
@@ -133,7 +134,9 @@ public void convertBrowserItemListToMediaItemList() {
133134
134135 @ Test
135136 public void convertToQueueItem_withArtworkData () throws Exception {
136- MediaItem mediaItem = createMediaItemWithArtworkData ("testId" , /* durationMs= */ 10_000L );
137+ MediaItem mediaItem =
138+ createMediaItemWithArtworkData (
139+ "testId" , /* durationMs= */ 10_000L , /* useSpannableString= */ false );
137140 MediaMetadata mediaMetadata = mediaItem .mediaMetadata ;
138141 ListenableFuture <Bitmap > bitmapFuture = bitmapLoader .decodeBitmap (mediaMetadata .artworkData );
139142 @ Nullable Bitmap bitmap = bitmapFuture .get (10 , SECONDS );
@@ -409,7 +412,12 @@ public void convertToMediaMetadata_withCustomKey() {
409412 @ Test
410413 public void convertToMediaMetadata_roundTripViaMediaMetadataCompat_returnsEqualMediaItemMetadata ()
411414 throws Exception {
412- MediaItem testMediaItem = createMediaItemWithArtworkData ("testZZZ" , /* durationMs= */ 10_000L );
415+ MediaItem testMediaItem =
416+ createMediaItemWithArtworkData (
417+ "testZZZ" , /* durationMs= */ 10_000L , /* useSpannableString= */ false );
418+ MediaItem testMediaItemWithSpannableStrings =
419+ createMediaItemWithArtworkData (
420+ "testZZZ" , /* durationMs= */ 10_000L , /* useSpannableString= */ true );
413421 MediaMetadata testMediaMetadata = testMediaItem .mediaMetadata ;
414422 @ Nullable Bitmap testArtworkBitmap = null ;
415423 @ Nullable
@@ -428,7 +436,7 @@ public void convertToMediaMetadata_roundTripViaMediaMetadataCompat_returnsEqualM
428436 MediaMetadata mediaMetadata =
429437 LegacyConversions .convertToMediaMetadata (testMediaMetadataCompat , RatingCompat .RATING_NONE );
430438
431- assertThat (mediaMetadata ).isEqualTo (testMediaMetadata );
439+ assertThat (mediaMetadata ).isEqualTo (testMediaItemWithSpannableStrings . mediaMetadata );
432440 assertThat (mediaMetadata .artworkData ).isNotNull ();
433441 }
434442
@@ -489,7 +497,11 @@ public void convertToMediaMetadata_displayTitleNotSet_usesPreferredDescriptionOr
489497 convertToMediaMetadata_roundTripViaMediaDescriptionCompat_returnsEqualMediaItemMetadata ()
490498 throws Exception {
491499 MediaItem testMediaItem =
492- createMediaItemWithArtworkData ("testZZZ" , /* durationMs= */ C .TIME_UNSET );
500+ createMediaItemWithArtworkData (
501+ "testZZZ" , /* durationMs= */ C .TIME_UNSET , /* useSpannableString= */ false );
502+ MediaItem testMediaItemWithSpannableStrings =
503+ createMediaItemWithArtworkData (
504+ "testZZZ" , /* durationMs= */ C .TIME_UNSET , /* useSpannableString= */ true );
493505 MediaMetadata testMediaMetadata = testMediaItem .mediaMetadata ;
494506 @ Nullable Bitmap testArtworkBitmap = null ;
495507 @ Nullable
@@ -503,7 +515,7 @@ public void convertToMediaMetadata_displayTitleNotSet_usesPreferredDescriptionOr
503515 MediaMetadata mediaMetadata =
504516 LegacyConversions .convertToMediaMetadata (mediaDescriptionCompat , RatingCompat .RATING_NONE );
505517
506- assertThat (mediaMetadata ).isEqualTo (testMediaMetadata );
518+ assertThat (mediaMetadata ).isEqualTo (testMediaItemWithSpannableStrings . mediaMetadata );
507519 assertThat (mediaMetadata .artworkData ).isNotNull ();
508520 }
509521
@@ -1557,16 +1569,21 @@ private static PlaybackStateCompat createErrorPlaybackStateCompatWithoutMessage(
15571569 .build ();
15581570 }
15591571
1560- private static MediaItem createMediaItemWithArtworkData (String mediaId , long durationMs ) {
1572+ private static MediaItem createMediaItemWithArtworkData (
1573+ String mediaId , long durationMs , boolean useSpannableString ) {
15611574 Bundle extras = new Bundle ();
15621575 extras .putLong (
15631576 MediaConstants .EXTRAS_KEY_IS_EXPLICIT , MediaConstants .EXTRAS_VALUE_ATTRIBUTE_PRESENT );
1577+ CharSequence title = useSpannableString ? new SpannableString ("title" ) : "title" ;
1578+ CharSequence displayTitle =
1579+ useSpannableString ? new SpannableString ("displayTitle" ) : "displayTitle" ;
1580+ CharSequence author = useSpannableString ? new SpannableString ("author" ) : "author" ;
15641581 MediaMetadata .Builder mediaMetadataBuilder =
15651582 new MediaMetadata .Builder ()
15661583 .setMediaType (MediaMetadata .MEDIA_TYPE_PLAYLIST )
1567- .setTitle (" title" )
1568- .setDisplayTitle (" displayTitle" )
1569- .setAuthor (" author" )
1584+ .setTitle (title )
1585+ .setDisplayTitle (displayTitle )
1586+ .setAuthor (author )
15701587 .setIsBrowsable (false )
15711588 .setIsPlayable (true )
15721589 .setExtras (extras );
0 commit comments