@@ -12957,15 +12957,31 @@ public void seekTo_callsOnPositionDiscontinuity() throws Exception {
1295712957 }
1295812958
1295912959 @Test
12960- public void seekTo_whenTimelineEmpty_callsOnPositionDiscontinuity () {
12960+ public void seekTo_whenTimelineEmpty_callsOnPositionDiscontinuityAndSetsCorrectIndices () {
1296112961 ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
1296212962 Player.Listener listener = mock(Player.Listener.class);
1296312963 player.addListener(listener);
1296412964
12965+ int mediaItemIndex0 = player.getCurrentMediaItemIndex();
12966+ int periodIndex0 = player.getCurrentPeriodIndex();
1296512967 player.seekTo(/* positionMs= */ 7 * C.MILLIS_PER_SECOND);
12968+ int mediaItemIndex1 = player.getCurrentMediaItemIndex();
12969+ int periodIndex1 = player.getCurrentPeriodIndex();
1296612970 player.seekTo(/* mediaItemIndex= */ 1, /* positionMs= */ C.MILLIS_PER_SECOND);
12971+ int mediaItemIndex2 = player.getCurrentMediaItemIndex();
12972+ int periodIndex2 = player.getCurrentPeriodIndex();
1296712973 player.seekTo(/* positionMs= */ 5 * C.MILLIS_PER_SECOND);
12968-
12974+ int mediaItemIndex3 = player.getCurrentMediaItemIndex();
12975+ int periodIndex3 = player.getCurrentPeriodIndex();
12976+
12977+ assertThat(mediaItemIndex0).isEqualTo(0);
12978+ assertThat(periodIndex0).isEqualTo(0);
12979+ assertThat(mediaItemIndex1).isEqualTo(0);
12980+ assertThat(periodIndex1).isEqualTo(0);
12981+ assertThat(mediaItemIndex2).isEqualTo(1);
12982+ assertThat(periodIndex2).isEqualTo(1);
12983+ assertThat(mediaItemIndex3).isEqualTo(1);
12984+ assertThat(periodIndex3).isEqualTo(1);
1296912985 ArgumentCaptor<Player.PositionInfo> oldPosition =
1297012986 ArgumentCaptor.forClass(Player.PositionInfo.class);
1297112987 ArgumentCaptor<Player.PositionInfo> newPosition =
@@ -12980,31 +12996,37 @@ public void seekTo_whenTimelineEmpty_callsOnPositionDiscontinuity() {
1298012996 // a seek from initial state to masked seek position
1298112997 assertThat(oldPositions.get(0).windowUid).isNull();
1298212998 assertThat(oldPositions.get(0).mediaItemIndex).isEqualTo(0);
12999+ assertThat(oldPositions.get(0).periodIndex).isEqualTo(0);
1298313000 assertThat(oldPositions.get(0).mediaItem).isNull();
1298413001 assertThat(oldPositions.get(0).positionMs).isEqualTo(0);
1298513002 assertThat(oldPositions.get(0).contentPositionMs).isEqualTo(0);
1298613003 assertThat(newPositions.get(0).mediaItemIndex).isEqualTo(0);
13004+ assertThat(newPositions.get(0).periodIndex).isEqualTo(0);
1298713005 assertThat(newPositions.get(0).windowUid).isNull();
1298813006 assertThat(newPositions.get(0).positionMs).isEqualTo(7_000);
1298913007 assertThat(newPositions.get(0).contentPositionMs).isEqualTo(7_000);
1299013008 // a seek from masked seek position to another masked position across windows
1299113009 assertThat(oldPositions.get(1).windowUid).isNull();
1299213010 assertThat(oldPositions.get(1).mediaItemIndex).isEqualTo(0);
13011+ assertThat(oldPositions.get(1).periodIndex).isEqualTo(0);
1299313012 assertThat(oldPositions.get(1).mediaItem).isNull();
1299413013 assertThat(oldPositions.get(1).positionMs).isEqualTo(7_000);
1299513014 assertThat(oldPositions.get(1).contentPositionMs).isEqualTo(7_000);
1299613015 assertThat(newPositions.get(1).windowUid).isNull();
1299713016 assertThat(newPositions.get(1).mediaItemIndex).isEqualTo(1);
13017+ assertThat(newPositions.get(1).periodIndex).isEqualTo(1);
1299813018 assertThat(newPositions.get(1).positionMs).isEqualTo(1_000);
1299913019 assertThat(newPositions.get(1).contentPositionMs).isEqualTo(1_000);
1300013020 // a seek from masked seek position to another masked position within media item
1300113021 assertThat(oldPositions.get(2).windowUid).isNull();
1300213022 assertThat(oldPositions.get(2).mediaItemIndex).isEqualTo(1);
13023+ assertThat(oldPositions.get(2).periodIndex).isEqualTo(1);
1300313024 assertThat(oldPositions.get(2).mediaItem).isNull();
1300413025 assertThat(oldPositions.get(2).positionMs).isEqualTo(1_000);
1300513026 assertThat(oldPositions.get(2).contentPositionMs).isEqualTo(1_000);
1300613027 assertThat(newPositions.get(2).windowUid).isNull();
1300713028 assertThat(newPositions.get(2).mediaItemIndex).isEqualTo(1);
13029+ assertThat(newPositions.get(2).periodIndex).isEqualTo(1);
1300813030 assertThat(newPositions.get(2).positionMs).isEqualTo(5_000);
1300913031 assertThat(newPositions.get(2).contentPositionMs).isEqualTo(5_000);
1301013032 player.release();
0 commit comments