Move PlaybackStatsListener to non-deprecated state events
PiperOrigin-RevId: 303764399
This commit is contained in:
parent
378593f551
commit
685bb77297
@ -173,8 +173,8 @@ public final class PlaybackStatsListener
|
||||
if (isSeeking) {
|
||||
tracker.onSeekStarted(eventTime, /* belongsToPlayback= */ true);
|
||||
}
|
||||
tracker.onPlayerStateChanged(
|
||||
eventTime, playWhenReady, playbackState, /* belongsToPlayback= */ true);
|
||||
tracker.onPlaybackStateChanged(eventTime, playbackState, /* belongsToPlayback= */ true);
|
||||
tracker.onPlayWhenReadyChanged(eventTime, playWhenReady, /* belongsToPlayback= */ true);
|
||||
tracker.onIsSuppressedChanged(eventTime, isSuppressed, /* belongsToPlayback= */ true);
|
||||
tracker.onPlaybackSpeedChanged(eventTime, playbackSpeed);
|
||||
playbackStatsTrackers.put(session, tracker);
|
||||
@ -230,8 +230,7 @@ public final class PlaybackStatsListener
|
||||
EventTime startEventTime = Assertions.checkNotNull(sessionStartEventTimes.remove(session));
|
||||
if (automaticTransition) {
|
||||
// Simulate ENDED state to record natural ending of playback.
|
||||
tracker.onPlayerStateChanged(
|
||||
eventTime, /* playWhenReady= */ true, Player.STATE_ENDED, /* belongsToPlayback= */ false);
|
||||
tracker.onPlaybackStateChanged(eventTime, Player.STATE_ENDED, /* belongsToPlayback= */ false);
|
||||
}
|
||||
tracker.onFinished(eventTime);
|
||||
PlaybackStats playbackStats = tracker.build(/* isFinal= */ true);
|
||||
@ -244,16 +243,27 @@ public final class PlaybackStatsListener
|
||||
// AnalyticsListener implementation.
|
||||
|
||||
@Override
|
||||
public void onPlayerStateChanged(
|
||||
EventTime eventTime, boolean playWhenReady, @Player.State int playbackState) {
|
||||
this.playWhenReady = playWhenReady;
|
||||
this.playbackState = playbackState;
|
||||
public void onPlaybackStateChanged(EventTime eventTime, @Player.State int state) {
|
||||
playbackState = state;
|
||||
sessionManager.updateSessions(eventTime);
|
||||
for (String session : playbackStatsTrackers.keySet()) {
|
||||
boolean belongsToPlayback = sessionManager.belongsToSession(eventTime, session);
|
||||
playbackStatsTrackers
|
||||
.get(session)
|
||||
.onPlayerStateChanged(eventTime, playWhenReady, playbackState, belongsToPlayback);
|
||||
.onPlaybackStateChanged(eventTime, playbackState, belongsToPlayback);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayWhenReadyChanged(
|
||||
EventTime eventTime, boolean playWhenReady, @Player.PlayWhenReadyChangeReason int reason) {
|
||||
this.playWhenReady = playWhenReady;
|
||||
sessionManager.updateSessions(eventTime);
|
||||
for (String session : playbackStatsTrackers.keySet()) {
|
||||
boolean belongsToPlayback = sessionManager.belongsToSession(eventTime, session);
|
||||
playbackStatsTrackers
|
||||
.get(session)
|
||||
.onPlayWhenReadyChanged(eventTime, playWhenReady, belongsToPlayback);
|
||||
}
|
||||
}
|
||||
|
||||
@ -521,27 +531,36 @@ public final class PlaybackStatsListener
|
||||
}
|
||||
|
||||
/**
|
||||
* Notifies the tracker of a player state change event, including all player state changes while
|
||||
* the playback is not in the foreground.
|
||||
* Notifies the tracker of a playback state change event, including all playback state changes
|
||||
* while the playback is not in the foreground.
|
||||
*
|
||||
* @param eventTime The {@link EventTime}.
|
||||
* @param state The current {@link Player.State}.
|
||||
* @param belongsToPlayback Whether the {@code eventTime} belongs to the current playback.
|
||||
*/
|
||||
public void onPlaybackStateChanged(
|
||||
EventTime eventTime, @Player.State int state, boolean belongsToPlayback) {
|
||||
playerPlaybackState = state;
|
||||
if (state != Player.STATE_IDLE) {
|
||||
hasFatalError = false;
|
||||
}
|
||||
if (state == Player.STATE_IDLE || state == Player.STATE_ENDED) {
|
||||
isInterruptedByAd = false;
|
||||
}
|
||||
maybeUpdatePlaybackState(eventTime, belongsToPlayback);
|
||||
}
|
||||
|
||||
/**
|
||||
* Notifies the tracker of a play when ready change event, including all play when ready changes
|
||||
* while the playback is not in the foreground.
|
||||
*
|
||||
* @param eventTime The {@link EventTime}.
|
||||
* @param playWhenReady Whether the playback will proceed when ready.
|
||||
* @param playbackState The current {@link Player.State}.
|
||||
* @param belongsToPlayback Whether the {@code eventTime} belongs to the current playback.
|
||||
*/
|
||||
public void onPlayerStateChanged(
|
||||
EventTime eventTime,
|
||||
boolean playWhenReady,
|
||||
@Player.State int playbackState,
|
||||
boolean belongsToPlayback) {
|
||||
public void onPlayWhenReadyChanged(
|
||||
EventTime eventTime, boolean playWhenReady, boolean belongsToPlayback) {
|
||||
this.playWhenReady = playWhenReady;
|
||||
playerPlaybackState = playbackState;
|
||||
if (playbackState != Player.STATE_IDLE) {
|
||||
hasFatalError = false;
|
||||
}
|
||||
if (playbackState == Player.STATE_IDLE || playbackState == Player.STATE_ENDED) {
|
||||
isInterruptedByAd = false;
|
||||
}
|
||||
maybeUpdatePlaybackState(eventTime, belongsToPlayback);
|
||||
}
|
||||
|
||||
|
@ -43,12 +43,9 @@ public final class PlaybackStatsListenerTest {
|
||||
PlaybackStatsListener playbackStatsListener =
|
||||
new PlaybackStatsListener(/* keepHistory= */ true, /* callback= */ null);
|
||||
|
||||
playbackStatsListener.onPlayerStateChanged(
|
||||
TEST_EVENT_TIME, /* playWhenReady= */ true, Player.STATE_BUFFERING);
|
||||
playbackStatsListener.onPlayerStateChanged(
|
||||
TEST_EVENT_TIME, /* playWhenReady= */ true, Player.STATE_READY);
|
||||
playbackStatsListener.onPlayerStateChanged(
|
||||
TEST_EVENT_TIME, /* playWhenReady= */ true, Player.STATE_ENDED);
|
||||
playbackStatsListener.onPlaybackStateChanged(TEST_EVENT_TIME, Player.STATE_BUFFERING);
|
||||
playbackStatsListener.onPlaybackStateChanged(TEST_EVENT_TIME, Player.STATE_READY);
|
||||
playbackStatsListener.onPlaybackStateChanged(TEST_EVENT_TIME, Player.STATE_ENDED);
|
||||
|
||||
@Nullable PlaybackStats playbackStats = playbackStatsListener.getPlaybackStats();
|
||||
assertThat(playbackStats).isNotNull();
|
||||
@ -60,12 +57,9 @@ public final class PlaybackStatsListenerTest {
|
||||
PlaybackStatsListener playbackStatsListener =
|
||||
new PlaybackStatsListener(/* keepHistory= */ false, /* callback= */ null);
|
||||
|
||||
playbackStatsListener.onPlayerStateChanged(
|
||||
TEST_EVENT_TIME, /* playWhenReady= */ true, Player.STATE_BUFFERING);
|
||||
playbackStatsListener.onPlayerStateChanged(
|
||||
TEST_EVENT_TIME, /* playWhenReady= */ true, Player.STATE_READY);
|
||||
playbackStatsListener.onPlayerStateChanged(
|
||||
TEST_EVENT_TIME, /* playWhenReady= */ true, Player.STATE_ENDED);
|
||||
playbackStatsListener.onPlaybackStateChanged(TEST_EVENT_TIME, Player.STATE_BUFFERING);
|
||||
playbackStatsListener.onPlaybackStateChanged(TEST_EVENT_TIME, Player.STATE_READY);
|
||||
playbackStatsListener.onPlaybackStateChanged(TEST_EVENT_TIME, Player.STATE_ENDED);
|
||||
|
||||
@Nullable PlaybackStats playbackStats = playbackStatsListener.getPlaybackStats();
|
||||
assertThat(playbackStats).isNotNull();
|
||||
|
Loading…
x
Reference in New Issue
Block a user