Skip to content

Commit ad92956

Browse files
Make default implementation of cloneAndMove a no-op
1 parent 3d7e874 commit ad92956

File tree

2 files changed

+7
-9
lines changed

2 files changed

+7
-9
lines changed

libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -703,7 +703,8 @@ public void moveMediaItems(int fromIndex, int toIndex, int newFromIndex) {
703703
}
704704
Timeline oldTimeline = getCurrentTimeline();
705705
pendingOperationAcks++;
706-
moveMediaSourceHolders(fromIndex, toIndex, newFromIndex);
706+
Util.moveItems(mediaSourceHolderSnapshots, fromIndex, toIndex, newFromIndex);
707+
shuffleOrder = shuffleOrder.cloneAndMove(fromIndex, toIndex, newFromIndex);
707708
Timeline newTimeline = createMaskingTimeline();
708709
PlaybackInfo newPlaybackInfo =
709710
maskTimelineAndPosition(
@@ -725,11 +726,6 @@ public void moveMediaItems(int fromIndex, int toIndex, int newFromIndex) {
725726
/* repeatCurrentMediaItem= */ false);
726727
}
727728

728-
private void moveMediaSourceHolders(int fromIndex, int toIndex, int newFromIndex) {
729-
Util.moveItems(mediaSourceHolderSnapshots, fromIndex, toIndex, newFromIndex);
730-
shuffleOrder = shuffleOrder.cloneAndMove(fromIndex, toIndex, newFromIndex);
731-
}
732-
733729
@Override
734730
public void replaceMediaItems(int fromIndex, int toIndex, List<MediaItem> mediaItems) {
735731
verifyApplicationThread();

libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ShuffleOrder.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,10 @@ public ShuffleOrder cloneAndClear() {
267267
ShuffleOrder cloneAndInsert(int insertionIndex, int insertionCount);
268268

269269
/**
270-
* Returns a copy of the shuffle order with a range of elements moved.
270+
* Returns a copy of the shuffle order to be used after a move.
271+
*
272+
* <p>The default implementation is a no-op. Custom implementation can choose to re-shuffle when
273+
* items are moved.
271274
*
272275
* @param indexFrom The starting index in the unshuffled order of the range to move, from before
273276
* the move occurs.
@@ -278,8 +281,7 @@ public ShuffleOrder cloneAndClear() {
278281
* @return A copy of this {@link ShuffleOrder} with the elements moved.
279282
*/
280283
default ShuffleOrder cloneAndMove(int indexFrom, int indexToExclusive, int newIndexFrom) {
281-
return cloneAndRemove(indexFrom, indexToExclusive)
282-
.cloneAndInsert(newIndexFrom, indexToExclusive - indexFrom);
284+
return this;
283285
}
284286

285287
/**

0 commit comments

Comments
 (0)