Deprecate EventListener in favor of Listener

#minor-release

PiperOrigin-RevId: 371348520
This commit is contained in:
krocard 2021-04-30 17:31:54 +01:00 committed by bachinger
parent 4bf7477e3e
commit 3dc6cf6bec
26 changed files with 230 additions and 227 deletions

View File

@ -30,7 +30,8 @@
`ExoPlayer`.
* Add `getMediaMetadata` to `Player` interface.
* Add a `Listener` interface to receive all player events in a single
object. Component Listeners have been deprecated in its favor.
object. Component Listeners and `EventListener` have been deprecated in
its favor.
* `Player.setPlaybackParameters` no longer accepts null, use
`PlaybackParameters.DEFAULT` instead.
* Use an empty string instead of the URI if the media ID is not explicitly

View File

@ -57,14 +57,14 @@ player.prepare();
You can retrieve the current manifest by calling `Player.getCurrentManifest`.
For DASH you should cast the returned object to `DashManifest`. The
`onTimelineChanged` callback of `Player.EventListener` is also called whenever
`onTimelineChanged` callback of `Player.Listener` is also called whenever
the manifest is loaded. This will happen once for a on-demand content, and
possibly many times for live content. The code snippet below shows how an app
can do something whenever the manifest is loaded.
~~~
player.addListener(
new Player.EventListener() {
new Player.Listener() {
@Override
public void onTimelineChanged(
Timeline timeline, @Player.TimelineChangeReason int reason) {

View File

@ -60,14 +60,14 @@ player.prepare();
You can retrieve the current manifest by calling `Player.getCurrentManifest`.
For HLS you should cast the returned object to `HlsManifest`. The
`onTimelineChanged` callback of `Player.EventListener` is also called whenever
`onTimelineChanged` callback of `Player.Listener` is also called whenever
the manifest is loaded. This will happen once for a on-demand content, and
possibly many times for live content. The code snippet below shows how an app
can do something whenever the manifest is loaded.
~~~
player.addListener(
new Player.EventListener() {
new Player.Listener() {
@Override
public void onTimelineChanged(
Timeline timeline, @Player.TimelineChangeReason int reason) {

View File

@ -5,16 +5,16 @@ title: Player events
## Listening to playback events ##
Events such as changes in state and playback errors are reported to registered
[`Player.EventListener`][] instances. Registering a listener to receive such
[`Player.Listener`][] instances. Registering a listener to receive such
events is easy:
~~~
// Add a listener to receive events from the player.
player.addListener(eventListener);
player.addListener(listener);
~~~
{: .language-java}
`Player.EventListener` has empty default methods, so you only need to implement
`Player.Listener` has empty default methods, so you only need to implement
the methods you're interested in. See the [Javadoc][] for a full description of
the methods and when they're called. Some of the most important methods are
described in more detail below.
@ -28,7 +28,7 @@ should be preferred for different use cases.
Changes in player state can be received by implementing
`onPlaybackStateChanged(@State int state)` in a registered
`Player.EventListener`. The player can be in one of four playback states:
`Player.Listener`. The player can be in one of four playback states:
* `Player.STATE_IDLE`: This is the initial state, the state when the player is
stopped, and when playback failed.
@ -68,7 +68,7 @@ public void onIsPlayingChanged(boolean isPlaying) {
Errors that cause playback to fail can be received by implementing
`onPlayerError(ExoPlaybackException error)` in a registered
`Player.EventListener`. When a failure occurs, this method will be called
`Player.Listener`. When a failure occurs, this method will be called
immediately before the playback state transitions to `Player.STATE_IDLE`.
Failed or stopped playbacks can be retried by calling `ExoPlayer.retry`.
@ -107,7 +107,7 @@ public void onPlayerError(ExoPlaybackException error) {
Whenever the player changes to a new media item in the playlist
`onMediaItemTransition(MediaItem mediaItem,
@MediaItemTransitionReason int reason)` is called on registered
`Player.EventListener`s. The reason indicates whether this was an automatic
`Player.Listener`s. The reason indicates whether this was an automatic
transition, a seek (for example after calling `player.next()`), a repetition of
the same item, or caused by a playlist change (e.g., if the currently playing
item is removed).
@ -115,7 +115,7 @@ item is removed).
### Seeking ###
Calling `Player.seekTo` methods results in a series of callbacks to registered
`Player.EventListener` instances:
`Player.Listener` instances:
1. `onPositionDiscontinuity` with `reason=DISCONTINUITY_REASON_SEEK`. This is
the direct result of calling `Player.seekTo`.
@ -232,8 +232,8 @@ player
~~~
{: .language-java }
[`Player.EventListener`]: {{ site.exo_sdk }}/Player.EventListener.html
[Javadoc]: {{ site.exo_sdk }}/Player.EventListener.html
[`Player.Listener`]: {{ site.exo_sdk }}/Player.Listener.html
[Javadoc]: {{ site.exo_sdk }}/Player.Listener.html
[`Individual callbacks vs onEvents`]: #individual-callbacks-vs-onevents
[`ExoPlaybackException`]: {{ site.exo_sdk }}/ExoPlaybackException.html
[log output]: event-logger.html

View File

@ -25,7 +25,7 @@ closer to the live edge again.
## Detecting and monitoring live playbacks ##
Every time a live window is updated, registered `Player.EventListener` instances
Every time a live window is updated, registered `Player.Listener` instances
will receive an `onTimelineChanged` event. You can retrieve details about the
current live playback by querying various `Player` and `Timeline.Window`
methods, as listed below and shown in the following figure.
@ -135,7 +135,7 @@ setting `minPlaybackSpeed` and `maxPlaybackSpeed` to `1.0f`.
The playback position may fall behind the live window, for example if the player
is paused or buffering for a long enough period of time. If this happens then
playback will fail and a `BehindLiveWindowException` will be reported via
`Player.EventListener.onPlayerError`. Application code may wish to handle such
`Player.Listener.onPlayerError`. Application code may wish to handle such
errors by resuming playback at the default position. The [PlayerActivity][] of
the demo app exemplifies this approach.

View File

@ -101,7 +101,7 @@ MediaItem mediaItem =
## Detecting when playback transitions to another media item ##
When playback transitions to another media item, or starts repeating the same
media item, `EventListener.onMediaItemTransition(MediaItem,
media item, `Listener.onMediaItemTransition(MediaItem,
@MediaItemTransitionReason)` is called. This callback receives the new media
item, along with a `@MediaItemTransitionReason` indicating why the transition
occurred. A common use case for `onMediaItemTransition` is to update the
@ -135,7 +135,7 @@ public void onMediaItemTransition(
## Detecting when the playlist changes ##
When a media item is added, removed or moved,
`EventListener.onTimelineChanged(Timeline, @TimelineChangeReason)` is called
`Listener.onTimelineChanged(Timeline, @TimelineChangeReason)` is called
immediately with `TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED`. This callback is
called even when the player has not yet been prepared.

View File

@ -59,14 +59,14 @@ player.prepare();
You can retrieve the current manifest by calling `Player.getCurrentManifest`.
For SmoothStreaming you should cast the returned object to `SsManifest`. The
`onTimelineChanged` callback of `Player.EventListener` is also called whenever
`onTimelineChanged` callback of `Player.Listener` is also called whenever
the manifest is loaded. This will happen once for a on-demand content, and
possibly many times for live content. The code snippet below shows how an app
can do something whenever the manifest is loaded.
~~~
player.addListener(
new Player.EventListener() {
new Player.Listener() {
@Override
public void onTimelineChanged(
Timeline timeline, @Player.TimelineChangeReason int reason) {

View File

@ -97,7 +97,7 @@ public class CastPlayerTest {
@Mock private CastContext mockCastContext;
@Mock private SessionManager mockSessionManager;
@Mock private CastSession mockCastSession;
@Mock private Player.EventListener mockListener;
@Mock private Player.Listener mockListener;
@Mock private PendingResult<RemoteMediaClient.MediaChannelResult> mockPendingResult;
@Captor

View File

@ -89,7 +89,7 @@ public class FlacPlaybackTest {
"audiosinkdumps/" + fileName + ".audiosink.dump");
}
private static class TestPlaybackRunnable implements Player.EventListener, Runnable {
private static class TestPlaybackRunnable implements Player.Listener, Runnable {
private final Context context;
private final Uri uri;

View File

@ -28,7 +28,6 @@ import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.MediaItem;
import com.google.android.exoplayer2.Player;
import com.google.android.exoplayer2.Player.DiscontinuityReason;
import com.google.android.exoplayer2.Player.EventListener;
import com.google.android.exoplayer2.Player.TimelineChangeReason;
import com.google.android.exoplayer2.SimpleExoPlayer;
import com.google.android.exoplayer2.Timeline.Window;
@ -186,7 +185,7 @@ public final class ImaPlaybackTest {
}
}
private static final class ImaHostedTest extends ExoHostedTest implements EventListener {
private static final class ImaHostedTest extends ExoHostedTest implements Player.Listener {
private final Uri contentUri;
private final DataSpec adTagDataSpec;

View File

@ -76,7 +76,7 @@ import java.util.List;
import java.util.Map;
/** Handles loading and playback of a single ad tag. */
/* package */ final class AdTagLoader implements Player.EventListener {
/* package */ final class AdTagLoader implements Player.Listener {
private static final String TAG = "AdTagLoader";

View File

@ -85,7 +85,7 @@ import java.util.Set;
* href="https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/omsdk">IMA
* SDK Open Measurement documentation</a> for more information.
*/
public final class ImaAdsLoader implements Player.EventListener, AdsLoader {
public final class ImaAdsLoader implements Player.Listener, AdsLoader {
static {
ExoPlayerLibraryInfo.registerModule("goog.exo.ima");
@ -601,7 +601,7 @@ public final class ImaAdsLoader implements Player.EventListener, AdsLoader {
.handlePrepareError(adGroupIndex, adIndexInAdGroup, exception);
}
// Player.EventListener implementation.
// Player.Listener implementation.
@Override
public void onTimelineChanged(Timeline timeline, @Player.TimelineChangeReason int reason) {

View File

@ -27,7 +27,7 @@ import com.google.android.exoplayer2.util.ListenerSet;
/** A fake player for testing content/ad playback. */
/* package */ final class FakePlayer extends StubExoPlayer {
private final ListenerSet<EventListener> listeners;
private final ListenerSet<Listener> listeners;
private final Timeline.Period period;
private final Object windowUid = new Object();
private final Object periodUid = new Object();
@ -185,12 +185,12 @@ import com.google.android.exoplayer2.util.ListenerSet;
}
@Override
public void addListener(Player.EventListener listener) {
public void addListener(Player.Listener listener) {
listeners.add(listener);
}
@Override
public void removeListener(Player.EventListener listener) {
public void removeListener(Player.Listener listener) {
listeners.remove(listener);
}

View File

@ -1085,13 +1085,12 @@ public final class MediaSessionConnector {
}
}
private class ComponentListener extends MediaSessionCompat.Callback
implements Player.EventListener {
private class ComponentListener extends MediaSessionCompat.Callback implements Player.Listener {
private int currentWindowIndex;
private int currentWindowCount;
// Player.EventListener implementation.
// Player.Listener implementation.
@Override
public void onEvents(Player player, Player.Events events) {

View File

@ -73,7 +73,7 @@ public class OpusPlaybackTest {
}
}
private static class TestPlaybackRunnable implements Player.EventListener, Runnable {
private static class TestPlaybackRunnable implements Player.Listener, Runnable {
private final Context context;
private final Uri uri;

View File

@ -101,7 +101,7 @@ public class VpxPlaybackTest {
}
}
private static class TestPlaybackRunnable implements Player.EventListener, Runnable {
private static class TestPlaybackRunnable implements Player.Listener, Runnable {
private final Context context;
private final Uri uri;

View File

@ -74,7 +74,10 @@ public interface Player {
* <p>Listeners can choose to implement individual events (e.g. {@link
* #onIsPlayingChanged(boolean)}) or {@link #onEvents(Player, Events)}, which is called after one
* or more events occurred together.
*
* @deprecated Use {@link Player.Listener}.
*/
@Deprecated
interface EventListener {
/**
@ -1040,7 +1043,9 @@ public interface Player {
* the player does not have a {@link Looper}, then the listener will be called on the main thread.
*
* @param listener The listener to register.
* @deprecated Use {@link #addListener(Listener)} instead.
*/
@Deprecated
void addListener(EventListener listener);
/**
@ -1055,7 +1060,9 @@ public interface Player {
* no longer receive events from the player.
*
* @param listener The listener to unregister.
* @deprecated Use {@link #addListener(Listener)} instead.
*/
@Deprecated
void removeListener(EventListener listener);
/**

View File

@ -66,7 +66,7 @@ public final class ClippedPlaybackTest {
player
.get()
.addListener(
new Player.EventListener() {
new Player.Listener() {
@Override
public void onPlaybackStateChanged(@Player.State int state) {
if (state == Player.STATE_ENDED) {
@ -120,7 +120,7 @@ public final class ClippedPlaybackTest {
player
.get()
.addListener(
new Player.EventListener() {
new Player.Listener() {
@Override
public void onPlaybackStateChanged(@Player.State int state) {
if (state == Player.STATE_ENDED) {

View File

@ -66,7 +66,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
* Data collector that forwards analytics events to {@link AnalyticsListener AnalyticsListeners}.
*/
public class AnalyticsCollector
implements Player.EventListener,
implements Player.Listener,
AudioRendererEventListener,
VideoRendererEventListener,
MediaSourceEventListener,

View File

@ -105,10 +105,10 @@ import org.checkerframework.checker.nullness.qual.EnsuresNonNull;
* }</pre>
*
* If {@code rendererTrackGroups} is null then there aren't any currently mapped tracks, and so
* setting an override isn't possible. Note that a {@link Player.EventListener} registered on the
* player can be used to determine when the current tracks (and therefore the mapping) changes. If
* {@code rendererTrackGroups} is non-null then an override can be set. The next step is to query
* the properties of the available tracks to determine the {@code groupIndex} and the {@code
* setting an override isn't possible. Note that a {@link Player.Listener} registered on the player
* can be used to determine when the current tracks (and therefore the mapping) changes. If {@code
* rendererTrackGroups} is non-null then an override can be set. The next step is to query the
* properties of the available tracks to determine the {@code groupIndex} and the {@code
* trackIndices} within the group it that should be selected. The override can then be specified
* using {@link ParametersBuilder#setSelectionOverride}:
*

View File

@ -28,7 +28,7 @@ import java.util.Locale;
* A helper class for periodically updating a {@link TextView} with debug information obtained from
* a {@link SimpleExoPlayer}.
*/
public class DebugTextViewHelper implements Player.EventListener, Runnable {
public class DebugTextViewHelper implements Player.Listener, Runnable {
private static final int REFRESH_INTERVAL_MS = 1000;
@ -75,7 +75,7 @@ public class DebugTextViewHelper implements Player.EventListener, Runnable {
textView.removeCallbacks(this);
}
// Player.EventListener implementation.
// Player.Listener implementation.
@Override
public final void onPlaybackStateChanged(@Player.State int playbackState) {

View File

@ -75,8 +75,6 @@ import androidx.annotation.Nullable;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.android.exoplayer2.Player.DiscontinuityReason;
import com.google.android.exoplayer2.Player.EventListener;
import com.google.android.exoplayer2.Player.Listener;
import com.google.android.exoplayer2.Timeline.Window;
import com.google.android.exoplayer2.analytics.AnalyticsListener;
import com.google.android.exoplayer2.audio.AudioAttributes;
@ -193,7 +191,7 @@ public final class ExoPlayerTest {
FakeRenderer renderer = new FakeRenderer(C.TRACK_TYPE_UNKNOWN);
SimpleExoPlayer player = new TestExoPlayerBuilder(context).setRenderers(renderer).build();
Listener mockListener = mock(Listener.class);
Player.Listener mockListener = mock(Player.Listener.class);
player.addListener(mockListener);
player.setMediaSource(new FakeMediaSource(timeline, ExoPlayerTestRunner.VIDEO_FORMAT));
@ -224,7 +222,7 @@ public final class ExoPlayerTest {
Timeline timeline = new FakeTimeline();
FakeRenderer renderer = new FakeRenderer(C.TRACK_TYPE_VIDEO);
SimpleExoPlayer player = new TestExoPlayerBuilder(context).setRenderers(renderer).build();
Listener mockListener = mock(Listener.class);
Player.Listener mockListener = mock(Player.Listener.class);
player.addListener(mockListener);
player.setMediaSource(new FakeMediaSource(timeline, ExoPlayerTestRunner.VIDEO_FORMAT));
@ -259,26 +257,26 @@ public final class ExoPlayerTest {
Timeline timeline = new FakeTimeline(/* windowCount= */ 3);
FakeRenderer renderer = new FakeRenderer(C.TRACK_TYPE_VIDEO);
SimpleExoPlayer player = new TestExoPlayerBuilder(context).setRenderers(renderer).build();
EventListener mockEventListener = mock(EventListener.class);
player.addListener(mockEventListener);
Player.Listener mockPlayerListener = mock(Player.Listener.class);
player.addListener(mockPlayerListener);
player.setMediaSource(new FakeMediaSource(timeline, ExoPlayerTestRunner.VIDEO_FORMAT));
player.prepare();
player.play();
runUntilPlaybackState(player, Player.STATE_ENDED);
InOrder inOrder = Mockito.inOrder(mockEventListener);
InOrder inOrder = Mockito.inOrder(mockPlayerListener);
inOrder
.verify(mockEventListener)
.verify(mockPlayerListener)
.onTimelineChanged(
argThat(noUid(new FakeMediaSource.InitialTimeline(timeline))),
eq(Player.DISCONTINUITY_REASON_AUTO_TRANSITION));
inOrder
.verify(mockEventListener)
.verify(mockPlayerListener)
.onTimelineChanged(
argThat(noUid(timeline)), eq(Player.TIMELINE_CHANGE_REASON_SOURCE_UPDATE));
inOrder
.verify(mockEventListener, times(2))
.verify(mockPlayerListener, times(2))
.onPositionDiscontinuity(any(), any(), eq(Player.DISCONTINUITY_REASON_AUTO_TRANSITION));
assertThat(renderer.getFormatsRead())
.containsExactly(
@ -297,26 +295,26 @@ public final class ExoPlayerTest {
new FakeTimeline(new TimelineWindowDefinition(/* periodCount= */ 100, /* id= */ 0));
FakeRenderer renderer = new FakeRenderer(C.TRACK_TYPE_VIDEO);
SimpleExoPlayer player = new TestExoPlayerBuilder(context).setRenderers(renderer).build();
EventListener mockEventListener = mock(EventListener.class);
player.addListener(mockEventListener);
Player.Listener mockPlayerListener = mock(Player.Listener.class);
player.addListener(mockPlayerListener);
player.setMediaSource(new FakeMediaSource(timeline, ExoPlayerTestRunner.VIDEO_FORMAT));
player.prepare();
player.play();
runUntilPlaybackState(player, Player.STATE_ENDED);
InOrder inOrder = inOrder(mockEventListener);
InOrder inOrder = inOrder(mockPlayerListener);
inOrder
.verify(mockEventListener)
.verify(mockPlayerListener)
.onTimelineChanged(
argThat(noUid(placeholderTimeline)),
eq(Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED));
inOrder
.verify(mockEventListener)
.verify(mockPlayerListener)
.onTimelineChanged(
argThat(noUid(timeline)), eq(Player.TIMELINE_CHANGE_REASON_SOURCE_UPDATE));
inOrder
.verify(mockEventListener, times(99))
.verify(mockPlayerListener, times(99))
.onPositionDiscontinuity(any(), any(), eq(Player.DISCONTINUITY_REASON_AUTO_TRANSITION));
assertThat(renderer.getFormatsRead()).hasSize(100);
assertThat(renderer.sampleBufferReadCount).isEqualTo(100);
@ -379,8 +377,8 @@ public final class ExoPlayerTest {
};
SimpleExoPlayer player =
new TestExoPlayerBuilder(context).setRenderers(videoRenderer, audioRenderer).build();
EventListener mockEventListener = mock(EventListener.class);
player.addListener(mockEventListener);
Player.Listener mockPlayerListener = mock(Player.Listener.class);
player.addListener(mockPlayerListener);
player.setMediaSource(
new FakeMediaSource(
@ -389,18 +387,18 @@ public final class ExoPlayerTest {
player.play();
runUntilPlaybackState(player, Player.STATE_ENDED);
InOrder inOrder = inOrder(mockEventListener);
InOrder inOrder = inOrder(mockPlayerListener);
inOrder
.verify(mockEventListener)
.verify(mockPlayerListener)
.onTimelineChanged(
argThat(noUid(new FakeMediaSource.InitialTimeline(timeline))),
eq(Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED));
inOrder
.verify(mockEventListener)
.verify(mockPlayerListener)
.onTimelineChanged(
argThat(noUid(timeline)), eq(Player.TIMELINE_CHANGE_REASON_SOURCE_UPDATE));
inOrder
.verify(mockEventListener, times(2))
.verify(mockPlayerListener, times(2))
.onPositionDiscontinuity(any(), any(), eq(Player.DISCONTINUITY_REASON_AUTO_TRANSITION));
assertThat(audioRenderer.positionResetCount).isEqualTo(1);
assertThat(videoRenderer.isEnded).isTrue();
@ -428,8 +426,8 @@ public final class ExoPlayerTest {
Timeline thirdTimeline = new FakeTimeline();
MediaSource thirdSource = new FakeMediaSource(thirdTimeline, ExoPlayerTestRunner.VIDEO_FORMAT);
SimpleExoPlayer player = new TestExoPlayerBuilder(context).setRenderers(renderer).build();
EventListener mockEventListener = mock(EventListener.class);
player.addListener(mockEventListener);
Player.Listener mockPlayerListener = mock(Player.Listener.class);
player.addListener(mockPlayerListener);
player.setMediaSource(firstSource);
player.prepare();
@ -444,38 +442,38 @@ public final class ExoPlayerTest {
// prepared, it immediately exposed a placeholder timeline, but the source info refresh from the
// second source was suppressed as we replace it with the third source before the update
// arrives.
InOrder inOrder = inOrder(mockEventListener);
InOrder inOrder = inOrder(mockPlayerListener);
inOrder
.verify(mockEventListener)
.verify(mockPlayerListener)
.onTimelineChanged(
argThat(noUid(placeholderTimeline)),
eq(Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED));
inOrder
.verify(mockEventListener)
.verify(mockPlayerListener)
.onTimelineChanged(
argThat(noUid(firstTimeline)), eq(Player.TIMELINE_CHANGE_REASON_SOURCE_UPDATE));
inOrder
.verify(mockEventListener)
.verify(mockPlayerListener)
.onTimelineChanged(
argThat(noUid(placeholderTimeline)),
eq(Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED));
inOrder
.verify(mockEventListener)
.verify(mockPlayerListener)
.onPositionDiscontinuity(any(), any(), eq(Player.DISCONTINUITY_REASON_REMOVE));
inOrder
.verify(mockEventListener)
.verify(mockPlayerListener)
.onTimelineChanged(
argThat(noUid(placeholderTimeline)),
eq(Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED));
inOrder
.verify(mockEventListener)
.verify(mockPlayerListener)
.onPositionDiscontinuity(any(), any(), eq(Player.DISCONTINUITY_REASON_REMOVE));
inOrder
.verify(mockEventListener)
.verify(mockPlayerListener)
.onTimelineChanged(
argThat(noUid(thirdTimeline)), eq(Player.TIMELINE_CHANGE_REASON_SOURCE_UPDATE));
inOrder
.verify(mockEventListener)
.verify(mockPlayerListener)
.onTracksChanged(
eq(new TrackGroupArray(new TrackGroup(ExoPlayerTestRunner.VIDEO_FORMAT))), any());
assertThat(renderer.isEnded).isTrue();
@ -1691,7 +1689,7 @@ public final class ExoPlayerTest {
@Test
public void seekAndReprepareAfterPlaybackError_keepsSeekPositionAndTimeline() throws Exception {
SimpleExoPlayer player = new TestExoPlayerBuilder(context).build();
Player.EventListener mockListener = mock(Player.EventListener.class);
Player.Listener mockListener = mock(Player.Listener.class);
player.addListener(mockListener);
FakeMediaSource fakeMediaSource = new FakeMediaSource();
player.setMediaSource(fakeMediaSource);
@ -2853,23 +2851,23 @@ public final class ExoPlayerTest {
// We add two listeners to the player. The first stops the player as soon as it's ready and both
// record the state change events they receive.
final AtomicReference<Player> playerReference = new AtomicReference<>();
final List<Integer> eventListener1States = new ArrayList<>();
final List<Integer> eventListener2States = new ArrayList<>();
final EventListener eventListener1 =
new EventListener() {
final List<Integer> playerListener1States = new ArrayList<>();
final List<Integer> playerListener2States = new ArrayList<>();
final Player.Listener playerListener1 =
new Player.Listener() {
@Override
public void onPlaybackStateChanged(@Player.State int playbackState) {
eventListener1States.add(playbackState);
playerListener1States.add(playbackState);
if (playbackState == Player.STATE_READY) {
playerReference.get().stop(/* reset= */ true);
}
}
};
final EventListener eventListener2 =
new EventListener() {
final Player.Listener playerListener2 =
new Player.Listener() {
@Override
public void onPlaybackStateChanged(@Player.State int playbackState) {
eventListener2States.add(playbackState);
playerListener2States.add(playbackState);
}
};
ActionSchedule actionSchedule =
@ -2879,8 +2877,8 @@ public final class ExoPlayerTest {
@Override
public void run(SimpleExoPlayer player) {
playerReference.set(player);
player.addListener(eventListener1);
player.addListener(eventListener2);
player.addListener(playerListener1);
player.addListener(playerListener2);
}
})
.build();
@ -2890,10 +2888,10 @@ public final class ExoPlayerTest {
.start()
.blockUntilEnded(TIMEOUT_MS);
assertThat(eventListener1States)
assertThat(playerListener1States)
.containsExactly(Player.STATE_BUFFERING, Player.STATE_READY, Player.STATE_IDLE)
.inOrder();
assertThat(eventListener2States)
assertThat(playerListener2States)
.containsExactly(Player.STATE_BUFFERING, Player.STATE_READY, Player.STATE_IDLE)
.inOrder();
}
@ -2903,15 +2901,15 @@ public final class ExoPlayerTest {
// The listener stops the player as soon as it's ready (which should report a timeline and state
// change) and sets playWhenReady to false when the timeline callback is received.
final AtomicReference<Player> playerReference = new AtomicReference<>();
final List<Boolean> eventListenerPlayWhenReady = new ArrayList<>();
final List<Integer> eventListenerStates = new ArrayList<>();
final List<Boolean> playerListenerPlayWhenReady = new ArrayList<>();
final List<Integer> playerListenerStates = new ArrayList<>();
List<Integer> sequence = new ArrayList<>();
final EventListener eventListener =
new EventListener() {
final Player.Listener playerListener =
new Player.Listener() {
@Override
public void onPlaybackStateChanged(@Player.State int playbackState) {
eventListenerStates.add(playbackState);
playerListenerStates.add(playbackState);
if (playbackState == Player.STATE_READY) {
playerReference.get().stop(/* reset= */ true);
sequence.add(0);
@ -2929,7 +2927,7 @@ public final class ExoPlayerTest {
@Override
public void onPlayWhenReadyChanged(
boolean playWhenReady, @Player.PlayWhenReadyChangeReason int reason) {
eventListenerPlayWhenReady.add(playWhenReady);
playerListenerPlayWhenReady.add(playWhenReady);
sequence.add(2);
}
};
@ -2940,7 +2938,7 @@ public final class ExoPlayerTest {
@Override
public void run(SimpleExoPlayer player) {
playerReference.set(player);
player.addListener(eventListener);
player.addListener(playerListener);
}
})
.build();
@ -2950,10 +2948,10 @@ public final class ExoPlayerTest {
.start()
.blockUntilEnded(TIMEOUT_MS);
assertThat(eventListenerStates)
assertThat(playerListenerStates)
.containsExactly(Player.STATE_BUFFERING, Player.STATE_READY, Player.STATE_IDLE)
.inOrder();
assertThat(eventListenerPlayWhenReady).containsExactly(false).inOrder();
assertThat(playerListenerPlayWhenReady).containsExactly(false).inOrder();
assertThat(sequence).containsExactly(0, 1, 2).inOrder();
}
@ -2963,8 +2961,8 @@ public final class ExoPlayerTest {
Timeline secondTimeline = new FakeTimeline(/* windowCount= */ 3);
final AtomicReference<ExoPlayer> playerReference = new AtomicReference<>();
FakeMediaSource secondMediaSource = new FakeMediaSource(secondTimeline);
final EventListener eventListener =
new EventListener() {
final Player.Listener playerListener =
new Player.Listener() {
@Override
public void onPlaybackStateChanged(int state) {
if (state == Player.STATE_IDLE) {
@ -2979,7 +2977,7 @@ public final class ExoPlayerTest {
@Override
public void run(SimpleExoPlayer player) {
playerReference.set(player);
player.addListener(eventListener);
player.addListener(playerListener);
}
})
// Ensure there are no further pending callbacks.
@ -3023,8 +3021,8 @@ public final class ExoPlayerTest {
AtomicLong positionAtDiscontinuityMs = new AtomicLong(C.TIME_UNSET);
AtomicLong clockAtStartMs = new AtomicLong(C.TIME_UNSET);
AtomicLong clockAtDiscontinuityMs = new AtomicLong(C.TIME_UNSET);
EventListener eventListener =
new EventListener() {
Player.Listener playerListener =
new Player.Listener() {
@Override
public void onPlaybackStateChanged(@Player.State int playbackState) {
if (playbackState == Player.STATE_READY && clockAtStartMs.get() == C.TIME_UNSET) {
@ -3047,7 +3045,7 @@ public final class ExoPlayerTest {
@Override
public void run(SimpleExoPlayer player) {
playerReference.set(player);
player.addListener(eventListener);
player.addListener(playerListener);
}
})
.pause()
@ -3099,8 +3097,8 @@ public final class ExoPlayerTest {
.setMediaSources(mediaSource)
.setSupportedFormats(ExoPlayerTestRunner.VIDEO_FORMAT, ExoPlayerTestRunner.AUDIO_FORMAT)
.setActionSchedule(actionSchedule)
.setEventListener(
new EventListener() {
.setPlayerListener(
new Player.Listener() {
@Override
public void onTracksChanged(
TrackGroupArray trackGroups, TrackSelectionArray trackSelections) {
@ -3253,8 +3251,8 @@ public final class ExoPlayerTest {
windowDurationUs));
AtomicReference<Player> playerReference = new AtomicReference<>();
AtomicLong bufferedPositionAtFirstDiscontinuityMs = new AtomicLong(C.TIME_UNSET);
EventListener eventListener =
new EventListener() {
Player.Listener playerListener =
new Player.Listener() {
@Override
public void onPositionDiscontinuity(@DiscontinuityReason int reason) {
if (reason == Player.DISCONTINUITY_REASON_AUTO_TRANSITION) {
@ -3272,7 +3270,7 @@ public final class ExoPlayerTest {
@Override
public void run(SimpleExoPlayer player) {
playerReference.set(player);
player.addListener(eventListener);
player.addListener(playerListener);
}
})
.pause()
@ -3307,8 +3305,8 @@ public final class ExoPlayerTest {
FakeMediaSource fakeMediaSource = new FakeMediaSource(/* timeline= */ null);
AtomicReference<Player> playerReference = new AtomicReference<>();
AtomicLong contentStartPositionMs = new AtomicLong(C.TIME_UNSET);
EventListener eventListener =
new EventListener() {
Player.Listener playerListener =
new Player.Listener() {
@Override
public void onPositionDiscontinuity(@DiscontinuityReason int reason) {
if (reason == Player.DISCONTINUITY_REASON_AUTO_TRANSITION) {
@ -3323,7 +3321,7 @@ public final class ExoPlayerTest {
@Override
public void run(SimpleExoPlayer player) {
playerReference.set(player);
player.addListener(eventListener);
player.addListener(playerListener);
}
})
.seek(/* positionMs= */ 5_000)
@ -3360,8 +3358,8 @@ public final class ExoPlayerTest {
FakeMediaSource fakeMediaSource = new FakeMediaSource(/* timeline= */ null);
AtomicReference<Player> playerReference = new AtomicReference<>();
AtomicLong contentStartPositionMs = new AtomicLong(C.TIME_UNSET);
EventListener eventListener =
new EventListener() {
Player.Listener playerListener =
new Player.Listener() {
@Override
public void onPositionDiscontinuity(@DiscontinuityReason int reason) {
if (reason == Player.DISCONTINUITY_REASON_AUTO_TRANSITION) {
@ -3376,7 +3374,7 @@ public final class ExoPlayerTest {
@Override
public void run(SimpleExoPlayer player) {
playerReference.set(player);
player.addListener(eventListener);
player.addListener(playerListener);
}
})
.waitForPlaybackState(Player.STATE_BUFFERING)
@ -3419,8 +3417,8 @@ public final class ExoPlayerTest {
.play()
.build();
List<Float> reportedPlaybackSpeeds = new ArrayList<>();
EventListener listener =
new EventListener() {
Player.Listener listener =
new Player.Listener() {
@Override
public void onPlaybackParametersChanged(PlaybackParameters playbackParameters) {
reportedPlaybackSpeeds.add(playbackParameters.speed);
@ -3428,7 +3426,7 @@ public final class ExoPlayerTest {
};
new ExoPlayerTestRunner.Builder(context)
.setActionSchedule(actionSchedule)
.setEventListener(listener)
.setPlayerListener(listener)
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@ -3466,8 +3464,8 @@ public final class ExoPlayerTest {
.play()
.build();
List<PlaybackParameters> reportedPlaybackParameters = new ArrayList<>();
EventListener listener =
new EventListener() {
Player.Listener listener =
new Player.Listener() {
@Override
public void onPlaybackParametersChanged(PlaybackParameters playbackParameters) {
reportedPlaybackParameters.add(playbackParameters);
@ -3477,7 +3475,7 @@ public final class ExoPlayerTest {
.setSupportedFormats(ExoPlayerTestRunner.AUDIO_FORMAT)
.setRenderers(renderer)
.setActionSchedule(actionSchedule)
.setEventListener(listener)
.setPlayerListener(listener)
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@ -3501,8 +3499,8 @@ public final class ExoPlayerTest {
.play()
.build();
AtomicBoolean seenPlaybackSuppression = new AtomicBoolean();
EventListener listener =
new EventListener() {
Player.Listener listener =
new Player.Listener() {
@Override
public void onPlaybackSuppressionReasonChanged(
@Player.PlaybackSuppressionReason int playbackSuppressionReason) {
@ -3511,7 +3509,7 @@ public final class ExoPlayerTest {
};
new ExoPlayerTestRunner.Builder(context)
.setActionSchedule(actionSchedule)
.setEventListener(listener)
.setPlayerListener(listener)
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@ -3533,8 +3531,8 @@ public final class ExoPlayerTest {
.executeRunnable(playerStateGrabber)
.build();
AtomicBoolean seenPlaybackSuppression = new AtomicBoolean();
EventListener listener =
new EventListener() {
Player.Listener listener =
new Player.Listener() {
@Override
public void onPlaybackSuppressionReasonChanged(
@Player.PlaybackSuppressionReason int playbackSuppressionReason) {
@ -3543,7 +3541,7 @@ public final class ExoPlayerTest {
};
new ExoPlayerTestRunner.Builder(context)
.setActionSchedule(actionSchedule)
.setEventListener(listener)
.setPlayerListener(listener)
.build()
.start()
.blockUntilActionScheduleFinished(TIMEOUT_MS);
@ -7443,15 +7441,15 @@ public final class ExoPlayerTest {
.waitForPlaybackState(Player.STATE_ENDED)
.build();
List<Boolean> onIsPlayingChanges = new ArrayList<>();
Player.EventListener eventListener =
new Player.EventListener() {
Player.Listener playerListener =
new Player.Listener() {
@Override
public void onIsPlayingChanged(boolean isPlaying) {
onIsPlayingChanges.add(isPlaying);
}
};
new ExoPlayerTestRunner.Builder(context)
.setEventListener(eventListener)
.setPlayerListener(playerListener)
.setActionSchedule(actionSchedule)
.build()
.start()
@ -7468,8 +7466,8 @@ public final class ExoPlayerTest {
String isPlayingChange1 = "isPlayingChange1";
String isPlayingChange2 = "isPlayingChange2";
ArrayList<String> events = new ArrayList<>();
Player.EventListener eventListener1 =
new Player.EventListener() {
Player.Listener playerListener1 =
new Player.Listener() {
@Override
public void onPlayWhenReadyChanged(boolean playWhenReady, int reason) {
events.add(playWhenReadyChange1);
@ -7480,8 +7478,8 @@ public final class ExoPlayerTest {
events.add(isPlayingChange1);
}
};
Player.EventListener eventListener2 =
new Player.EventListener() {
Player.Listener playerListener2 =
new Player.Listener() {
@Override
public void onPlayWhenReadyChanged(boolean playWhenReady, int reason) {
events.add(playWhenReadyChange2);
@ -7499,8 +7497,8 @@ public final class ExoPlayerTest {
new PlayerRunnable() {
@Override
public void run(SimpleExoPlayer player) {
player.addListener(eventListener1);
player.addListener(eventListener2);
player.addListener(playerListener1);
player.addListener(playerListener2);
}
})
.waitForPlaybackState(Player.STATE_READY)
@ -7677,8 +7675,8 @@ public final class ExoPlayerTest {
.build();
List<MediaItem> currentMediaItems = new ArrayList<>();
List<MediaItem> mediaItemsInTimeline = new ArrayList<>();
Player.EventListener eventListener =
new Player.EventListener() {
Player.Listener playerListener =
new Player.Listener() {
@Override
public void onTimelineChanged(Timeline timeline, int reason) {
if (reason != Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED) {
@ -7699,7 +7697,7 @@ public final class ExoPlayerTest {
}
};
new ExoPlayerTestRunner.Builder(context)
.setEventListener(eventListener)
.setPlayerListener(playerListener)
.setActionSchedule(actionSchedule)
.setMediaSources(fakeMediaSource1, fakeMediaSource2, fakeMediaSource3)
.build()
@ -8154,7 +8152,7 @@ public final class ExoPlayerTest {
Player.Commands commandsWithSeekToNextAndPrevious =
createWithDefaultCommands(
COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM);
Player.EventListener mockListener = mock(Player.EventListener.class);
Player.Listener mockListener = mock(Player.Listener.class);
ExoPlayer player = new TestExoPlayerBuilder(context).build();
player.addListener(mockListener);
@ -8189,7 +8187,7 @@ public final class ExoPlayerTest {
Player.Commands commandsWithSeekToNextAndPrevious =
createWithDefaultCommands(
COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM);
Player.EventListener mockListener = mock(Player.EventListener.class);
Player.Listener mockListener = mock(Player.Listener.class);
ExoPlayer player = new TestExoPlayerBuilder(context).build();
player.addListener(mockListener);
@ -8218,7 +8216,7 @@ public final class ExoPlayerTest {
@Test
public void seekTo_sameWindow_doesNotNotifyAvailableCommandsChanged() {
Player.EventListener mockListener = mock(Player.EventListener.class);
Player.Listener mockListener = mock(Player.Listener.class);
ExoPlayer player = new TestExoPlayerBuilder(context).build();
player.addListener(mockListener);
@ -8243,7 +8241,7 @@ public final class ExoPlayerTest {
COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM,
COMMAND_SEEK_TO_NEXT_MEDIA_ITEM,
COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM);
Player.EventListener mockListener = mock(Player.EventListener.class);
Player.Listener mockListener = mock(Player.Listener.class);
ExoPlayer player = new TestExoPlayerBuilder(context).build();
player.addListener(mockListener);
@ -8281,7 +8279,7 @@ public final class ExoPlayerTest {
public void addMediaSource_atTheEnd_notifiesAvailableCommandsChanged() {
Player.Commands commandsWithSeekToNext =
createWithDefaultCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM);
Player.EventListener mockListener = mock(Player.EventListener.class);
Player.Listener mockListener = mock(Player.Listener.class);
ExoPlayer player = new TestExoPlayerBuilder(context).build();
player.addListener(mockListener);
@ -8301,7 +8299,7 @@ public final class ExoPlayerTest {
public void addMediaSource_atTheStart_notifiesAvailableCommandsChanged() {
Player.Commands commandsWithSeekToPrevious =
createWithDefaultCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM);
Player.EventListener mockListener = mock(Player.EventListener.class);
Player.Listener mockListener = mock(Player.Listener.class);
ExoPlayer player = new TestExoPlayerBuilder(context).build();
player.addListener(mockListener);
@ -8322,7 +8320,7 @@ public final class ExoPlayerTest {
Player.Commands commandsWithSeekToNext =
createWithDefaultCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM);
Player.Commands commandsWithoutSeek = createWithDefaultCommands();
Player.EventListener mockListener = mock(Player.EventListener.class);
Player.Listener mockListener = mock(Player.Listener.class);
ExoPlayer player = new TestExoPlayerBuilder(context).build();
player.addListener(mockListener);
@ -8348,7 +8346,7 @@ public final class ExoPlayerTest {
Player.Commands commandsWithSeekToPrevious =
createWithDefaultCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM);
Player.Commands commandsWithoutSeek = createWithDefaultCommands();
Player.EventListener mockListener = mock(Player.EventListener.class);
Player.Listener mockListener = mock(Player.Listener.class);
ExoPlayer player = new TestExoPlayerBuilder(context).build();
player.addListener(mockListener);
@ -8375,7 +8373,7 @@ public final class ExoPlayerTest {
Player.Commands commandsWithSeekToNext =
createWithDefaultCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM);
Player.Commands commandsWithoutSeek = createWithDefaultCommands();
Player.EventListener mockListener = mock(Player.EventListener.class);
Player.Listener mockListener = mock(Player.Listener.class);
ExoPlayer player = new TestExoPlayerBuilder(context).build();
player.addListener(mockListener);
@ -8394,7 +8392,7 @@ public final class ExoPlayerTest {
Player.Commands commandsWithSeekToNextAndPrevious =
createWithDefaultCommands(
COMMAND_SEEK_TO_NEXT_MEDIA_ITEM, COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM);
Player.EventListener mockListener = mock(Player.EventListener.class);
Player.Listener mockListener = mock(Player.Listener.class);
ExoPlayer player = new TestExoPlayerBuilder(context).build();
player.addListener(mockListener);
@ -8409,7 +8407,7 @@ public final class ExoPlayerTest {
@Test
public void setRepeatMode_one_doesNotNotifyAvailableCommandsChanged() {
Player.EventListener mockListener = mock(Player.EventListener.class);
Player.Listener mockListener = mock(Player.Listener.class);
ExoPlayer player = new TestExoPlayerBuilder(context).build();
player.addListener(mockListener);
@ -8424,7 +8422,7 @@ public final class ExoPlayerTest {
createWithDefaultCommands(COMMAND_SEEK_TO_NEXT_MEDIA_ITEM);
Player.Commands commandsWithSeekToPrevious =
createWithDefaultCommands(COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM);
Player.EventListener mockListener = mock(Player.EventListener.class);
Player.Listener mockListener = mock(Player.Listener.class);
ExoPlayer player = new TestExoPlayerBuilder(context).build();
player.addListener(mockListener);
MediaSource mediaSource =
@ -8739,7 +8737,7 @@ public final class ExoPlayerTest {
/* description= */ "Audio",
/* value= */ "Audio track name")))
.build();
EventListener eventListener = mock(EventListener.class);
Player.Listener playerListener = mock(Player.Listener.class);
Timeline fakeTimeline =
new FakeTimeline(
new TimelineWindowDefinition(
@ -8747,7 +8745,7 @@ public final class ExoPlayerTest {
SimpleExoPlayer player = new TestExoPlayerBuilder(context).build();
player.setMediaSource(new FakeMediaSource(fakeTimeline, videoFormat, audioFormat));
player.addListener(eventListener);
player.addListener(playerListener);
player.prepare();
player.play();
runUntilPlaybackState(player, Player.STATE_ENDED);
@ -8755,7 +8753,7 @@ public final class ExoPlayerTest {
player.release();
assertThat(metadata).containsExactly(videoFormat.metadata, audioFormat.metadata).inOrder();
verify(eventListener)
verify(playerListener)
.onStaticMetadataChanged(ImmutableList.of(videoFormat.metadata, audioFormat.metadata));
}
@ -8764,7 +8762,7 @@ public final class ExoPlayerTest {
throws Exception {
Format videoFormat = new Format.Builder().setSampleMimeType(MimeTypes.VIDEO_H264).build();
Format audioFormat = new Format.Builder().setSampleMimeType(MimeTypes.AUDIO_AAC).build();
EventListener eventListener = mock(EventListener.class);
Player.Listener playerListener = mock(Player.Listener.class);
Timeline fakeTimeline =
new FakeTimeline(
new TimelineWindowDefinition(
@ -8772,7 +8770,7 @@ public final class ExoPlayerTest {
SimpleExoPlayer player = new TestExoPlayerBuilder(context).build();
player.setMediaSource(new FakeMediaSource(fakeTimeline, videoFormat, audioFormat));
player.addListener(eventListener);
player.addListener(playerListener);
player.prepare();
player.play();
runUntilPlaybackState(player, Player.STATE_ENDED);
@ -8780,7 +8778,7 @@ public final class ExoPlayerTest {
player.release();
assertThat(metadata).isEmpty();
verify(eventListener, never()).onStaticMetadataChanged(any());
verify(playerListener, never()).onStaticMetadataChanged(any());
}
@Test
@ -8806,7 +8804,7 @@ public final class ExoPlayerTest {
/* windowOffsetInFirstPeriodUs= */ C.msToUs(windowStartUnixTimeMs),
AdPlaybackState.NONE,
new MediaItem.Builder().setUri(Uri.EMPTY).setLiveTargetOffsetMs(9_000).build()));
Player.EventListener mockListener = mock(Player.EventListener.class);
Player.Listener mockListener = mock(Player.Listener.class);
player.addListener(mockListener);
player.pause();
player.setMediaSource(new FakeMediaSource(timeline));
@ -8975,7 +8973,7 @@ public final class ExoPlayerTest {
public void playerIdle_withSetPlaybackSpeed_usesPlaybackParameterSpeedWithPitchUnchanged() {
ExoPlayer player = new TestExoPlayerBuilder(context).build();
player.setPlaybackParameters(new PlaybackParameters(/* speed= */ 1, /* pitch= */ 2));
Player.EventListener mockListener = mock(Player.EventListener.class);
Player.Listener mockListener = mock(Player.Listener.class);
player.addListener(mockListener);
player.prepare();
@ -9009,7 +9007,7 @@ public final class ExoPlayerTest {
/* windowOffsetInFirstPeriodUs= */ C.msToUs(windowStartUnixTimeMs),
AdPlaybackState.NONE,
new MediaItem.Builder().setUri(Uri.EMPTY).setLiveTargetOffsetMs(9_000).build()));
Player.EventListener mockListener = mock(Player.EventListener.class);
Player.Listener mockListener = mock(Player.Listener.class);
player.addListener(mockListener);
player.pause();
player.setMediaSource(new FakeMediaSource(timeline));
@ -9269,7 +9267,7 @@ public final class ExoPlayerTest {
@Test
public void onEvents_correspondToListenerCalls() throws Exception {
ExoPlayer player = new TestExoPlayerBuilder(context).build();
EventListener listener = mock(EventListener.class);
Player.Listener listener = mock(Player.Listener.class);
player.addListener(listener);
Format formatWithStaticMetadata =
new Format.Builder()
@ -9297,7 +9295,7 @@ public final class ExoPlayerTest {
// Set values recursively.
player.addListener(
new EventListener() {
new Player.Listener() {
@Override
public void onRepeatModeChanged(int repeatMode) {
player.setShuffleModeEnabled(true);
@ -9359,7 +9357,7 @@ public final class ExoPlayerTest {
@Test
public void play_withPreMidAndPostRollAd_callsOnDiscontinuityCorrectly() throws Exception {
ExoPlayer player = new TestExoPlayerBuilder(context).build();
EventListener listener = mock(EventListener.class);
Player.Listener listener = mock(Player.Listener.class);
player.addListener(listener);
AdPlaybackState adPlaybackState =
FakeTimeline.createAdPlaybackState(
@ -9497,7 +9495,7 @@ public final class ExoPlayerTest {
@Test
public void seekTo_seekOverMidRoll_callsOnDiscontinuityCorrectly() throws Exception {
ExoPlayer player = new TestExoPlayerBuilder(context).build();
EventListener listener = mock(EventListener.class);
Player.Listener listener = mock(Player.Listener.class);
player.addListener(listener);
AdPlaybackState adPlaybackState =
FakeTimeline.createAdPlaybackState(
@ -9586,7 +9584,7 @@ public final class ExoPlayerTest {
@Test
public void play_multiItemPlaylistWidthAds_callsOnDiscontinuityCorrectly() throws Exception {
ExoPlayer player = new TestExoPlayerBuilder(context).build();
EventListener listener = mock(EventListener.class);
Player.Listener listener = mock(Player.Listener.class);
player.addListener(listener);
AdPlaybackState postRollAdPlaybackState =
FakeTimeline.createAdPlaybackState(
@ -9744,7 +9742,7 @@ public final class ExoPlayerTest {
/* isDynamic= */ false,
/* durationUs= */ 15 * C.MICROS_PER_SECOND)));
ExoPlayer player = new TestExoPlayerBuilder(context).build();
EventListener listener = mock(EventListener.class);
Player.Listener listener = mock(Player.Listener.class);
player.addListener(listener);
player.setMediaSource(
new FakeMediaSource(
@ -9790,7 +9788,7 @@ public final class ExoPlayerTest {
public void removeMediaItems_removesPlayingPeriod_callsOnPositionDiscontinuity()
throws Exception {
ExoPlayer player = new TestExoPlayerBuilder(context).build();
EventListener listener = mock(EventListener.class);
Player.Listener listener = mock(Player.Listener.class);
player.addListener(listener);
player.setMediaSources(
Lists.newArrayList(
@ -9870,7 +9868,7 @@ public final class ExoPlayerTest {
concatenatingMediaSourceRemoveMediaSource_removesPlayingPeriod_callsOnPositionDiscontinuity()
throws Exception {
ExoPlayer player = new TestExoPlayerBuilder(context).build();
EventListener listener = mock(EventListener.class);
Player.Listener listener = mock(Player.Listener.class);
player.addListener(listener);
ConcatenatingMediaSource concatenatingMediaSource =
new ConcatenatingMediaSource(
@ -9943,7 +9941,7 @@ public final class ExoPlayerTest {
concatenatingMediaSourceRemoveMediaSourceWithSeek_overridesRemoval_callsOnPositionDiscontinuity()
throws Exception {
ExoPlayer player = new TestExoPlayerBuilder(context).build();
EventListener listener = mock(EventListener.class);
Player.Listener listener = mock(Player.Listener.class);
player.addListener(listener);
ConcatenatingMediaSource concatenatingMediaSource =
new ConcatenatingMediaSource(
@ -10023,7 +10021,7 @@ public final class ExoPlayerTest {
@Test
public void seekTo_callsOnPositionDiscontinuity() throws Exception {
ExoPlayer player = new TestExoPlayerBuilder(context).build();
EventListener listener = mock(EventListener.class);
Player.Listener listener = mock(Player.Listener.class);
player.addListener(listener);
player.setMediaSources(Lists.newArrayList(new FakeMediaSource(), new FakeMediaSource()));
@ -10066,7 +10064,7 @@ public final class ExoPlayerTest {
@Test
public void seekTo_whenTimelineEmpty_callsOnPositionDiscontinuity() {
ExoPlayer player = new TestExoPlayerBuilder(context).build();
EventListener listener = mock(EventListener.class);
Player.Listener listener = mock(Player.Listener.class);
player.addListener(listener);
player.seekTo(/* positionMs= */ 7 * C.MILLIS_PER_SECOND);
@ -10117,7 +10115,7 @@ public final class ExoPlayerTest {
@Test
public void stop_doesNotCallOnPositionDiscontinuity() throws Exception {
ExoPlayer player = new TestExoPlayerBuilder(context).build();
EventListener listener = mock(EventListener.class);
Player.Listener listener = mock(Player.Listener.class);
player.addListener(listener);
player.setMediaSource(new FakeMediaSource());
@ -10135,7 +10133,7 @@ public final class ExoPlayerTest {
@Test
public void stop_withResetRemovesPlayingPeriod_callsOnPositionDiscontinuity() throws Exception {
ExoPlayer player = new TestExoPlayerBuilder(context).build();
EventListener listener = mock(EventListener.class);
Player.Listener listener = mock(Player.Listener.class);
player.addListener(listener);
player.setMediaSource(new FakeMediaSource());
@ -10178,7 +10176,7 @@ public final class ExoPlayerTest {
final FakeMediaSource mediaSource =
new FakeMediaSource(timeline1, ExoPlayerTestRunner.VIDEO_FORMAT);
ExoPlayer player = new TestExoPlayerBuilder(context).build();
EventListener listener = mock(EventListener.class);
Player.Listener listener = mock(Player.Listener.class);
player.addListener(listener);
player.setMediaSource(mediaSource);

View File

@ -1041,7 +1041,7 @@ public final class AnalyticsCollectorTest {
@Override
public void run(SimpleExoPlayer player) {
player.addListener(
new Player.EventListener() {
new Player.Listener() {
@Override
public void onPositionDiscontinuity(
Player.PositionInfo oldPosition,

View File

@ -58,8 +58,8 @@ public class TestPlayerRunHelper {
return;
}
AtomicBoolean receivedExpectedState = new AtomicBoolean(false);
Player.EventListener listener =
new Player.EventListener() {
Player.Listener listener =
new Player.Listener() {
@Override
public void onPlaybackStateChanged(int state) {
if (state == expectedState) {
@ -88,8 +88,8 @@ public class TestPlayerRunHelper {
return;
}
AtomicBoolean receivedExpectedPlayWhenReady = new AtomicBoolean(false);
Player.EventListener listener =
new Player.EventListener() {
Player.Listener listener =
new Player.Listener() {
@Override
public void onPlayWhenReadyChanged(boolean playWhenReady, int reason) {
if (playWhenReady == expectedPlayWhenReady) {
@ -118,8 +118,8 @@ public class TestPlayerRunHelper {
return;
}
AtomicBoolean receivedExpectedTimeline = new AtomicBoolean(false);
Player.EventListener listener =
new Player.EventListener() {
Player.Listener listener =
new Player.Listener() {
@Override
public void onTimelineChanged(Timeline timeline, int reason) {
if (expectedTimeline.equals(timeline)) {
@ -143,8 +143,8 @@ public class TestPlayerRunHelper {
public static Timeline runUntilTimelineChanged(Player player) throws TimeoutException {
verifyMainTestThread(player);
AtomicReference<Timeline> receivedTimeline = new AtomicReference<>();
Player.EventListener listener =
new Player.EventListener() {
Player.Listener listener =
new Player.Listener() {
@Override
public void onTimelineChanged(Timeline timeline, int reason) {
receivedTimeline.set(timeline);
@ -158,7 +158,7 @@ public class TestPlayerRunHelper {
/**
* Runs tasks of the main {@link Looper} until a {@link
* Player.EventListener#onPositionDiscontinuity(Player.PositionInfo, Player.PositionInfo, int)}
* Player.Listener#onPositionDiscontinuity(Player.PositionInfo, Player.PositionInfo, int)}
* callback with the specified {@link Player.DiscontinuityReason} occurred.
*
* @param player The {@link Player}.
@ -170,8 +170,8 @@ public class TestPlayerRunHelper {
Player player, @Player.DiscontinuityReason int expectedReason) throws TimeoutException {
verifyMainTestThread(player);
AtomicBoolean receivedCallback = new AtomicBoolean(false);
Player.EventListener listener =
new Player.EventListener() {
Player.Listener listener =
new Player.Listener() {
@Override
public void onPositionDiscontinuity(
Player.PositionInfo oldPosition, Player.PositionInfo newPosition, int reason) {
@ -196,8 +196,8 @@ public class TestPlayerRunHelper {
public static ExoPlaybackException runUntilError(Player player) throws TimeoutException {
verifyMainTestThread(player);
AtomicReference<ExoPlaybackException> receivedError = new AtomicReference<>();
Player.EventListener listener =
new Player.EventListener() {
Player.Listener listener =
new Player.Listener() {
@Override
public void onPlayerError(ExoPlaybackException error) {
receivedError.set(error);

View File

@ -729,7 +729,7 @@ public abstract class Action {
}
}
/** Waits for {@link Player.EventListener#onTimelineChanged(Timeline, int)}. */
/** Waits for {@link Player.Listener#onTimelineChanged(Timeline, int)}. */
public static final class WaitForTimelineChanged extends Action {
@Nullable private final Timeline expectedTimeline;
@ -776,8 +776,8 @@ public abstract class Action {
if (nextAction == null) {
return;
}
Player.EventListener listener =
new Player.EventListener() {
Player.Listener listener =
new Player.Listener() {
@Override
public void onTimelineChanged(
Timeline timeline, @Player.TimelineChangeReason int reason) {
@ -804,7 +804,7 @@ public abstract class Action {
}
/**
* Waits for {@link Player.EventListener#onPositionDiscontinuity(Player.PositionInfo,
* Waits for {@link Player.Listener#onPositionDiscontinuity(Player.PositionInfo,
* Player.PositionInfo, int)}.
*/
public static final class WaitForPositionDiscontinuity extends Action {
@ -825,7 +825,7 @@ public abstract class Action {
return;
}
player.addListener(
new Player.EventListener() {
new Player.Listener() {
@Override
public void onPositionDiscontinuity(
Player.PositionInfo oldPosition,
@ -846,7 +846,7 @@ public abstract class Action {
/**
* Waits for a specified playWhenReady value, returning either immediately or after a call to
* {@link Player.EventListener#onPlayWhenReadyChanged(boolean, int)}.
* {@link Player.Listener#onPlayWhenReadyChanged(boolean, int)}.
*/
public static final class WaitForPlayWhenReady extends Action {
@ -875,7 +875,7 @@ public abstract class Action {
nextAction.schedule(player, trackSelector, surface, handler);
} else {
player.addListener(
new Player.EventListener() {
new Player.Listener() {
@Override
public void onPlayWhenReadyChanged(
boolean playWhenReady, @Player.PlayWhenReadyChangeReason int reason) {
@ -897,7 +897,7 @@ public abstract class Action {
/**
* Waits for a specified playback state, returning either immediately or after a call to {@link
* Player.EventListener#onPlaybackStateChanged(int)}.
* Player.Listener#onPlaybackStateChanged(int)}.
*/
public static final class WaitForPlaybackState extends Action {
@ -926,7 +926,7 @@ public abstract class Action {
nextAction.schedule(player, trackSelector, surface, handler);
} else {
player.addListener(
new Player.EventListener() {
new Player.Listener() {
@Override
public void onPlaybackStateChanged(@Player.State int playbackState) {
if (targetPlaybackState == playbackState) {
@ -987,7 +987,7 @@ public abstract class Action {
/**
* Waits for a specified loading state, returning either immediately or after a call to {@link
* Player.EventListener#onIsLoadingChanged(boolean)}.
* Player.Listener#onIsLoadingChanged(boolean)}.
*/
public static final class WaitForIsLoading extends Action {
@ -1016,7 +1016,7 @@ public abstract class Action {
nextAction.schedule(player, trackSelector, surface, handler);
} else {
player.addListener(
new Player.EventListener() {
new Player.Listener() {
@Override
public void onIsLoadingChanged(boolean isLoading) {
if (targetIsLoading == isLoading) {

View File

@ -50,7 +50,7 @@ import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeoutException;
/** Helper class to run an ExoPlayer test. */
public final class ExoPlayerTestRunner implements Player.EventListener, ActionSchedule.Callback {
public final class ExoPlayerTestRunner implements Player.Listener, ActionSchedule.Callback {
/** A generic video {@link Format} which can be used to set up a {@link FakeMediaSource}. */
public static final Format VIDEO_FORMAT =
@ -82,7 +82,7 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
private Object manifest;
private ActionSchedule actionSchedule;
private Surface surface;
private Player.EventListener eventListener;
private Player.Listener playerListener;
private AnalyticsListener analyticsListener;
private Integer expectedPlayerEndedCount;
private boolean pauseAtEndOfMediaItems;
@ -290,14 +290,14 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
}
/**
* Sets an {@link Player.EventListener} to be registered to listen to player events.
* Sets an {@link Player.Listener} to be registered to listen to player events.
*
* @param eventListener A {@link Player.EventListener} to be registered by the test runner to
* listen to player events.
* @param playerListener A {@link Player.Listener} to be registered by the test runner to listen
* to player events.
* @return This builder.
*/
public Builder setEventListener(Player.EventListener eventListener) {
this.eventListener = eventListener;
public Builder setPlayerListener(Player.Listener playerListener) {
this.playerListener = playerListener;
return this;
}
@ -349,7 +349,7 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
initialPositionMs,
surface,
actionSchedule,
eventListener,
playerListener,
analyticsListener,
expectedPlayerEndedCount,
pauseAtEndOfMediaItems);
@ -363,7 +363,7 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
private final long initialPositionMs;
@Nullable private final Surface surface;
@Nullable private final ActionSchedule actionSchedule;
@Nullable private final Player.EventListener eventListener;
@Nullable private final Player.Listener playerListener;
@Nullable private final AnalyticsListener analyticsListener;
private final Clock clock;
@ -393,7 +393,7 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
long initialPositionMs,
@Nullable Surface surface,
@Nullable ActionSchedule actionSchedule,
@Nullable Player.EventListener eventListener,
@Nullable Player.Listener playerListener,
@Nullable AnalyticsListener analyticsListener,
int expectedPlayerEndedCount,
boolean pauseAtEndOfMediaItems) {
@ -404,7 +404,7 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
this.initialPositionMs = initialPositionMs;
this.surface = surface;
this.actionSchedule = actionSchedule;
this.eventListener = eventListener;
this.playerListener = playerListener;
this.analyticsListener = analyticsListener;
this.clock = playerBuilder.getClock();
timelines = new ArrayList<>();
@ -454,8 +454,8 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
player.setPauseAtEndOfMediaItems(true);
}
player.addListener(ExoPlayerTestRunner.this);
if (eventListener != null) {
player.addListener(eventListener);
if (playerListener != null) {
player.addListener(playerListener);
}
if (analyticsListener != null) {
player.addAnalyticsListener(analyticsListener);
@ -530,8 +530,8 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
// Assertions called on the test thread after test finished.
/**
* Asserts that the timelines reported by {@link Player.EventListener#onTimelineChanged(Timeline,
* int)} are the same to the provided timelines. This assert differs from testing equality by not
* Asserts that the timelines reported by {@link Player.Listener#onTimelineChanged(Timeline, int)}
* are the same to the provided timelines. This assert differs from testing equality by not
* comparing period ids which may be different due to id mapping of child source period ids.
*
* @param timelines A list of expected {@link Timeline}s.
@ -546,8 +546,8 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
/**
* Asserts that the timeline change reasons reported by {@link
* Player.EventListener#onTimelineChanged(Timeline, int)} are equal to the provided timeline
* change reasons.
* Player.Listener#onTimelineChanged(Timeline, int)} are equal to the provided timeline change
* reasons.
*/
public void assertTimelineChangeReasonsEqual(Integer... reasons) {
assertThat(timelineChangeReasons).containsExactlyElementsIn(Arrays.asList(reasons)).inOrder();
@ -555,7 +555,7 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
/**
* Asserts that the media items reported by {@link
* Player.EventListener#onMediaItemTransition(MediaItem, int)} are the same as the provided media
* Player.Listener#onMediaItemTransition(MediaItem, int)} are the same as the provided media
* items.
*
* @param mediaItems A list of expected {@link MediaItem media items}.
@ -566,8 +566,7 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
/**
* Asserts that the media item transition reasons reported by {@link
* Player.EventListener#onMediaItemTransition(MediaItem, int)} are the same as the provided
* reasons.
* Player.Listener#onMediaItemTransition(MediaItem, int)} are the same as the provided reasons.
*
* @param reasons A list of expected transition reasons.
*/
@ -577,7 +576,7 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
/**
* Asserts that the playback states reported by {@link
* Player.EventListener#onPlaybackStateChanged(int)} are equal to the provided playback states.
* Player.Listener#onPlaybackStateChanged(int)} are equal to the provided playback states.
*/
public void assertPlaybackStatesEqual(Integer... states) {
assertThat(playbackStates).containsExactlyElementsIn(states).inOrder();
@ -585,8 +584,8 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
/**
* Asserts that the last track group array reported by {@link
* Player.EventListener#onTracksChanged(TrackGroupArray, TrackSelectionArray)} is equal to the
* provided track group array.
* Player.Listener#onTracksChanged(TrackGroupArray, TrackSelectionArray)} is equal to the provided
* track group array.
*
* @param trackGroupArray The expected {@link TrackGroupArray}.
*/
@ -595,7 +594,7 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
}
/**
* Asserts that {@link Player.EventListener#onPositionDiscontinuity(Player.PositionInfo,
* Asserts that {@link Player.Listener#onPositionDiscontinuity(Player.PositionInfo,
* Player.PositionInfo, int)} was not called.
*/
public void assertNoPositionDiscontinuities() {
@ -604,8 +603,8 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
/**
* Asserts that the discontinuity reasons reported by {@link
* Player.EventListener#onPositionDiscontinuity(Player.PositionInfo, Player.PositionInfo, int)}
* are equal to the provided values.
* Player.Listener#onPositionDiscontinuity(Player.PositionInfo, Player.PositionInfo, int)} are
* equal to the provided values.
*
* @param discontinuityReasons The expected discontinuity reasons.
*/
@ -657,7 +656,7 @@ public final class ExoPlayerTestRunner implements Player.EventListener, ActionSc
}
}
// Player.EventListener
// Player.Listener
@Override
public void onTimelineChanged(Timeline timeline, @Player.TimelineChangeReason int reason) {