Remove unnecessary check for currentMediaItem in legacy session stub
This check was a leftover from when the metadata was generated from the MediaItem only. Since we moved to the actual MediaMetadata fields, the check is completely unnecessary and prevents accessing metadata when the GET_CURRENT_MEDIA_ITEM command is not available. PiperOrigin-RevId: 524837587 (cherry picked from commit e0bb23d4634421ede8827948a3ddae9c5d4a9089)
This commit is contained in:
parent
d784857f1f
commit
8c5c58ec7e
@ -1321,11 +1321,6 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
|
||||
lastMediaMetadata = newMediaMetadata;
|
||||
lastDurationMs = newDurationMs;
|
||||
|
||||
if (currentMediaItem == null) {
|
||||
setMetadata(sessionCompat, /* metadataCompat= */ null);
|
||||
return;
|
||||
}
|
||||
|
||||
@Nullable Bitmap artworkBitmap = null;
|
||||
ListenableFuture<Bitmap> bitmapFuture =
|
||||
sessionImpl.getBitmapLoader().loadBitmapFromMetadata(newMediaMetadata);
|
||||
|
@ -1085,7 +1085,8 @@ public class MediaControllerCompatCallbackWithMediaSessionTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onMediaMetadataChanged_updatesLegacyMetadata_correctModelConversion()
|
||||
public void
|
||||
onMediaMetadataChanged_withGetMetadataAndGetCurrentMediaItemCommand_updatesLegacyMetadata()
|
||||
throws Exception {
|
||||
int testItemIndex = 3;
|
||||
String testDisplayTitle = "displayTitle";
|
||||
@ -1100,6 +1101,12 @@ public class MediaControllerCompatCallbackWithMediaSessionTest {
|
||||
.setMediaId(testMediaItems.get(testItemIndex).mediaId)
|
||||
.setMediaMetadata(testMediaMetadata)
|
||||
.build());
|
||||
session
|
||||
.getMockPlayer()
|
||||
.notifyAvailableCommandsChanged(
|
||||
new Player.Commands.Builder()
|
||||
.addAll(Player.COMMAND_GET_METADATA, Player.COMMAND_GET_CURRENT_MEDIA_ITEM)
|
||||
.build());
|
||||
session.getMockPlayer().setTimeline(new PlaylistTimeline(testMediaItems));
|
||||
session.getMockPlayer().setCurrentMediaItemIndex(testItemIndex);
|
||||
session.getMockPlayer().setDuration(testDurationMs);
|
||||
@ -1131,6 +1138,49 @@ public class MediaControllerCompatCallbackWithMediaSessionTest {
|
||||
assertThat(getterMetadataCompat.getString(METADATA_KEY_MEDIA_ID)).isEqualTo(testCurrentMediaId);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onMediaMetadataChanged_withGetMetadataCommandOnly_updatesLegacyMetadata()
|
||||
throws Exception {
|
||||
int testItemIndex = 3;
|
||||
String testDisplayTitle = "displayTitle";
|
||||
List<MediaItem> testMediaItems = MediaTestUtils.createMediaItems(/* size= */ 5);
|
||||
MediaMetadata testMediaMetadata =
|
||||
new MediaMetadata.Builder().setTitle(testDisplayTitle).build();
|
||||
testMediaItems.set(
|
||||
testItemIndex,
|
||||
new MediaItem.Builder()
|
||||
.setMediaId(testMediaItems.get(testItemIndex).mediaId)
|
||||
.setMediaMetadata(testMediaMetadata)
|
||||
.build());
|
||||
session
|
||||
.getMockPlayer()
|
||||
.notifyAvailableCommandsChanged(
|
||||
new Player.Commands.Builder().add(Player.COMMAND_GET_METADATA).build());
|
||||
session.getMockPlayer().setTimeline(new PlaylistTimeline(testMediaItems));
|
||||
session.getMockPlayer().setCurrentMediaItemIndex(testItemIndex);
|
||||
AtomicReference<MediaMetadataCompat> metadataRef = new AtomicReference<>();
|
||||
CountDownLatch latchForMetadata = new CountDownLatch(1);
|
||||
MediaControllerCompat.Callback callback =
|
||||
new MediaControllerCompat.Callback() {
|
||||
@Override
|
||||
public void onMetadataChanged(MediaMetadataCompat metadata) {
|
||||
metadataRef.set(metadata);
|
||||
latchForMetadata.countDown();
|
||||
}
|
||||
};
|
||||
controllerCompat.registerCallback(callback, handler);
|
||||
|
||||
session.getMockPlayer().notifyMediaMetadataChanged(testMediaMetadata);
|
||||
|
||||
assertThat(latchForMetadata.await(TIMEOUT_MS, MILLISECONDS)).isTrue();
|
||||
MediaMetadataCompat parameterMetadataCompat = metadataRef.get();
|
||||
MediaMetadataCompat getterMetadataCompat = controllerCompat.getMetadata();
|
||||
assertThat(parameterMetadataCompat.getString(MediaMetadataCompat.METADATA_KEY_DISPLAY_TITLE))
|
||||
.isEqualTo(testDisplayTitle);
|
||||
assertThat(getterMetadataCompat.getString(MediaMetadataCompat.METADATA_KEY_DISPLAY_TITLE))
|
||||
.isEqualTo(testDisplayTitle);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void playlistChange() throws Exception {
|
||||
AtomicReference<List<QueueItem>> queueRef = new AtomicReference<>();
|
||||
|
Loading…
x
Reference in New Issue
Block a user