From 0c9b02bf445bcbaead9621f8ac099b25a645b115 Mon Sep 17 00:00:00 2001 From: kimvde Date: Thu, 11 Mar 2021 14:08:07 +0000 Subject: [PATCH] Make commands to seek unavailable during ads ExoPlayer does not support seeking during ads. PiperOrigin-RevId: 362274785 --- .../exoplayer2/ext/cast/CastPlayerTest.java | 64 ++++++---- .../google/android/exoplayer2/BasePlayer.java | 4 +- .../android/exoplayer2/ExoPlayerTest.java | 113 ++++++++++++------ 3 files changed, 121 insertions(+), 60 deletions(-) diff --git a/extensions/cast/src/test/java/com/google/android/exoplayer2/ext/cast/CastPlayerTest.java b/extensions/cast/src/test/java/com/google/android/exoplayer2/ext/cast/CastPlayerTest.java index c3eeb0dde2..f9ac6a541c 100644 --- a/extensions/cast/src/test/java/com/google/android/exoplayer2/ext/cast/CastPlayerTest.java +++ b/extensions/cast/src/test/java/com/google/android/exoplayer2/ext/cast/CastPlayerTest.java @@ -580,31 +580,44 @@ public class CastPlayerTest { verify(mockListener).onMediaItemTransition(any(), anyInt()); } + @Test + public void isCommandAvailable_isTrueForAvailableCommands() { + int[] mediaQueueItemIds = new int[] {1, 2}; + List mediaItems = createMediaItems(mediaQueueItemIds); + + castPlayer.addMediaItems(mediaItems); + updateTimeLine(mediaItems, mediaQueueItemIds, /* currentItemId= */ 1); + + assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM)).isTrue(); + assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM)).isFalse(); + } + @Test public void seekTo_nextWindow_notifiesAvailableCommandsChanged() { when(mockRemoteMediaClient.queueJumpToItem(anyInt(), anyLong(), eq(null))) .thenReturn(mockPendingResult); - Player.Commands commandsWithHasNext = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); - Player.Commands commandsWithHasPrevious = createCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); - Player.Commands commandsWithHasNextAndPrevious = + Player.Commands commandsWithSeekToNext = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); + Player.Commands commandsWithSeekToPrevious = + createCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); + Player.Commands commandsWithSeekToNextAndPrevious = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); int[] mediaQueueItemIds = new int[] {1, 2, 3, 4}; List mediaItems = createMediaItems(mediaQueueItemIds); castPlayer.addMediaItems(mediaItems); updateTimeLine(mediaItems, mediaQueueItemIds, /* currentItemId= */ 1); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasNext); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToNext); verify(mockListener).onAvailableCommandsChanged(any()); castPlayer.seekTo(/* windowIndex= */ 1, /* positionMs= */ 0); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasNextAndPrevious); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToNextAndPrevious); verify(mockListener, times(2)).onAvailableCommandsChanged(any()); castPlayer.seekTo(/* windowIndex= */ 2, /* positionMs= */ 0); verify(mockListener, times(2)).onAvailableCommandsChanged(any()); castPlayer.seekTo(/* windowIndex= */ 3, /* positionMs= */ 0); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasPrevious); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToPrevious); verify(mockListener, times(3)).onAvailableCommandsChanged(any()); } @@ -612,27 +625,28 @@ public class CastPlayerTest { public void seekTo_previousWindow_notifiesAvailableCommandsChanged() { when(mockRemoteMediaClient.queueJumpToItem(anyInt(), anyLong(), eq(null))) .thenReturn(mockPendingResult); - Player.Commands commandsWithHasNext = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); - Player.Commands commandsWithHasPrevious = createCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); - Player.Commands commandsWithHasNextAndPrevious = + Player.Commands commandsWithSeekToNext = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); + Player.Commands commandsWithSeekToPrevious = + createCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); + Player.Commands commandsWithSeekToNextAndPrevious = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); int[] mediaQueueItemIds = new int[] {1, 2, 3, 4}; List mediaItems = createMediaItems(mediaQueueItemIds); castPlayer.addMediaItems(mediaItems); updateTimeLine(mediaItems, mediaQueueItemIds, /* currentItemId= */ 4); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasPrevious); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToPrevious); verify(mockListener).onAvailableCommandsChanged(any()); castPlayer.seekTo(/* windowIndex= */ 2, /* positionMs= */ 0); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasNextAndPrevious); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToNextAndPrevious); verify(mockListener, times(2)).onAvailableCommandsChanged(any()); castPlayer.seekTo(/* windowIndex= */ 1, /* positionMs= */ 0); verify(mockListener, times(2)).onAvailableCommandsChanged(any()); castPlayer.seekTo(/* windowIndex= */ 0, /* positionMs= */ 0); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasNext); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToNext); verify(mockListener, times(3)).onAvailableCommandsChanged(any()); } @@ -652,7 +666,7 @@ public class CastPlayerTest { @Test public void addMediaItem_atTheEnd_notifiesAvailableCommandsChanged() { - Player.Commands commandsWithHasNext = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); + Player.Commands commandsWithSeekToNext = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); MediaItem mediaItem1 = createMediaItem(/* mediaQueueItemId= */ 1); MediaItem mediaItem2 = createMediaItem(/* mediaQueueItemId= */ 2); MediaItem mediaItem3 = createMediaItem(/* mediaQueueItemId= */ 3); @@ -669,7 +683,7 @@ public class CastPlayerTest { ImmutableList.of(mediaItem1, mediaItem2), /* mediaQueueItemIds= */ new int[] {1, 2}, /* currentItemId= */ 1); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasNext); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToNext); verify(mockListener).onAvailableCommandsChanged(any()); castPlayer.addMediaItem(mediaItem3); @@ -682,7 +696,8 @@ public class CastPlayerTest { @Test public void addMediaItem_atTheStart_notifiesAvailableCommandsChanged() { - Player.Commands commandsWithHasPrevious = createCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); + Player.Commands commandsWithSeekToPrevious = + createCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); MediaItem mediaItem1 = createMediaItem(/* mediaQueueItemId= */ 1); MediaItem mediaItem2 = createMediaItem(/* mediaQueueItemId= */ 2); MediaItem mediaItem3 = createMediaItem(/* mediaQueueItemId= */ 3); @@ -699,7 +714,7 @@ public class CastPlayerTest { ImmutableList.of(mediaItem2, mediaItem1), /* mediaQueueItemIds= */ new int[] {2, 1}, /* currentItemId= */ 1); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasPrevious); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToPrevious); verify(mockListener).onAvailableCommandsChanged(any()); castPlayer.addMediaItem(/* index= */ 0, mediaItem3); @@ -712,7 +727,7 @@ public class CastPlayerTest { @Test public void removeMediaItem_atTheEnd_notifiesAvailableCommandsChanged() { - Player.Commands commandsWithHasNext = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); + Player.Commands commandsWithSeekToNext = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); MediaItem mediaItem1 = createMediaItem(/* mediaQueueItemId= */ 1); MediaItem mediaItem2 = createMediaItem(/* mediaQueueItemId= */ 2); MediaItem mediaItem3 = createMediaItem(/* mediaQueueItemId= */ 3); @@ -722,7 +737,7 @@ public class CastPlayerTest { ImmutableList.of(mediaItem1, mediaItem2, mediaItem3), /* mediaQueueItemIds= */ new int[] {1, 2, 3}, /* currentItemId= */ 1); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasNext); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToNext); verify(mockListener).onAvailableCommandsChanged(any()); castPlayer.removeMediaItem(/* index= */ 2); @@ -752,7 +767,8 @@ public class CastPlayerTest { public void removeMediaItem_atTheStart_notifiesAvailableCommandsChanged() { when(mockRemoteMediaClient.queueJumpToItem(anyInt(), anyLong(), eq(null))) .thenReturn(mockPendingResult); - Player.Commands commandsWithHasPrevious = createCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); + Player.Commands commandsWithSeekToPrevious = + createCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); MediaItem mediaItem1 = createMediaItem(/* mediaQueueItemId= */ 1); MediaItem mediaItem2 = createMediaItem(/* mediaQueueItemId= */ 2); MediaItem mediaItem3 = createMediaItem(/* mediaQueueItemId= */ 3); @@ -762,7 +778,7 @@ public class CastPlayerTest { ImmutableList.of(mediaItem1, mediaItem2, mediaItem3), /* mediaQueueItemIds= */ new int[] {1, 2, 3}, /* currentItemId= */ 3); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasPrevious); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToPrevious); verify(mockListener).onAvailableCommandsChanged(any()); castPlayer.removeMediaItem(/* index= */ 0); @@ -790,7 +806,7 @@ public class CastPlayerTest { @Test public void removeMediaItem_current_notifiesAvailableCommandsChanged() { - Player.Commands commandsWithHasNext = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); + Player.Commands commandsWithSeekToNext = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); MediaItem mediaItem1 = createMediaItem(/* mediaQueueItemId= */ 1); MediaItem mediaItem2 = createMediaItem(/* mediaQueueItemId= */ 2); @@ -799,7 +815,7 @@ public class CastPlayerTest { ImmutableList.of(mediaItem1, mediaItem2), /* mediaQueueItemIds= */ new int[] {1, 2}, /* currentItemId= */ 1); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasNext); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToNext); verify(mockListener).onAvailableCommandsChanged(any()); castPlayer.removeMediaItem(/* index= */ 0); @@ -815,7 +831,7 @@ public class CastPlayerTest { public void setRepeatMode_all_notifiesAvailableCommandsChanged() { when(mockRemoteMediaClient.queueSetRepeatMode(anyInt(), eq(null))) .thenReturn(mockPendingResult); - Player.Commands commandsWithHasNextAndPrevious = + Player.Commands commandsWithSeekToNextAndPrevious = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); int[] mediaQueueItemIds = new int[] {1}; List mediaItems = createMediaItems(mediaQueueItemIds); @@ -825,7 +841,7 @@ public class CastPlayerTest { verify(mockListener, never()).onAvailableCommandsChanged(any()); castPlayer.setRepeatMode(Player.REPEAT_MODE_ALL); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasNextAndPrevious); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToNextAndPrevious); verify(mockListener).onAvailableCommandsChanged(any()); } diff --git a/library/common/src/main/java/com/google/android/exoplayer2/BasePlayer.java b/library/common/src/main/java/com/google/android/exoplayer2/BasePlayer.java index cf5b6816ac..3fedba8ef4 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/BasePlayer.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/BasePlayer.java @@ -267,8 +267,8 @@ public abstract class BasePlayer implements Player { protected Commands getAvailableCommands() { return new Commands.Builder() - .addIf(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, hasNext()) - .addIf(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM, hasPrevious()) + .addIf(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, hasNext() && !isPlayingAd()) + .addIf(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM, hasPrevious() && !isPlayingAd()) .build(); } } diff --git a/library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java b/library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java index ed99fc0814..9297ebfad3 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java @@ -8070,11 +8070,51 @@ public final class ExoPlayerTest { exoPlayerTestRunner.assertMediaItemsTransitionedSame(initialMediaItem); } + @Test + public void isCommandAvailable_isTrueForAvailableCommands() { + ExoPlayer player = new TestExoPlayerBuilder(context).build(); + + player.addMediaSources(ImmutableList.of(new FakeMediaSource(), new FakeMediaSource())); + + assertThat(player.isCommandAvailable(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM)).isTrue(); + assertThat(player.isCommandAvailable(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM)).isFalse(); + } + + @Test + public void isCommandAvailable_whenPlayingAd_isFalseForSeekCommands() throws Exception { + AdPlaybackState adPlaybackState = + new AdPlaybackState(/* adsId= */ new Object(), /* adGroupTimesUs...= */ 0) + .withAdCount(/* adGroupIndex= */ 0, /* adCount= */ 1) + .withAdUri(/* adGroupIndex= */ 0, /* adIndexInAdGroup= */ 0, Uri.EMPTY) + .withAdDurationsUs(/* adDurationUs= */ new long[][] {{C.msToUs(4_000)}}); + Timeline adTimeline = + new FakeTimeline( + new TimelineWindowDefinition( + /* periodCount= */ 1, + /* id= */ 0, + /* isSeekable= */ true, + /* isDynamic= */ false, + /* durationUs= */ C.msToUs(10_000), + adPlaybackState)); + ExoPlayer player = new TestExoPlayerBuilder(context).build(); + + player.addMediaSources( + ImmutableList.of( + new FakeMediaSource(), new FakeMediaSource(adTimeline), new FakeMediaSource())); + player.seekTo(/* windowIndex= */ 1, /* positionMs= */ 0); + player.prepare(); + runUntilPlaybackState(player, Player.STATE_READY); + + assertThat(player.isCommandAvailable(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM)).isFalse(); + assertThat(player.isCommandAvailable(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM)).isFalse(); + } + @Test public void seekTo_nextWindow_notifiesAvailableCommandsChanged() { - Player.Commands commandsWithHasNext = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); - Player.Commands commandsWithHasPrevious = createCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); - Player.Commands commandsWithHasNextAndPrevious = + Player.Commands commandsWithSeekToNext = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); + Player.Commands commandsWithSeekToPrevious = + createCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); + Player.Commands commandsWithSeekToNextAndPrevious = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); Player.EventListener mockListener = mock(Player.EventListener.class); ExoPlayer player = new TestExoPlayerBuilder(context).build(); @@ -8086,26 +8126,27 @@ public final class ExoPlayerTest { new FakeMediaSource(), new FakeMediaSource(), new FakeMediaSource())); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasNext); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToNext); verify(mockListener).onAvailableCommandsChanged(any()); player.seekTo(/* windowIndex= */ 1, /* positionMs= */ 0); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasNextAndPrevious); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToNextAndPrevious); verify(mockListener, times(2)).onAvailableCommandsChanged(any()); player.seekTo(/* windowIndex= */ 2, /* positionMs= */ 0); verify(mockListener, times(2)).onAvailableCommandsChanged(any()); player.seekTo(/* windowIndex= */ 3, /* positionMs= */ 0); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasPrevious); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToPrevious); verify(mockListener, times(3)).onAvailableCommandsChanged(any()); } @Test public void seekTo_previousWindow_notifiesAvailableCommandsChanged() { - Player.Commands commandsWithHasNext = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); - Player.Commands commandsWithHasPrevious = createCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); - Player.Commands commandsWithHasNextAndPrevious = + Player.Commands commandsWithSeekToNext = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); + Player.Commands commandsWithSeekToPrevious = + createCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); + Player.Commands commandsWithSeekToNextAndPrevious = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); Player.EventListener mockListener = mock(Player.EventListener.class); ExoPlayer player = new TestExoPlayerBuilder(context).build(); @@ -8118,18 +8159,18 @@ public final class ExoPlayerTest { new FakeMediaSource(), new FakeMediaSource(), new FakeMediaSource())); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasPrevious); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToPrevious); verify(mockListener).onAvailableCommandsChanged(any()); player.seekTo(/* windowIndex= */ 2, /* positionMs= */ 0); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasNextAndPrevious); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToNextAndPrevious); verify(mockListener, times(2)).onAvailableCommandsChanged(any()); player.seekTo(/* windowIndex= */ 1, /* positionMs= */ 0); verify(mockListener, times(2)).onAvailableCommandsChanged(any()); player.seekTo(/* windowIndex= */ 0, /* positionMs= */ 0); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasNext); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToNext); verify(mockListener, times(3)).onAvailableCommandsChanged(any()); } @@ -8147,9 +8188,10 @@ public final class ExoPlayerTest { @Test public void automaticWindowTransition_notifiesAvailableCommandsChanged() throws Exception { - Player.Commands commandsWithHasNext = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); - Player.Commands commandsWithHasPrevious = createCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); - Player.Commands commandsWithHasNextAndPrevious = + Player.Commands commandsWithSeekToNext = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); + Player.Commands commandsWithSeekToPrevious = + createCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); + Player.Commands commandsWithSeekToNextAndPrevious = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); Player.EventListener mockListener = mock(Player.EventListener.class); ExoPlayer player = new TestExoPlayerBuilder(context).build(); @@ -8161,13 +8203,13 @@ public final class ExoPlayerTest { new FakeMediaSource(), new FakeMediaSource(), new FakeMediaSource())); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasNext); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToNext); verify(mockListener).onAvailableCommandsChanged(any()); player.prepare(); playUntilStartOfWindow(player, /* windowIndex= */ 1); runUntilPendingCommandsAreFullyHandled(player); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasNextAndPrevious); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToNextAndPrevious); verify(mockListener, times(2)).onAvailableCommandsChanged(any()); playUntilStartOfWindow(player, /* windowIndex= */ 2); @@ -8176,13 +8218,13 @@ public final class ExoPlayerTest { player.play(); runUntilPlaybackState(player, Player.STATE_ENDED); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasPrevious); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToPrevious); verify(mockListener, times(3)).onAvailableCommandsChanged(any()); } @Test public void addMediaSource_atTheEnd_notifiesAvailableCommandsChanged() { - Player.Commands commandsWithHasNext = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); + Player.Commands commandsWithSeekToNext = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); Player.EventListener mockListener = mock(Player.EventListener.class); ExoPlayer player = new TestExoPlayerBuilder(context).build(); player.addListener(mockListener); @@ -8191,7 +8233,7 @@ public final class ExoPlayerTest { verify(mockListener, never()).onAvailableCommandsChanged(any()); player.addMediaSource(new FakeMediaSource()); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasNext); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToNext); verify(mockListener).onAvailableCommandsChanged(any()); player.addMediaSource(new FakeMediaSource()); @@ -8200,7 +8242,8 @@ public final class ExoPlayerTest { @Test public void addMediaSource_atTheStart_notifiesAvailableCommandsChanged() { - Player.Commands commandsWithHasPrevious = createCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); + Player.Commands commandsWithSeekToPrevious = + createCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); Player.EventListener mockListener = mock(Player.EventListener.class); ExoPlayer player = new TestExoPlayerBuilder(context).build(); player.addListener(mockListener); @@ -8209,7 +8252,7 @@ public final class ExoPlayerTest { verify(mockListener, never()).onAvailableCommandsChanged(any()); player.addMediaSource(/* index= */ 0, new FakeMediaSource()); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasPrevious); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToPrevious); verify(mockListener).onAvailableCommandsChanged(any()); player.addMediaSource(/* index= */ 0, new FakeMediaSource()); @@ -8218,14 +8261,14 @@ public final class ExoPlayerTest { @Test public void removeMediaItem_atTheEnd_notifiesAvailableCommandsChanged() { - Player.Commands commandsWithHasNext = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); + Player.Commands commandsWithSeekToNext = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); Player.EventListener mockListener = mock(Player.EventListener.class); ExoPlayer player = new TestExoPlayerBuilder(context).build(); player.addListener(mockListener); player.addMediaSources( ImmutableList.of(new FakeMediaSource(), new FakeMediaSource(), new FakeMediaSource())); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasNext); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToNext); verify(mockListener).onAvailableCommandsChanged(any()); player.removeMediaItem(/* index= */ 2); @@ -8241,7 +8284,8 @@ public final class ExoPlayerTest { @Test public void removeMediaItem_atTheStart_notifiesAvailableCommandsChanged() { - Player.Commands commandsWithHasPrevious = createCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); + Player.Commands commandsWithSeekToPrevious = + createCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); Player.EventListener mockListener = mock(Player.EventListener.class); ExoPlayer player = new TestExoPlayerBuilder(context).build(); player.addListener(mockListener); @@ -8249,7 +8293,7 @@ public final class ExoPlayerTest { player.seekTo(/* windowIndex= */ 2, /* positionMs= */ 0); player.addMediaSources( ImmutableList.of(new FakeMediaSource(), new FakeMediaSource(), new FakeMediaSource())); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasPrevious); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToPrevious); verify(mockListener).onAvailableCommandsChanged(any()); player.removeMediaItem(/* index= */ 0); @@ -8265,13 +8309,13 @@ public final class ExoPlayerTest { @Test public void removeMediaItem_current_notifiesAvailableCommandsChanged() { - Player.Commands commandsWithHasNext = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); + Player.Commands commandsWithSeekToNext = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); Player.EventListener mockListener = mock(Player.EventListener.class); ExoPlayer player = new TestExoPlayerBuilder(context).build(); player.addListener(mockListener); player.addMediaSources(ImmutableList.of(new FakeMediaSource(), new FakeMediaSource())); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasNext); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToNext); verify(mockListener).onAvailableCommandsChanged(any()); player.removeMediaItem(/* index= */ 0); @@ -8281,7 +8325,7 @@ public final class ExoPlayerTest { @Test public void setRepeatMode_all_notifiesAvailableCommandsChanged() { - Player.Commands commandsWithHasNextAndPrevious = + Player.Commands commandsWithSeekToNextAndPrevious = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); Player.EventListener mockListener = mock(Player.EventListener.class); ExoPlayer player = new TestExoPlayerBuilder(context).build(); @@ -8291,7 +8335,7 @@ public final class ExoPlayerTest { verify(mockListener, never()).onAvailableCommandsChanged(any()); player.setRepeatMode(Player.REPEAT_MODE_ALL); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasNextAndPrevious); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToNextAndPrevious); verify(mockListener).onAvailableCommandsChanged(any()); } @@ -8308,8 +8352,9 @@ public final class ExoPlayerTest { @Test public void setShuffleModeEnabled_notifiesAvailableCommandsChanged() { - Player.Commands commandsWithHasNext = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); - Player.Commands commandsWithHasPrevious = createCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); + Player.Commands commandsWithSeekToNext = createCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); + Player.Commands commandsWithSeekToPrevious = + createCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); Player.EventListener mockListener = mock(Player.EventListener.class); ExoPlayer player = new TestExoPlayerBuilder(context).build(); player.addListener(mockListener); @@ -8321,10 +8366,10 @@ public final class ExoPlayerTest { new FakeMediaSource()); player.addMediaSource(mediaSource); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasNext); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToNext); player.setShuffleModeEnabled(true); - verify(mockListener).onAvailableCommandsChanged(commandsWithHasPrevious); + verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToPrevious); } @Test