File tree Expand file tree Collapse file tree 6 files changed +33
-1
lines changed
main/java/androidx/media3/exoplayer
test/java/androidx/media3/exoplayer
test_utils/src/main/java/androidx/media3/test/utils Expand file tree Collapse file tree 6 files changed +33
-1
lines changed Original file line number Diff line number Diff line change @@ -8,6 +8,8 @@ This release includes the following changes since the
88[ 1.8.0-rc01 release] ( #180-rc01-2025-07-16 ) :
99
1010* ExoPlayer:
11+ * Add getter for shuffle mode to the ` ExoPlayer ` interface
12+ ([ #2522 ] ( https://github.com/androidx/media/pull/2522 ) ).
1113 * More clearly throw an exception if ` DefaultAudioSink ` is accessed from
1214 multiple threads. If this happens due to a call to
1315 ` RendererCapabilities.getFormatSupport ` outside of the player, make sure
Original file line number Diff line number Diff line change @@ -1381,6 +1381,15 @@ void setMediaSources(
13811381 @ UnstableApi
13821382 void setShuffleOrder (ShuffleOrder shuffleOrder );
13831383
1384+ /**
1385+ * Returns the shuffle order.
1386+ *
1387+ * <p>The {@link ShuffleOrder} returned will have the same length as the current playlist ({@link
1388+ * Player#getMediaItemCount()}).
1389+ */
1390+ @ UnstableApi
1391+ ShuffleOrder getShuffleOrder ();
1392+
13841393 /**
13851394 * Sets the {@linkplain PreloadConfiguration preload configuration} to configure playlist
13861395 * preloading.
Original file line number Diff line number Diff line change @@ -786,6 +786,12 @@ public void setShuffleOrder(ShuffleOrder shuffleOrder) {
786786 /* repeatCurrentMediaItem= */ false );
787787 }
788788
789+ @ Override
790+ public ShuffleOrder getShuffleOrder () {
791+ verifyApplicationThread ();
792+ return shuffleOrder ;
793+ }
794+
789795 @ Override
790796 public void setPauseAtEndOfMediaItems (boolean pauseAtEndOfMediaItems ) {
791797 verifyApplicationThread ();
Original file line number Diff line number Diff line change @@ -929,6 +929,12 @@ public void setShuffleOrder(ShuffleOrder shuffleOrder) {
929929 player .setShuffleOrder (shuffleOrder );
930930 }
931931
932+ @ Override
933+ public ShuffleOrder getShuffleOrder () {
934+ blockUntilConstructorFinished ();
935+ return player .getShuffleOrder ();
936+ }
937+
932938 @ Override
933939 public void setPlayWhenReady (boolean playWhenReady ) {
934940 blockUntilConstructorFinished ();
Original file line number Diff line number Diff line change @@ -8089,15 +8089,18 @@ public void run(ExoPlayer player) {
80898089 @Test
80908090 public void setShuffleOrder_keepsCurrentPosition() throws Exception {
80918091 AtomicLong positionAfterSetShuffleOrder = new AtomicLong(C.TIME_UNSET);
8092+ AtomicReference<ShuffleOrder> shuffleOrderRef = new AtomicReference<>();
8093+ FakeShuffleOrder shuffleOrder = new FakeShuffleOrder(/* length= */ 1);
80928094 ActionSchedule actionSchedule =
80938095 new ActionSchedule.Builder(TAG)
80948096 .playUntilPosition(0, 5000)
8095- .setShuffleOrder(new FakeShuffleOrder(/* length= */ 1) )
8097+ .setShuffleOrder(shuffleOrder )
80968098 .executeRunnable(
80978099 new PlayerRunnable() {
80988100 @Override
80998101 public void run(ExoPlayer player) {
81008102 positionAfterSetShuffleOrder.set(player.getCurrentPosition());
8103+ shuffleOrderRef.set(player.getShuffleOrder());
81018104 }
81028105 })
81038106 .play()
@@ -8109,6 +8112,7 @@ public void run(ExoPlayer player) {
81098112 .blockUntilEnded(TIMEOUT_MS);
81108113
81118114 assertThat(positionAfterSetShuffleOrder.get()).isAtLeast(5000);
8115+ assertThat(shuffleOrderRef.get()).isEqualTo(shuffleOrder);
81128116 }
81138117
81148118 @Test
Original file line number Diff line number Diff line change @@ -176,6 +176,11 @@ public void setShuffleOrder(ShuffleOrder shuffleOrder) {
176176 throw new UnsupportedOperationException ();
177177 }
178178
179+ @ Override
180+ public ShuffleOrder getShuffleOrder () {
181+ throw new UnsupportedOperationException ();
182+ }
183+
179184 @ Override
180185 public void setAudioAttributes (AudioAttributes audioAttributes , boolean handleAudioFocus ) {
181186 throw new UnsupportedOperationException ();
You can’t perform that action at this time.
0 commit comments