Commit 7e6d8223 by kimvde Committed by Oliver Woodman

Rename MEDIA_ITEM to WINDOW is seek commands

This is more correct and is consistent with the Javadoc.

PiperOrigin-RevId: 383808096
parent 0a20ec6b
...@@ -8,6 +8,12 @@ ...@@ -8,6 +8,12 @@
and `seekBack` methods to `Player`. and `seekBack` methods to `Player`.
* Add `getMaxSeekToPreviousPosition` and `seekToPrevious` methods to * Add `getMaxSeekToPreviousPosition` and `seekToPrevious` methods to
`Player`. `Player`.
* Add `seekForward` and `seekBack` methods to `Player`.
* Rename `Player` commands `COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM`,
`COMMAND_SEEK_TO_NEXT_MEDIA_ITEM`, `COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM` and
`COMMAND_SEEK_TO_MEDIA_ITEM` to `COMMAND_SEEK_IN_CURRENT_WINDOW`,
`COMMAND_SEEK_TO_NEXT_WINDOW`, `COMMAND_SEEK_TO_PREVIOUS_WINDOW` and
`COMMAND_SEEK_TO_WINDOW`, respectively.
* Make `Player` depend on the new `PlaybackException` class instead of * Make `Player` depend on the new `PlaybackException` class instead of
`ExoPlaybackException`: `ExoPlaybackException`:
* `Player.getPlayerError` now returns a `PlaybackException`. * `Player.getPlayerError` now returns a `PlaybackException`.
......
...@@ -93,7 +93,7 @@ public final class CastPlayer extends BasePlayer { ...@@ -93,7 +93,7 @@ public final class CastPlayer extends BasePlayer {
COMMAND_PLAY_PAUSE, COMMAND_PLAY_PAUSE,
COMMAND_PREPARE_STOP, COMMAND_PREPARE_STOP,
COMMAND_SEEK_TO_DEFAULT_POSITION, COMMAND_SEEK_TO_DEFAULT_POSITION,
COMMAND_SEEK_TO_MEDIA_ITEM, COMMAND_SEEK_TO_WINDOW,
COMMAND_SET_REPEAT_MODE, COMMAND_SET_REPEAT_MODE,
COMMAND_GET_CURRENT_MEDIA_ITEM, COMMAND_GET_CURRENT_MEDIA_ITEM,
COMMAND_GET_MEDIA_ITEMS, COMMAND_GET_MEDIA_ITEMS,
......
...@@ -28,11 +28,11 @@ import static com.google.android.exoplayer2.Player.COMMAND_PLAY_PAUSE; ...@@ -28,11 +28,11 @@ import static com.google.android.exoplayer2.Player.COMMAND_PLAY_PAUSE;
import static com.google.android.exoplayer2.Player.COMMAND_PREPARE_STOP; import static com.google.android.exoplayer2.Player.COMMAND_PREPARE_STOP;
import static com.google.android.exoplayer2.Player.COMMAND_SEEK_BACK; import static com.google.android.exoplayer2.Player.COMMAND_SEEK_BACK;
import static com.google.android.exoplayer2.Player.COMMAND_SEEK_FORWARD; import static com.google.android.exoplayer2.Player.COMMAND_SEEK_FORWARD;
import static com.google.android.exoplayer2.Player.COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM; import static com.google.android.exoplayer2.Player.COMMAND_SEEK_IN_CURRENT_WINDOW;
import static com.google.android.exoplayer2.Player.COMMAND_SEEK_TO_DEFAULT_POSITION; import static com.google.android.exoplayer2.Player.COMMAND_SEEK_TO_DEFAULT_POSITION;
import static com.google.android.exoplayer2.Player.COMMAND_SEEK_TO_MEDIA_ITEM; import static com.google.android.exoplayer2.Player.COMMAND_SEEK_TO_NEXT_WINDOW;
import static com.google.android.exoplayer2.Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM; import static com.google.android.exoplayer2.Player.COMMAND_SEEK_TO_PREVIOUS_WINDOW;
import static com.google.android.exoplayer2.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM; import static com.google.android.exoplayer2.Player.COMMAND_SEEK_TO_WINDOW;
import static com.google.android.exoplayer2.Player.COMMAND_SET_DEVICE_VOLUME; import static com.google.android.exoplayer2.Player.COMMAND_SET_DEVICE_VOLUME;
import static com.google.android.exoplayer2.Player.COMMAND_SET_MEDIA_ITEMS_METADATA; import static com.google.android.exoplayer2.Player.COMMAND_SET_MEDIA_ITEMS_METADATA;
import static com.google.android.exoplayer2.Player.COMMAND_SET_REPEAT_MODE; import static com.google.android.exoplayer2.Player.COMMAND_SET_REPEAT_MODE;
...@@ -1205,10 +1205,10 @@ public class CastPlayerTest { ...@@ -1205,10 +1205,10 @@ public class CastPlayerTest {
assertThat(castPlayer.isCommandAvailable(COMMAND_PLAY_PAUSE)).isTrue(); assertThat(castPlayer.isCommandAvailable(COMMAND_PLAY_PAUSE)).isTrue();
assertThat(castPlayer.isCommandAvailable(COMMAND_PREPARE_STOP)).isTrue(); assertThat(castPlayer.isCommandAvailable(COMMAND_PREPARE_STOP)).isTrue();
assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_TO_DEFAULT_POSITION)).isTrue(); assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_TO_DEFAULT_POSITION)).isTrue();
assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM)).isTrue(); assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_IN_CURRENT_WINDOW)).isTrue();
assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM)).isTrue(); assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_TO_NEXT_WINDOW)).isTrue();
assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM)).isFalse(); assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_TO_PREVIOUS_WINDOW)).isFalse();
assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_TO_MEDIA_ITEM)).isTrue(); assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_TO_WINDOW)).isTrue();
assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_FORWARD)).isTrue(); assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_FORWARD)).isTrue();
assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_BACK)).isTrue(); assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_BACK)).isTrue();
assertThat(castPlayer.isCommandAvailable(COMMAND_SET_SPEED_AND_PITCH)).isFalse(); assertThat(castPlayer.isCommandAvailable(COMMAND_SET_SPEED_AND_PITCH)).isFalse();
...@@ -1246,7 +1246,7 @@ public class CastPlayerTest { ...@@ -1246,7 +1246,7 @@ public class CastPlayerTest {
durationsMs, durationsMs,
/* positionMs= */ C.TIME_UNSET); /* positionMs= */ C.TIME_UNSET);
assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM)).isFalse(); assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_IN_CURRENT_WINDOW)).isFalse();
assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_FORWARD)).isFalse(); assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_FORWARD)).isFalse();
assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_BACK)).isFalse(); assertThat(castPlayer.isCommandAvailable(COMMAND_SEEK_BACK)).isFalse();
} }
...@@ -1256,12 +1256,12 @@ public class CastPlayerTest { ...@@ -1256,12 +1256,12 @@ public class CastPlayerTest {
when(mockRemoteMediaClient.queueJumpToItem(anyInt(), anyLong(), eq(null))) when(mockRemoteMediaClient.queueJumpToItem(anyInt(), anyLong(), eq(null)))
.thenReturn(mockPendingResult); .thenReturn(mockPendingResult);
Player.Commands commandsWithSeekInCurrentAndToNext = Player.Commands commandsWithSeekInCurrentAndToNext =
createWithPermanentAndSeekInCurrentCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); createWithPermanentAndSeekInCurrentCommands(COMMAND_SEEK_TO_NEXT_WINDOW);
Player.Commands commandsWithSeekInCurrentAndToPrevious = Player.Commands commandsWithSeekInCurrentAndToPrevious =
createWithPermanentAndSeekInCurrentCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); createWithPermanentAndSeekInCurrentCommands(COMMAND_SEEK_TO_PREVIOUS_WINDOW);
Player.Commands commandsWithSeekAnywhere = Player.Commands commandsWithSeekAnywhere =
createWithPermanentAndSeekInCurrentCommands( createWithPermanentAndSeekInCurrentCommands(
COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); COMMAND_SEEK_TO_NEXT_WINDOW, COMMAND_SEEK_TO_PREVIOUS_WINDOW);
int[] mediaQueueItemIds = new int[] {1, 2, 3, 4}; int[] mediaQueueItemIds = new int[] {1, 2, 3, 4};
List<MediaItem> mediaItems = createMediaItems(mediaQueueItemIds); List<MediaItem> mediaItems = createMediaItems(mediaQueueItemIds);
...@@ -1288,12 +1288,12 @@ public class CastPlayerTest { ...@@ -1288,12 +1288,12 @@ public class CastPlayerTest {
when(mockRemoteMediaClient.queueJumpToItem(anyInt(), anyLong(), eq(null))) when(mockRemoteMediaClient.queueJumpToItem(anyInt(), anyLong(), eq(null)))
.thenReturn(mockPendingResult); .thenReturn(mockPendingResult);
Player.Commands commandsWithSeekInCurrentAndToNext = Player.Commands commandsWithSeekInCurrentAndToNext =
createWithPermanentAndSeekInCurrentCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); createWithPermanentAndSeekInCurrentCommands(COMMAND_SEEK_TO_NEXT_WINDOW);
Player.Commands commandsWithSeekInCurrentAndToPrevious = Player.Commands commandsWithSeekInCurrentAndToPrevious =
createWithPermanentAndSeekInCurrentCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); createWithPermanentAndSeekInCurrentCommands(COMMAND_SEEK_TO_PREVIOUS_WINDOW);
Player.Commands commandsWithSeekAnywhere = Player.Commands commandsWithSeekAnywhere =
createWithPermanentAndSeekInCurrentCommands( createWithPermanentAndSeekInCurrentCommands(
COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); COMMAND_SEEK_TO_NEXT_WINDOW, COMMAND_SEEK_TO_PREVIOUS_WINDOW);
int[] mediaQueueItemIds = new int[] {1, 2, 3, 4}; int[] mediaQueueItemIds = new int[] {1, 2, 3, 4};
List<MediaItem> mediaItems = createMediaItems(mediaQueueItemIds); List<MediaItem> mediaItems = createMediaItems(mediaQueueItemIds);
...@@ -1338,7 +1338,7 @@ public class CastPlayerTest { ...@@ -1338,7 +1338,7 @@ public class CastPlayerTest {
Player.Commands commandsWithSeekInCurrent = createWithPermanentAndSeekInCurrentCommands(); Player.Commands commandsWithSeekInCurrent = createWithPermanentAndSeekInCurrentCommands();
; ;
Player.Commands commandsWithSeekInCurrentAndToNext = Player.Commands commandsWithSeekInCurrentAndToNext =
createWithPermanentAndSeekInCurrentCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); createWithPermanentAndSeekInCurrentCommands(COMMAND_SEEK_TO_NEXT_WINDOW);
MediaItem mediaItem1 = createMediaItem(/* mediaQueueItemId= */ 1); MediaItem mediaItem1 = createMediaItem(/* mediaQueueItemId= */ 1);
MediaItem mediaItem2 = createMediaItem(/* mediaQueueItemId= */ 2); MediaItem mediaItem2 = createMediaItem(/* mediaQueueItemId= */ 2);
MediaItem mediaItem3 = createMediaItem(/* mediaQueueItemId= */ 3); MediaItem mediaItem3 = createMediaItem(/* mediaQueueItemId= */ 3);
...@@ -1373,7 +1373,7 @@ public class CastPlayerTest { ...@@ -1373,7 +1373,7 @@ public class CastPlayerTest {
Player.Commands commandsWithSeekInCurrent = createWithPermanentAndSeekInCurrentCommands(); Player.Commands commandsWithSeekInCurrent = createWithPermanentAndSeekInCurrentCommands();
; ;
Player.Commands commandsWithSeekInCurrentAndToPrevious = Player.Commands commandsWithSeekInCurrentAndToPrevious =
createWithPermanentAndSeekInCurrentCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); createWithPermanentAndSeekInCurrentCommands(COMMAND_SEEK_TO_PREVIOUS_WINDOW);
MediaItem mediaItem1 = createMediaItem(/* mediaQueueItemId= */ 1); MediaItem mediaItem1 = createMediaItem(/* mediaQueueItemId= */ 1);
MediaItem mediaItem2 = createMediaItem(/* mediaQueueItemId= */ 2); MediaItem mediaItem2 = createMediaItem(/* mediaQueueItemId= */ 2);
MediaItem mediaItem3 = createMediaItem(/* mediaQueueItemId= */ 3); MediaItem mediaItem3 = createMediaItem(/* mediaQueueItemId= */ 3);
...@@ -1409,7 +1409,7 @@ public class CastPlayerTest { ...@@ -1409,7 +1409,7 @@ public class CastPlayerTest {
Player.Commands commandsWithSeekInCurrent = createWithPermanentAndSeekInCurrentCommands(); Player.Commands commandsWithSeekInCurrent = createWithPermanentAndSeekInCurrentCommands();
; ;
Player.Commands commandsWithSeekInCurrentAndToNext = Player.Commands commandsWithSeekInCurrentAndToNext =
createWithPermanentAndSeekInCurrentCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); createWithPermanentAndSeekInCurrentCommands(COMMAND_SEEK_TO_NEXT_WINDOW);
MediaItem mediaItem1 = createMediaItem(/* mediaQueueItemId= */ 1); MediaItem mediaItem1 = createMediaItem(/* mediaQueueItemId= */ 1);
MediaItem mediaItem2 = createMediaItem(/* mediaQueueItemId= */ 2); MediaItem mediaItem2 = createMediaItem(/* mediaQueueItemId= */ 2);
MediaItem mediaItem3 = createMediaItem(/* mediaQueueItemId= */ 3); MediaItem mediaItem3 = createMediaItem(/* mediaQueueItemId= */ 3);
...@@ -1455,7 +1455,7 @@ public class CastPlayerTest { ...@@ -1455,7 +1455,7 @@ public class CastPlayerTest {
Player.Commands commandsWithSeekInCurrent = createWithPermanentAndSeekInCurrentCommands(); Player.Commands commandsWithSeekInCurrent = createWithPermanentAndSeekInCurrentCommands();
; ;
Player.Commands commandsWithSeekInCurrentAndToPrevious = Player.Commands commandsWithSeekInCurrentAndToPrevious =
createWithPermanentAndSeekInCurrentCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); createWithPermanentAndSeekInCurrentCommands(COMMAND_SEEK_TO_PREVIOUS_WINDOW);
MediaItem mediaItem1 = createMediaItem(/* mediaQueueItemId= */ 1); MediaItem mediaItem1 = createMediaItem(/* mediaQueueItemId= */ 1);
MediaItem mediaItem2 = createMediaItem(/* mediaQueueItemId= */ 2); MediaItem mediaItem2 = createMediaItem(/* mediaQueueItemId= */ 2);
MediaItem mediaItem3 = createMediaItem(/* mediaQueueItemId= */ 3); MediaItem mediaItem3 = createMediaItem(/* mediaQueueItemId= */ 3);
...@@ -1497,7 +1497,7 @@ public class CastPlayerTest { ...@@ -1497,7 +1497,7 @@ public class CastPlayerTest {
public void removeMediaItem_current_notifiesAvailableCommandsChanged() { public void removeMediaItem_current_notifiesAvailableCommandsChanged() {
Player.Commands commandsWithSeekInCurrent = createWithPermanentAndSeekInCurrentCommands(); Player.Commands commandsWithSeekInCurrent = createWithPermanentAndSeekInCurrentCommands();
Player.Commands commandsWithSeekInCurrentAndToNext = Player.Commands commandsWithSeekInCurrentAndToNext =
createWithPermanentAndSeekInCurrentCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); createWithPermanentAndSeekInCurrentCommands(COMMAND_SEEK_TO_NEXT_WINDOW);
MediaItem mediaItem1 = createMediaItem(/* mediaQueueItemId= */ 1); MediaItem mediaItem1 = createMediaItem(/* mediaQueueItemId= */ 1);
MediaItem mediaItem2 = createMediaItem(/* mediaQueueItemId= */ 2); MediaItem mediaItem2 = createMediaItem(/* mediaQueueItemId= */ 2);
...@@ -1527,7 +1527,7 @@ public class CastPlayerTest { ...@@ -1527,7 +1527,7 @@ public class CastPlayerTest {
; ;
Player.Commands commandsWithSeekAnywhere = Player.Commands commandsWithSeekAnywhere =
createWithPermanentAndSeekInCurrentCommands( createWithPermanentAndSeekInCurrentCommands(
COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); COMMAND_SEEK_TO_NEXT_WINDOW, COMMAND_SEEK_TO_PREVIOUS_WINDOW);
int[] mediaQueueItemIds = new int[] {1}; int[] mediaQueueItemIds = new int[] {1};
List<MediaItem> mediaItems = createMediaItems(mediaQueueItemIds); List<MediaItem> mediaItems = createMediaItems(mediaQueueItemIds);
...@@ -1660,7 +1660,7 @@ public class CastPlayerTest { ...@@ -1660,7 +1660,7 @@ public class CastPlayerTest {
@Player.Command int... additionalCommands) { @Player.Command int... additionalCommands) {
Player.Commands.Builder builder = new Player.Commands.Builder(); Player.Commands.Builder builder = new Player.Commands.Builder();
builder.addAll(CastPlayer.PERMANENT_AVAILABLE_COMMANDS); builder.addAll(CastPlayer.PERMANENT_AVAILABLE_COMMANDS);
builder.add(COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM); builder.add(COMMAND_SEEK_IN_CURRENT_WINDOW);
builder.add(COMMAND_SEEK_FORWARD); builder.add(COMMAND_SEEK_FORWARD);
builder.add(COMMAND_SEEK_BACK); builder.add(COMMAND_SEEK_BACK);
builder.addAll(additionalCommands); builder.addAll(additionalCommands);
......
...@@ -15,9 +15,9 @@ ...@@ -15,9 +15,9 @@
*/ */
package com.google.android.exoplayer2.ext.mediasession; package com.google.android.exoplayer2.ext.mediasession;
import static com.google.android.exoplayer2.Player.COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM; import static com.google.android.exoplayer2.Player.COMMAND_SEEK_IN_CURRENT_WINDOW;
import static com.google.android.exoplayer2.Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM; import static com.google.android.exoplayer2.Player.COMMAND_SEEK_TO_NEXT_WINDOW;
import static com.google.android.exoplayer2.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM; import static com.google.android.exoplayer2.Player.COMMAND_SEEK_TO_PREVIOUS_WINDOW;
import static java.lang.Math.min; import static java.lang.Math.min;
import android.os.Bundle; import android.os.Bundle;
...@@ -102,12 +102,12 @@ public abstract class TimelineQueueNavigator implements MediaSessionConnector.Qu ...@@ -102,12 +102,12 @@ public abstract class TimelineQueueNavigator implements MediaSessionConnector.Qu
timeline.getWindow(player.getCurrentWindowIndex(), window); timeline.getWindow(player.getCurrentWindowIndex(), window);
enableSkipTo = timeline.getWindowCount() > 1; enableSkipTo = timeline.getWindowCount() > 1;
enablePrevious = enablePrevious =
player.isCommandAvailable(COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM) player.isCommandAvailable(COMMAND_SEEK_IN_CURRENT_WINDOW)
|| !window.isLive() || !window.isLive()
|| player.isCommandAvailable(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); || player.isCommandAvailable(COMMAND_SEEK_TO_PREVIOUS_WINDOW);
enableNext = enableNext =
(window.isLive() && window.isDynamic) (window.isLive() && window.isDynamic)
|| player.isCommandAvailable(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); || player.isCommandAvailable(COMMAND_SEEK_TO_NEXT_WINDOW);
} }
long actions = 0; long actions = 0;
......
...@@ -281,10 +281,10 @@ public abstract class BasePlayer implements Player { ...@@ -281,10 +281,10 @@ public abstract class BasePlayer implements Player {
return new Commands.Builder() return new Commands.Builder()
.addAll(permanentAvailableCommands) .addAll(permanentAvailableCommands)
.addIf(COMMAND_SEEK_TO_DEFAULT_POSITION, !isPlayingAd()) .addIf(COMMAND_SEEK_TO_DEFAULT_POSITION, !isPlayingAd())
.addIf(COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM, isCurrentWindowSeekable() && !isPlayingAd()) .addIf(COMMAND_SEEK_IN_CURRENT_WINDOW, isCurrentWindowSeekable() && !isPlayingAd())
.addIf(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, hasNext() && !isPlayingAd()) .addIf(COMMAND_SEEK_TO_NEXT_WINDOW, hasNext() && !isPlayingAd())
.addIf(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM, hasPrevious() && !isPlayingAd()) .addIf(COMMAND_SEEK_TO_PREVIOUS_WINDOW, hasPrevious() && !isPlayingAd())
.addIf(COMMAND_SEEK_TO_MEDIA_ITEM, !isPlayingAd()) .addIf(COMMAND_SEEK_TO_WINDOW, !isPlayingAd())
.addIf(COMMAND_SEEK_FORWARD, isCurrentWindowSeekable() && !isPlayingAd()) .addIf(COMMAND_SEEK_FORWARD, isCurrentWindowSeekable() && !isPlayingAd())
.addIf(COMMAND_SEEK_BACK, isCurrentWindowSeekable() && !isPlayingAd()) .addIf(COMMAND_SEEK_BACK, isCurrentWindowSeekable() && !isPlayingAd())
.build(); .build();
......
...@@ -636,10 +636,10 @@ public interface Player { ...@@ -636,10 +636,10 @@ public interface Player {
COMMAND_PLAY_PAUSE, COMMAND_PLAY_PAUSE,
COMMAND_PREPARE_STOP, COMMAND_PREPARE_STOP,
COMMAND_SEEK_TO_DEFAULT_POSITION, COMMAND_SEEK_TO_DEFAULT_POSITION,
COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM, COMMAND_SEEK_IN_CURRENT_WINDOW,
COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, COMMAND_SEEK_TO_NEXT_WINDOW,
COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM, COMMAND_SEEK_TO_PREVIOUS_WINDOW,
COMMAND_SEEK_TO_MEDIA_ITEM, COMMAND_SEEK_TO_WINDOW,
COMMAND_SEEK_FORWARD, COMMAND_SEEK_FORWARD,
COMMAND_SEEK_BACK, COMMAND_SEEK_BACK,
COMMAND_SET_SPEED_AND_PITCH, COMMAND_SET_SPEED_AND_PITCH,
...@@ -1158,8 +1158,8 @@ public interface Player { ...@@ -1158,8 +1158,8 @@ public interface Player {
/** /**
* Commands that can be executed on a {@code Player}. One of {@link #COMMAND_PLAY_PAUSE}, {@link * Commands that can be executed on a {@code Player}. One of {@link #COMMAND_PLAY_PAUSE}, {@link
* #COMMAND_PREPARE_STOP}, {@link #COMMAND_SEEK_TO_DEFAULT_POSITION}, {@link * #COMMAND_PREPARE_STOP}, {@link #COMMAND_SEEK_TO_DEFAULT_POSITION}, {@link
* #COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM}, {@link #COMMAND_SEEK_TO_NEXT_MEDIA_ITEM}, {@link * #COMMAND_SEEK_IN_CURRENT_WINDOW}, {@link #COMMAND_SEEK_TO_NEXT_WINDOW}, {@link
* #COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM}, {@link #COMMAND_SEEK_TO_MEDIA_ITEM}, {@link * #COMMAND_SEEK_TO_PREVIOUS_WINDOW}, {@link #COMMAND_SEEK_TO_WINDOW}, {@link
* #COMMAND_SEEK_FORWARD}, {@link #COMMAND_SEEK_BACK}, {@link #COMMAND_SET_SPEED_AND_PITCH}, * #COMMAND_SEEK_FORWARD}, {@link #COMMAND_SEEK_BACK}, {@link #COMMAND_SET_SPEED_AND_PITCH},
* {@link #COMMAND_SET_SHUFFLE_MODE}, {@link #COMMAND_SET_REPEAT_MODE}, {@link * {@link #COMMAND_SET_SHUFFLE_MODE}, {@link #COMMAND_SET_REPEAT_MODE}, {@link
* #COMMAND_GET_CURRENT_MEDIA_ITEM}, {@link #COMMAND_GET_MEDIA_ITEMS}, {@link * #COMMAND_GET_CURRENT_MEDIA_ITEM}, {@link #COMMAND_GET_MEDIA_ITEMS}, {@link
...@@ -1176,10 +1176,10 @@ public interface Player { ...@@ -1176,10 +1176,10 @@ public interface Player {
COMMAND_PLAY_PAUSE, COMMAND_PLAY_PAUSE,
COMMAND_PREPARE_STOP, COMMAND_PREPARE_STOP,
COMMAND_SEEK_TO_DEFAULT_POSITION, COMMAND_SEEK_TO_DEFAULT_POSITION,
COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM, COMMAND_SEEK_IN_CURRENT_WINDOW,
COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, COMMAND_SEEK_TO_NEXT_WINDOW,
COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM, COMMAND_SEEK_TO_PREVIOUS_WINDOW,
COMMAND_SEEK_TO_MEDIA_ITEM, COMMAND_SEEK_TO_WINDOW,
COMMAND_SEEK_FORWARD, COMMAND_SEEK_FORWARD,
COMMAND_SEEK_BACK, COMMAND_SEEK_BACK,
COMMAND_SET_SPEED_AND_PITCH, COMMAND_SET_SPEED_AND_PITCH,
...@@ -1207,13 +1207,13 @@ public interface Player { ...@@ -1207,13 +1207,13 @@ public interface Player {
/** Command to seek to the default position of the current window. */ /** Command to seek to the default position of the current window. */
int COMMAND_SEEK_TO_DEFAULT_POSITION = 3; int COMMAND_SEEK_TO_DEFAULT_POSITION = 3;
/** Command to seek anywhere into the current window. */ /** Command to seek anywhere into the current window. */
int COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM = 4; int COMMAND_SEEK_IN_CURRENT_WINDOW = 4;
/** Command to seek to the default position of the next window. */ /** Command to seek to the default position of the next window. */
int COMMAND_SEEK_TO_NEXT_MEDIA_ITEM = 5; int COMMAND_SEEK_TO_NEXT_WINDOW = 5;
/** Command to seek to the default position of the previous window. */ /** Command to seek to the default position of the previous window. */
int COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM = 6; int COMMAND_SEEK_TO_PREVIOUS_WINDOW = 6;
/** Command to seek anywhere in any window. */ /** Command to seek anywhere in any window. */
int COMMAND_SEEK_TO_MEDIA_ITEM = 7; int COMMAND_SEEK_TO_WINDOW = 7;
/** Command to seek forward into the current window. */ /** Command to seek forward into the current window. */
int COMMAND_SEEK_FORWARD = 8; int COMMAND_SEEK_FORWARD = 8;
/** Command to seek back into the current window. */ /** Command to seek back into the current window. */
...@@ -1438,11 +1438,11 @@ public interface Player { ...@@ -1438,11 +1438,11 @@ public interface Player {
* <p>This method does not execute the command. * <p>This method does not execute the command.
* *
* <p>Executing a command that is not available (for example, calling {@link #next()} if {@link * <p>Executing a command that is not available (for example, calling {@link #next()} if {@link
* #COMMAND_SEEK_TO_NEXT_MEDIA_ITEM} is unavailable) will neither throw an exception nor generate * #COMMAND_SEEK_TO_NEXT_WINDOW} is unavailable) will neither throw an exception nor generate a
* a {@link #getPlayerError()} player error}. * {@link #getPlayerError()} player error}.
* *
* <p>{@link #COMMAND_SEEK_TO_NEXT_MEDIA_ITEM} and {@link #COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM} * <p>{@link #COMMAND_SEEK_TO_NEXT_WINDOW} and {@link #COMMAND_SEEK_TO_PREVIOUS_WINDOW} are
* are unavailable if there is no such {@link MediaItem}. * unavailable if there is no such {@link MediaItem}.
* *
* @param command A {@link Command}. * @param command A {@link Command}.
* @return Whether the {@link Command} is available. * @return Whether the {@link Command} is available.
...@@ -1458,11 +1458,11 @@ public interface Player { ...@@ -1458,11 +1458,11 @@ public interface Player {
* change. * change.
* *
* <p>Executing a command that is not available (for example, calling {@link #next()} if {@link * <p>Executing a command that is not available (for example, calling {@link #next()} if {@link
* #COMMAND_SEEK_TO_NEXT_MEDIA_ITEM} is unavailable) will neither throw an exception nor generate * #COMMAND_SEEK_TO_NEXT_WINDOW} is unavailable) will neither throw an exception nor generate a
* a {@link #getPlayerError()} player error}. * {@link #getPlayerError()} player error}.
* *
* <p>{@link #COMMAND_SEEK_TO_NEXT_MEDIA_ITEM} and {@link #COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM} * <p>{@link #COMMAND_SEEK_TO_NEXT_WINDOW} and {@link #COMMAND_SEEK_TO_PREVIOUS_WINDOW} are
* are unavailable if there is no such {@link MediaItem}. * unavailable if there is no such {@link MediaItem}.
* *
* @return The currently available {@link Commands}. * @return The currently available {@link Commands}.
* @see Listener#onAvailableCommandsChanged * @see Listener#onAvailableCommandsChanged
......
...@@ -216,7 +216,7 @@ import java.util.concurrent.CopyOnWriteArraySet; ...@@ -216,7 +216,7 @@ import java.util.concurrent.CopyOnWriteArraySet;
new Commands.Builder() new Commands.Builder()
.addAll(permanentAvailableCommands) .addAll(permanentAvailableCommands)
.add(COMMAND_SEEK_TO_DEFAULT_POSITION) .add(COMMAND_SEEK_TO_DEFAULT_POSITION)
.add(COMMAND_SEEK_TO_MEDIA_ITEM) .add(COMMAND_SEEK_TO_WINDOW)
.build(); .build();
mediaMetadata = MediaMetadata.EMPTY; mediaMetadata = MediaMetadata.EMPTY;
playlistMetadata = MediaMetadata.EMPTY; playlistMetadata = MediaMetadata.EMPTY;
......
...@@ -15,9 +15,9 @@ ...@@ -15,9 +15,9 @@
*/ */
package com.google.android.exoplayer2.ui; package com.google.android.exoplayer2.ui;
import static com.google.android.exoplayer2.Player.COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM; import static com.google.android.exoplayer2.Player.COMMAND_SEEK_IN_CURRENT_WINDOW;
import static com.google.android.exoplayer2.Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM; import static com.google.android.exoplayer2.Player.COMMAND_SEEK_TO_NEXT_WINDOW;
import static com.google.android.exoplayer2.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM; import static com.google.android.exoplayer2.Player.COMMAND_SEEK_TO_PREVIOUS_WINDOW;
import static com.google.android.exoplayer2.Player.EVENT_IS_PLAYING_CHANGED; import static com.google.android.exoplayer2.Player.EVENT_IS_PLAYING_CHANGED;
import static com.google.android.exoplayer2.Player.EVENT_PLAYBACK_STATE_CHANGED; import static com.google.android.exoplayer2.Player.EVENT_PLAYBACK_STATE_CHANGED;
import static com.google.android.exoplayer2.Player.EVENT_PLAY_WHEN_READY_CHANGED; import static com.google.android.exoplayer2.Player.EVENT_PLAY_WHEN_READY_CHANGED;
...@@ -871,18 +871,18 @@ public class PlayerControlView extends FrameLayout { ...@@ -871,18 +871,18 @@ public class PlayerControlView extends FrameLayout {
if (player != null) { if (player != null) {
Timeline timeline = player.getCurrentTimeline(); Timeline timeline = player.getCurrentTimeline();
if (!timeline.isEmpty() && !player.isPlayingAd()) { if (!timeline.isEmpty() && !player.isPlayingAd()) {
boolean isSeekable = player.isCommandAvailable(COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM); boolean isSeekable = player.isCommandAvailable(COMMAND_SEEK_IN_CURRENT_WINDOW);
timeline.getWindow(player.getCurrentWindowIndex(), window); timeline.getWindow(player.getCurrentWindowIndex(), window);
enableSeeking = isSeekable; enableSeeking = isSeekable;
enablePrevious = enablePrevious =
isSeekable isSeekable
|| !window.isLive() || !window.isLive()
|| player.isCommandAvailable(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); || player.isCommandAvailable(COMMAND_SEEK_TO_PREVIOUS_WINDOW);
enableRewind = isSeekable && controlDispatcher.isRewindEnabled(); enableRewind = isSeekable && controlDispatcher.isRewindEnabled();
enableFastForward = isSeekable && controlDispatcher.isFastForwardEnabled(); enableFastForward = isSeekable && controlDispatcher.isFastForwardEnabled();
enableNext = enableNext =
(window.isLive() && window.isDynamic) (window.isLive() && window.isDynamic)
|| player.isCommandAvailable(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); || player.isCommandAvailable(COMMAND_SEEK_TO_NEXT_WINDOW);
} }
} }
......
...@@ -15,9 +15,9 @@ ...@@ -15,9 +15,9 @@
*/ */
package com.google.android.exoplayer2.ui; package com.google.android.exoplayer2.ui;
import static com.google.android.exoplayer2.Player.COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM; import static com.google.android.exoplayer2.Player.COMMAND_SEEK_IN_CURRENT_WINDOW;
import static com.google.android.exoplayer2.Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM; import static com.google.android.exoplayer2.Player.COMMAND_SEEK_TO_NEXT_WINDOW;
import static com.google.android.exoplayer2.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM; import static com.google.android.exoplayer2.Player.COMMAND_SEEK_TO_PREVIOUS_WINDOW;
import static com.google.android.exoplayer2.Player.EVENT_IS_PLAYING_CHANGED; import static com.google.android.exoplayer2.Player.EVENT_IS_PLAYING_CHANGED;
import static com.google.android.exoplayer2.Player.EVENT_PLAYBACK_PARAMETERS_CHANGED; import static com.google.android.exoplayer2.Player.EVENT_PLAYBACK_PARAMETERS_CHANGED;
import static com.google.android.exoplayer2.Player.EVENT_PLAYBACK_STATE_CHANGED; import static com.google.android.exoplayer2.Player.EVENT_PLAYBACK_STATE_CHANGED;
...@@ -1273,17 +1273,17 @@ public class PlayerNotificationManager { ...@@ -1273,17 +1273,17 @@ public class PlayerNotificationManager {
boolean enableNext = false; boolean enableNext = false;
Timeline timeline = player.getCurrentTimeline(); Timeline timeline = player.getCurrentTimeline();
if (!timeline.isEmpty() && !player.isPlayingAd()) { if (!timeline.isEmpty() && !player.isPlayingAd()) {
boolean isSeekable = player.isCommandAvailable(COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM); boolean isSeekable = player.isCommandAvailable(COMMAND_SEEK_IN_CURRENT_WINDOW);
timeline.getWindow(player.getCurrentWindowIndex(), window); timeline.getWindow(player.getCurrentWindowIndex(), window);
enablePrevious = enablePrevious =
isSeekable isSeekable
|| !window.isLive() || !window.isLive()
|| player.isCommandAvailable(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); || player.isCommandAvailable(COMMAND_SEEK_TO_PREVIOUS_WINDOW);
enableRewind = isSeekable && controlDispatcher.isRewindEnabled(); enableRewind = isSeekable && controlDispatcher.isRewindEnabled();
enableFastForward = isSeekable && controlDispatcher.isFastForwardEnabled(); enableFastForward = isSeekable && controlDispatcher.isFastForwardEnabled();
enableNext = enableNext =
(window.isLive() && window.isDynamic) (window.isLive() && window.isDynamic)
|| player.isCommandAvailable(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); || player.isCommandAvailable(COMMAND_SEEK_TO_NEXT_WINDOW);
} }
List<String> stringActions = new ArrayList<>(); List<String> stringActions = new ArrayList<>();
......
...@@ -15,9 +15,9 @@ ...@@ -15,9 +15,9 @@
*/ */
package com.google.android.exoplayer2.ui; package com.google.android.exoplayer2.ui;
import static com.google.android.exoplayer2.Player.COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM; import static com.google.android.exoplayer2.Player.COMMAND_SEEK_IN_CURRENT_WINDOW;
import static com.google.android.exoplayer2.Player.COMMAND_SEEK_TO_NEXT_MEDIA_ITEM; import static com.google.android.exoplayer2.Player.COMMAND_SEEK_TO_NEXT_WINDOW;
import static com.google.android.exoplayer2.Player.COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM; import static com.google.android.exoplayer2.Player.COMMAND_SEEK_TO_PREVIOUS_WINDOW;
import static com.google.android.exoplayer2.Player.EVENT_IS_PLAYING_CHANGED; import static com.google.android.exoplayer2.Player.EVENT_IS_PLAYING_CHANGED;
import static com.google.android.exoplayer2.Player.EVENT_PLAYBACK_PARAMETERS_CHANGED; import static com.google.android.exoplayer2.Player.EVENT_PLAYBACK_PARAMETERS_CHANGED;
import static com.google.android.exoplayer2.Player.EVENT_PLAYBACK_STATE_CHANGED; import static com.google.android.exoplayer2.Player.EVENT_PLAYBACK_STATE_CHANGED;
...@@ -1133,18 +1133,18 @@ public class StyledPlayerControlView extends FrameLayout { ...@@ -1133,18 +1133,18 @@ public class StyledPlayerControlView extends FrameLayout {
if (player != null) { if (player != null) {
Timeline timeline = player.getCurrentTimeline(); Timeline timeline = player.getCurrentTimeline();
if (!timeline.isEmpty() && !player.isPlayingAd()) { if (!timeline.isEmpty() && !player.isPlayingAd()) {
boolean isSeekable = player.isCommandAvailable(COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM); boolean isSeekable = player.isCommandAvailable(COMMAND_SEEK_IN_CURRENT_WINDOW);
timeline.getWindow(player.getCurrentWindowIndex(), window); timeline.getWindow(player.getCurrentWindowIndex(), window);
enableSeeking = isSeekable; enableSeeking = isSeekable;
enablePrevious = enablePrevious =
isSeekable isSeekable
|| !window.isLive() || !window.isLive()
|| player.isCommandAvailable(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM); || player.isCommandAvailable(COMMAND_SEEK_TO_PREVIOUS_WINDOW);
enableRewind = isSeekable && controlDispatcher.isRewindEnabled(); enableRewind = isSeekable && controlDispatcher.isRewindEnabled();
enableFastForward = isSeekable && controlDispatcher.isFastForwardEnabled(); enableFastForward = isSeekable && controlDispatcher.isFastForwardEnabled();
enableNext = enableNext =
(window.isLive() && window.isDynamic) (window.isLive() && window.isDynamic)
|| player.isCommandAvailable(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM); || player.isCommandAvailable(COMMAND_SEEK_TO_NEXT_WINDOW);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment