Improve playlist operation behavior of session test MockPlayer
The MockPlayer currently: - uses separate fields for single mediaItem vs multiple mediaItems - replaces all items on addMediaItem operations - does nothing on remove/move operations. Fix all of this by using a single field that replicates the player operations directly. Some tests also need to be updated to make them more realistic (for example only removing items from a playlist that have previously been added). PiperOrigin-RevId: 451857271
This commit is contained in:
parent
c814f791d7
commit
342be88d81
@ -2315,8 +2315,9 @@ public class MediaControllerStateMaskingTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void removeMediaItems_removeCurrentItemWhenShuffledModeDisabled_masksIndices()
|
||||
throws Exception {
|
||||
public void
|
||||
removeMediaItems_removeCurrentItemWhenShuffledModeDisabledFromMiddleToEnd_masksIndices()
|
||||
throws Exception {
|
||||
String firstMediaId = "firstMediaId";
|
||||
String secondMediaId = "secondMediaId";
|
||||
String thirdMediaId = "thirdMediaId";
|
||||
@ -2334,6 +2335,17 @@ public class MediaControllerStateMaskingTest {
|
||||
/* testCurrentPeriodIndex= */ 0,
|
||||
/* testTimeline= */ testTimeline,
|
||||
/* testMediaId= */ firstMediaId);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void removeMediaItems_removeCurrentItemWhenShuffledModeDisabledFromTheMiddle_masksIndices()
|
||||
throws Exception {
|
||||
String firstMediaId = "firstMediaId";
|
||||
String secondMediaId = "secondMediaId";
|
||||
String thirdMediaId = "thirdMediaId";
|
||||
String fourthMediaId = "fourthMediaId";
|
||||
Timeline testTimeline =
|
||||
createTimeline(createMediaItems(firstMediaId, secondMediaId, thirdMediaId, fourthMediaId));
|
||||
|
||||
// Remove middle of the timeline.
|
||||
assertRemoveMediaItems(
|
||||
@ -2348,7 +2360,7 @@ public class MediaControllerStateMaskingTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void removeMediaItems_removeCurrentItemWhenShuffledModeEnabled_masksIndices()
|
||||
public void removeMediaItems_removeCurrentItemWhenShuffledModeEnabledWithNoNextItem_masksIndices()
|
||||
throws Exception {
|
||||
String firstMediaId = "firstMediaId";
|
||||
String secondMediaId = "secondMediaId";
|
||||
@ -2368,6 +2380,16 @@ public class MediaControllerStateMaskingTest {
|
||||
createMediaItems(firstMediaId, secondMediaId, thirdMediaId, fourthMediaId),
|
||||
/* shuffledIndices= */ new int[] {1, 2, 3, 0}),
|
||||
/* testMediaId= */ secondMediaId);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void
|
||||
removeMediaItems_removeCurrentItemWhenShuffledModeEnabledWithNextItemAndChangedIndex_masksIndices()
|
||||
throws Exception {
|
||||
String firstMediaId = "firstMediaId";
|
||||
String secondMediaId = "secondMediaId";
|
||||
String thirdMediaId = "thirdMediaId";
|
||||
String fourthMediaId = "fourthMediaId";
|
||||
|
||||
// Subsequent window index exists in the shuffled list after the fromIndex--current window index
|
||||
// should subtract size of removed items.
|
||||
@ -2382,6 +2404,16 @@ public class MediaControllerStateMaskingTest {
|
||||
createMediaItems(firstMediaId, secondMediaId, thirdMediaId, fourthMediaId),
|
||||
/* shuffledIndices= */ new int[] {0, 3, 1, 2}),
|
||||
/* testMediaId= */ fourthMediaId);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void
|
||||
removeMediaItems_removeCurrentItemWhenShuffledModeEnabledWithNextItemAndSameIndex_masksIndices()
|
||||
throws Exception {
|
||||
String firstMediaId = "firstMediaId";
|
||||
String secondMediaId = "secondMediaId";
|
||||
String thirdMediaId = "thirdMediaId";
|
||||
String fourthMediaId = "fourthMediaId";
|
||||
|
||||
// Subsequent window index exists in the shuffled list before the fromIndex--current window
|
||||
// index should not subtract size of removed items.
|
||||
|
@ -315,7 +315,8 @@ public class MediaSessionCallbackWithMediaControllerCompatTest {
|
||||
controller.addQueueItem(desc);
|
||||
|
||||
player.awaitMethodCalled(MockPlayer.METHOD_ADD_MEDIA_ITEM, TIMEOUT_MS);
|
||||
assertThat(player.mediaItem.mediaId).isEqualTo(mediaId);
|
||||
assertThat(player.mediaItems).hasSize(1);
|
||||
assertThat(player.mediaItems.get(0).mediaId).isEqualTo(mediaId);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -329,9 +330,11 @@ public class MediaSessionCallbackWithMediaControllerCompatTest {
|
||||
new RemoteMediaControllerCompat(
|
||||
context, session.getSessionCompat().getSessionToken(), /* waitForConnection= */ true);
|
||||
|
||||
List<MediaItem> mediaItems = MediaTestUtils.createMediaItems(/* size= */ 10);
|
||||
handler.postAndSync(
|
||||
() -> {
|
||||
player.timeline = MediaTestUtils.createTimeline(/* windowCount= */ 10);
|
||||
player.setMediaItems(mediaItems);
|
||||
player.timeline = new PlaylistTimeline(mediaItems);
|
||||
player.notifyTimelineChanged(Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED);
|
||||
});
|
||||
|
||||
@ -343,7 +346,8 @@ public class MediaSessionCallbackWithMediaControllerCompatTest {
|
||||
|
||||
player.awaitMethodCalled(MockPlayer.METHOD_ADD_MEDIA_ITEM_WITH_INDEX, TIMEOUT_MS);
|
||||
assertThat(player.index).isEqualTo(testIndex);
|
||||
assertThat(player.mediaItem.mediaId).isEqualTo(mediaId);
|
||||
assertThat(player.mediaItems).hasSize(11);
|
||||
assertThat(player.mediaItems.get(1).mediaId).isEqualTo(mediaId);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -360,6 +364,7 @@ public class MediaSessionCallbackWithMediaControllerCompatTest {
|
||||
List<MediaItem> mediaItems = MediaTestUtils.createMediaItems(/* size= */ 10);
|
||||
handler.postAndSync(
|
||||
() -> {
|
||||
player.setMediaItems(mediaItems);
|
||||
player.timeline = new PlaylistTimeline(mediaItems);
|
||||
player.notifyTimelineChanged(Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED);
|
||||
});
|
||||
|
@ -151,7 +151,10 @@ public class MediaSessionPermissionTest {
|
||||
public void removeMediaItems() throws Exception {
|
||||
testOnCommandRequest(
|
||||
COMMAND_CHANGE_MEDIA_ITEMS,
|
||||
controller -> controller.removeMediaItems(/* fromIndex= */ 0, /* toIndex= */ 1));
|
||||
controller -> {
|
||||
controller.addMediaItems(MediaTestUtils.createMediaItems(/* size= */ 5));
|
||||
controller.removeMediaItems(/* fromIndex= */ 0, /* toIndex= */ 1);
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -198,7 +198,7 @@ public class MediaSessionPlayerTest {
|
||||
controller.setMediaItem(item);
|
||||
|
||||
player.awaitMethodCalled(MockPlayer.METHOD_SET_MEDIA_ITEM, TIMEOUT_MS);
|
||||
assertThat(player.mediaItem).isEqualTo(item);
|
||||
assertThat(player.mediaItems).containsExactly(item);
|
||||
assertThat(player.startPositionMs).isEqualTo(startPositionMs);
|
||||
assertThat(player.resetPosition).isEqualTo(resetPosition);
|
||||
}
|
||||
@ -214,7 +214,7 @@ public class MediaSessionPlayerTest {
|
||||
controller.setMediaItem(item);
|
||||
|
||||
player.awaitMethodCalled(MockPlayer.METHOD_SET_MEDIA_ITEM, TIMEOUT_MS);
|
||||
assertThat(player.mediaItem).isEqualTo(item);
|
||||
assertThat(player.mediaItems).containsExactly(item);
|
||||
assertThat(player.startPositionMs).isEqualTo(startPositionMs);
|
||||
assertThat(player.resetPosition).isEqualTo(resetPosition);
|
||||
}
|
||||
@ -230,7 +230,7 @@ public class MediaSessionPlayerTest {
|
||||
controller.setMediaItem(item);
|
||||
|
||||
player.awaitMethodCalled(MockPlayer.METHOD_SET_MEDIA_ITEM, TIMEOUT_MS);
|
||||
assertThat(player.mediaItem).isEqualTo(item);
|
||||
assertThat(player.mediaItems).containsExactly(item);
|
||||
assertThat(player.startPositionMs).isEqualTo(startPositionMs);
|
||||
assertThat(player.resetPosition).isEqualTo(resetPosition);
|
||||
}
|
||||
@ -318,7 +318,7 @@ public class MediaSessionPlayerTest {
|
||||
controller.addMediaItem(mediaItem);
|
||||
|
||||
player.awaitMethodCalled(MockPlayer.METHOD_ADD_MEDIA_ITEM, TIMEOUT_MS);
|
||||
assertThat(player.mediaItem).isEqualTo(mediaItem);
|
||||
assertThat(player.mediaItems).hasSize(6);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -330,7 +330,7 @@ public class MediaSessionPlayerTest {
|
||||
|
||||
player.awaitMethodCalled(MockPlayer.METHOD_ADD_MEDIA_ITEM_WITH_INDEX, TIMEOUT_MS);
|
||||
assertThat(player.index).isEqualTo(index);
|
||||
assertThat(player.mediaItem).isEqualTo(mediaItem);
|
||||
assertThat(player.mediaItems).hasSize(6);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -341,7 +341,7 @@ public class MediaSessionPlayerTest {
|
||||
controller.addMediaItems(mediaItems);
|
||||
|
||||
player.awaitMethodCalled(MockPlayer.METHOD_ADD_MEDIA_ITEMS, TIMEOUT_MS);
|
||||
assertThat(player.mediaItems).isEqualTo(mediaItems);
|
||||
assertThat(player.mediaItems).hasSize(7);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -354,12 +354,12 @@ public class MediaSessionPlayerTest {
|
||||
|
||||
player.awaitMethodCalled(MockPlayer.METHOD_ADD_MEDIA_ITEMS_WITH_INDEX, TIMEOUT_MS);
|
||||
assertThat(player.index).isEqualTo(index);
|
||||
assertThat(player.mediaItems).isEqualTo(mediaItems);
|
||||
assertThat(player.mediaItems).hasSize(7);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void removeMediaItem() throws Exception {
|
||||
int index = 5;
|
||||
int index = 3;
|
||||
|
||||
controller.removeMediaItem(index);
|
||||
|
||||
|
@ -136,7 +136,7 @@ public class MockPlayerTest {
|
||||
player.setMediaItem(mediaItem);
|
||||
|
||||
assertThat(player.hasMethodBeenCalled(MockPlayer.METHOD_SET_MEDIA_ITEM)).isTrue();
|
||||
assertThat(player.mediaItem).isSameInstanceAs(mediaItem);
|
||||
assertThat(player.mediaItems).containsExactly(mediaItem);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -149,7 +149,7 @@ public class MockPlayerTest {
|
||||
assertThat(player.hasMethodBeenCalled(MockPlayer.METHOD_SET_MEDIA_ITEM_WITH_START_POSITION))
|
||||
.isTrue();
|
||||
assertThat(player.startPositionMs).isEqualTo(startPositionMs);
|
||||
assertThat(player.mediaItem).isSameInstanceAs(mediaItem);
|
||||
assertThat(player.mediaItems).containsExactly(mediaItem);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -162,7 +162,7 @@ public class MockPlayerTest {
|
||||
assertThat(player.hasMethodBeenCalled(MockPlayer.METHOD_SET_MEDIA_ITEM_WITH_RESET_POSITION))
|
||||
.isTrue();
|
||||
assertThat(player.resetPosition).isEqualTo(resetPosition);
|
||||
assertThat(player.mediaItem).isEqualTo(mediaItem);
|
||||
assertThat(player.mediaItems).containsExactly(mediaItem);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -172,7 +172,7 @@ public class MockPlayerTest {
|
||||
player.setMediaItems(list);
|
||||
|
||||
assertThat(player.hasMethodBeenCalled(MockPlayer.METHOD_SET_MEDIA_ITEMS)).isTrue();
|
||||
assertThat(player.mediaItems).isSameInstanceAs(list);
|
||||
assertThat(player.mediaItems).containsExactlyElementsIn(list).inOrder();
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -185,7 +185,7 @@ public class MockPlayerTest {
|
||||
assertThat(player.hasMethodBeenCalled(MockPlayer.METHOD_SET_MEDIA_ITEMS_WITH_RESET_POSITION))
|
||||
.isTrue();
|
||||
assertThat(player.resetPosition).isEqualTo(resetPosition);
|
||||
assertThat(player.mediaItems).isSameInstanceAs(list);
|
||||
assertThat(player.mediaItems).containsExactlyElementsIn(list).inOrder();
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -200,7 +200,7 @@ public class MockPlayerTest {
|
||||
.isTrue();
|
||||
assertThat(player.startMediaItemIndex).isEqualTo(startWindowIndex);
|
||||
assertThat(player.startPositionMs).isEqualTo(startPositionMs);
|
||||
assertThat(player.mediaItems).isSameInstanceAs(list);
|
||||
assertThat(player.mediaItems).containsExactlyElementsIn(list).inOrder();
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -211,7 +211,7 @@ public class MockPlayerTest {
|
||||
player.setMediaItems(list);
|
||||
|
||||
assertThat(player.hasMethodBeenCalled(MockPlayer.METHOD_SET_MEDIA_ITEMS)).isTrue();
|
||||
assertThat(player.mediaItems).isSameInstanceAs(list);
|
||||
assertThat(player.mediaItems).containsExactlyElementsIn(list).inOrder();
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -226,98 +226,132 @@ public class MockPlayerTest {
|
||||
|
||||
@Test
|
||||
public void addMediaItem() {
|
||||
MediaItem existingItem = MediaTestUtils.createMediaItem("existing");
|
||||
MediaItem mediaItem = MediaTestUtils.createMediaItem("item");
|
||||
player.setMediaItem(existingItem);
|
||||
|
||||
player.addMediaItem(mediaItem);
|
||||
|
||||
assertThat(player.hasMethodBeenCalled(MockPlayer.METHOD_ADD_MEDIA_ITEM)).isTrue();
|
||||
assertThat(player.mediaItem).isSameInstanceAs(mediaItem);
|
||||
assertThat(player.mediaItems).containsExactly(existingItem, mediaItem).inOrder();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void addMediaItem_withIndex() {
|
||||
int index = 1;
|
||||
List<MediaItem> existingItems = MediaTestUtils.createMediaItems(/* size= */ 2);
|
||||
MediaItem mediaItem = MediaTestUtils.createMediaItem("item");
|
||||
player.setMediaItems(existingItems);
|
||||
|
||||
player.addMediaItem(index, mediaItem);
|
||||
|
||||
assertThat(player.hasMethodBeenCalled(MockPlayer.METHOD_ADD_MEDIA_ITEM_WITH_INDEX)).isTrue();
|
||||
assertThat(player.index).isEqualTo(index);
|
||||
assertThat(player.mediaItem).isSameInstanceAs(mediaItem);
|
||||
assertThat(player.mediaItems)
|
||||
.containsExactly(existingItems.get(0), mediaItem, existingItems.get(1))
|
||||
.inOrder();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void addMediaItems() {
|
||||
int index = 1;
|
||||
int size = 2;
|
||||
int size = 4;
|
||||
List<MediaItem> mediaItems = MediaTestUtils.createMediaItems(size);
|
||||
player.setMediaItems(mediaItems.subList(/* fromIndex= */ 0, /* toIndex= */ 2));
|
||||
|
||||
player.addMediaItems(index, mediaItems);
|
||||
player.addMediaItems(mediaItems.subList(/* fromIndex= */ 2, /* toIndex= */ 4));
|
||||
|
||||
assertThat(player.hasMethodBeenCalled(MockPlayer.METHOD_ADD_MEDIA_ITEMS_WITH_INDEX)).isTrue();
|
||||
assertThat(player.index).isEqualTo(index);
|
||||
assertThat(player.mediaItems).isSameInstanceAs(mediaItems);
|
||||
assertThat(player.hasMethodBeenCalled(MockPlayer.METHOD_ADD_MEDIA_ITEMS)).isTrue();
|
||||
assertThat(player.mediaItems).containsExactlyElementsIn(mediaItems).inOrder();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void addMediaItems_withIndex() {
|
||||
int index = 1;
|
||||
int size = 2;
|
||||
int size = 4;
|
||||
List<MediaItem> mediaItems = MediaTestUtils.createMediaItems(size);
|
||||
player.setMediaItems(mediaItems.subList(/* fromIndex= */ 0, /* toIndex= */ 2));
|
||||
|
||||
player.addMediaItems(index, mediaItems);
|
||||
player.addMediaItems(index, mediaItems.subList(/* fromIndex= */ 2, /* toIndex= */ 4));
|
||||
|
||||
assertThat(player.hasMethodBeenCalled(MockPlayer.METHOD_ADD_MEDIA_ITEMS_WITH_INDEX)).isTrue();
|
||||
assertThat(player.index).isEqualTo(index);
|
||||
assertThat(player.mediaItems).isSameInstanceAs(mediaItems);
|
||||
assertThat(player.mediaItems)
|
||||
.containsExactly(mediaItems.get(0), mediaItems.get(2), mediaItems.get(3), mediaItems.get(1))
|
||||
.inOrder();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void removeMediaItem() {
|
||||
int index = 8;
|
||||
int index = 3;
|
||||
List<MediaItem> mediaItems = MediaTestUtils.createMediaItems(/* size= */ 5);
|
||||
player.addMediaItems(mediaItems);
|
||||
|
||||
player.removeMediaItem(index);
|
||||
|
||||
assertThat(player.hasMethodBeenCalled(MockPlayer.METHOD_REMOVE_MEDIA_ITEM)).isTrue();
|
||||
assertThat(player.index).isEqualTo(index);
|
||||
assertThat(player.mediaItems)
|
||||
.containsExactly(mediaItems.get(0), mediaItems.get(1), mediaItems.get(2), mediaItems.get(4))
|
||||
.inOrder();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void removeMediaItems() {
|
||||
int fromIndex = 1;
|
||||
int toIndex = 3;
|
||||
List<MediaItem> mediaItems = MediaTestUtils.createMediaItems(/* size= */ 5);
|
||||
player.addMediaItems(mediaItems);
|
||||
|
||||
player.removeMediaItems(fromIndex, toIndex);
|
||||
|
||||
assertThat(player.hasMethodBeenCalled(MockPlayer.METHOD_REMOVE_MEDIA_ITEMS)).isTrue();
|
||||
assertThat(player.fromIndex).isEqualTo(fromIndex);
|
||||
assertThat(player.toIndex).isEqualTo(toIndex);
|
||||
assertThat(player.mediaItems)
|
||||
.containsExactly(mediaItems.get(0), mediaItems.get(3), mediaItems.get(4))
|
||||
.inOrder();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void clearMediaItems() {
|
||||
List<MediaItem> mediaItems = MediaTestUtils.createMediaItems(/* size= */ 5);
|
||||
player.addMediaItems(mediaItems);
|
||||
|
||||
player.clearMediaItems();
|
||||
|
||||
assertThat(player.hasMethodBeenCalled(MockPlayer.METHOD_CLEAR_MEDIA_ITEMS)).isTrue();
|
||||
assertThat(player.mediaItems).isEmpty();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void moveMediaItem() {
|
||||
int index = 2;
|
||||
int newIndex = 3;
|
||||
List<MediaItem> mediaItems = MediaTestUtils.createMediaItems(/* size= */ 5);
|
||||
player.addMediaItems(mediaItems);
|
||||
|
||||
player.moveMediaItem(index, newIndex);
|
||||
|
||||
assertThat(player.hasMethodBeenCalled(MockPlayer.METHOD_MOVE_MEDIA_ITEM)).isTrue();
|
||||
assertThat(player.index).isEqualTo(index);
|
||||
assertThat(player.newIndex).isEqualTo(newIndex);
|
||||
assertThat(player.mediaItems)
|
||||
.containsExactly(
|
||||
mediaItems.get(0),
|
||||
mediaItems.get(1),
|
||||
mediaItems.get(3),
|
||||
mediaItems.get(2),
|
||||
mediaItems.get(4))
|
||||
.inOrder();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void moveMediaItems() {
|
||||
int fromIndex = 1;
|
||||
int toIndex = 2;
|
||||
int toIndex = 3;
|
||||
int newIndex = 3;
|
||||
List<MediaItem> mediaItems = MediaTestUtils.createMediaItems(/* size= */ 5);
|
||||
player.addMediaItems(mediaItems);
|
||||
|
||||
player.moveMediaItems(fromIndex, toIndex, newIndex);
|
||||
|
||||
@ -325,6 +359,14 @@ public class MockPlayerTest {
|
||||
assertThat(player.fromIndex).isEqualTo(fromIndex);
|
||||
assertThat(player.toIndex).isEqualTo(toIndex);
|
||||
assertThat(player.newIndex).isEqualTo(newIndex);
|
||||
assertThat(player.mediaItems)
|
||||
.containsExactly(
|
||||
mediaItems.get(0),
|
||||
mediaItems.get(3),
|
||||
mediaItems.get(4),
|
||||
mediaItems.get(1),
|
||||
mediaItems.get(2))
|
||||
.inOrder();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -58,8 +58,8 @@ public final class MediaTestUtils {
|
||||
return new MediaItem.Builder().setMediaId(mediaId).setMediaMetadata(mediaMetadata).build();
|
||||
}
|
||||
|
||||
public static List<MediaItem> createMediaItems(int size) {
|
||||
List<MediaItem> list = new ArrayList<>();
|
||||
public static ArrayList<MediaItem> createMediaItems(int size) {
|
||||
ArrayList<MediaItem> list = new ArrayList<>();
|
||||
for (int i = 0; i < size; i++) {
|
||||
list.add(createMediaItem("mediaItem_" + (i + 1)));
|
||||
}
|
||||
|
@ -48,6 +48,7 @@ import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
|
||||
@ -214,8 +215,7 @@ public class MockPlayer implements Player {
|
||||
public int currentAdIndexInAdGroup;
|
||||
@Nullable public PlaybackParameters playbackParameters;
|
||||
public Timeline timeline;
|
||||
public MediaItem mediaItem;
|
||||
public List<MediaItem> mediaItems;
|
||||
public ArrayList<MediaItem> mediaItems;
|
||||
public boolean resetPosition;
|
||||
public int startMediaItemIndex;
|
||||
public long startPositionMs;
|
||||
@ -260,14 +260,13 @@ public class MockPlayer implements Player {
|
||||
mediaItems = MediaTestUtils.createMediaItems(builder.itemCount);
|
||||
timeline = new PlaylistTimeline(mediaItems);
|
||||
} else {
|
||||
mediaItems = ImmutableList.of();
|
||||
mediaItems = new ArrayList<>();
|
||||
timeline = Timeline.EMPTY;
|
||||
}
|
||||
|
||||
// Sets default audio attributes to prevent setVolume() from being called with the play().
|
||||
audioAttributes = AudioAttributes.DEFAULT;
|
||||
|
||||
mediaItem = MediaItem.EMPTY;
|
||||
playlistMetadata = MediaMetadata.EMPTY;
|
||||
index = C.INDEX_UNSET;
|
||||
fromIndex = C.INDEX_UNSET;
|
||||
@ -709,40 +708,40 @@ public class MockPlayer implements Player {
|
||||
|
||||
@Override
|
||||
public void setMediaItem(MediaItem mediaItem) {
|
||||
this.mediaItem = mediaItem;
|
||||
this.mediaItems = new ArrayList<>(ImmutableList.of(mediaItem));
|
||||
checkNotNull(conditionVariables.get(METHOD_SET_MEDIA_ITEM)).open();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setMediaItem(MediaItem mediaItem, long startPositionMs) {
|
||||
this.mediaItem = mediaItem;
|
||||
this.mediaItems = new ArrayList<>(ImmutableList.of(mediaItem));
|
||||
this.startPositionMs = startPositionMs;
|
||||
checkNotNull(conditionVariables.get(METHOD_SET_MEDIA_ITEM_WITH_START_POSITION)).open();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setMediaItem(MediaItem mediaItem, boolean resetPosition) {
|
||||
this.mediaItem = mediaItem;
|
||||
this.mediaItems = new ArrayList<>(ImmutableList.of(mediaItem));
|
||||
this.resetPosition = resetPosition;
|
||||
checkNotNull(conditionVariables.get(METHOD_SET_MEDIA_ITEM_WITH_RESET_POSITION)).open();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setMediaItems(List<MediaItem> mediaItems) {
|
||||
this.mediaItems = mediaItems;
|
||||
this.mediaItems = new ArrayList<>(mediaItems);
|
||||
checkNotNull(conditionVariables.get(METHOD_SET_MEDIA_ITEMS)).open();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setMediaItems(List<MediaItem> mediaItems, boolean resetPosition) {
|
||||
this.mediaItems = mediaItems;
|
||||
this.mediaItems = new ArrayList<>(mediaItems);
|
||||
this.resetPosition = resetPosition;
|
||||
checkNotNull(conditionVariables.get(METHOD_SET_MEDIA_ITEMS_WITH_RESET_POSITION)).open();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setMediaItems(List<MediaItem> mediaItems, int startIndex, long startPositionMs) {
|
||||
this.mediaItems = mediaItems;
|
||||
this.mediaItems = new ArrayList<>(mediaItems);
|
||||
this.startMediaItemIndex = startIndex;
|
||||
this.startPositionMs = startPositionMs;
|
||||
checkNotNull(conditionVariables.get(METHOD_SET_MEDIA_ITEMS_WITH_START_INDEX)).open();
|
||||
@ -851,33 +850,34 @@ public class MockPlayer implements Player {
|
||||
|
||||
@Override
|
||||
public void addMediaItem(MediaItem mediaItem) {
|
||||
this.mediaItem = mediaItem;
|
||||
this.mediaItems.add(mediaItem);
|
||||
checkNotNull(conditionVariables.get(METHOD_ADD_MEDIA_ITEM)).open();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addMediaItem(int index, MediaItem mediaItem) {
|
||||
this.index = index;
|
||||
this.mediaItem = mediaItem;
|
||||
this.mediaItems.add(index, mediaItem);
|
||||
checkNotNull(conditionVariables.get(METHOD_ADD_MEDIA_ITEM_WITH_INDEX)).open();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addMediaItems(List<MediaItem> mediaItems) {
|
||||
this.mediaItems = mediaItems;
|
||||
this.mediaItems.addAll(mediaItems);
|
||||
checkNotNull(conditionVariables.get(METHOD_ADD_MEDIA_ITEMS)).open();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addMediaItems(int index, List<MediaItem> mediaItems) {
|
||||
this.index = index;
|
||||
this.mediaItems = mediaItems;
|
||||
this.mediaItems.addAll(index, mediaItems);
|
||||
checkNotNull(conditionVariables.get(METHOD_ADD_MEDIA_ITEMS_WITH_INDEX)).open();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeMediaItem(int index) {
|
||||
this.index = index;
|
||||
this.mediaItems.remove(index);
|
||||
checkNotNull(conditionVariables.get(METHOD_REMOVE_MEDIA_ITEM)).open();
|
||||
}
|
||||
|
||||
@ -885,11 +885,13 @@ public class MockPlayer implements Player {
|
||||
public void removeMediaItems(int fromIndex, int toIndex) {
|
||||
this.fromIndex = fromIndex;
|
||||
this.toIndex = toIndex;
|
||||
Util.removeRange(mediaItems, fromIndex, toIndex);
|
||||
checkNotNull(conditionVariables.get(METHOD_REMOVE_MEDIA_ITEMS)).open();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clearMediaItems() {
|
||||
this.mediaItems.clear();
|
||||
checkNotNull(conditionVariables.get(METHOD_CLEAR_MEDIA_ITEMS)).open();
|
||||
}
|
||||
|
||||
@ -897,6 +899,7 @@ public class MockPlayer implements Player {
|
||||
public void moveMediaItem(int currentIndex, int newIndex) {
|
||||
this.index = currentIndex;
|
||||
this.newIndex = newIndex;
|
||||
Util.moveItems(mediaItems, currentIndex, /* toIndex= */ currentIndex + 1, newIndex);
|
||||
checkNotNull(conditionVariables.get(METHOD_MOVE_MEDIA_ITEM)).open();
|
||||
}
|
||||
|
||||
@ -905,6 +908,7 @@ public class MockPlayer implements Player {
|
||||
this.fromIndex = fromIndex;
|
||||
this.toIndex = toIndex;
|
||||
this.newIndex = newIndex;
|
||||
Util.moveItems(mediaItems, fromIndex, toIndex, newIndex);
|
||||
checkNotNull(conditionVariables.get(METHOD_MOVE_MEDIA_ITEMS)).open();
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user