Rewrite AnalyticsCollector to use new track APIs

PiperOrigin-RevId: 428455848
This commit is contained in:
olly 2022-02-14 10:39:13 +00:00 committed by Ian Baker
parent 748e2a5ff8
commit b6317837e2
3 changed files with 4 additions and 25 deletions

View File

@ -54,10 +54,8 @@ import com.google.android.exoplayer2.metadata.MetadataOutput;
import com.google.android.exoplayer2.source.LoadEventInfo; import com.google.android.exoplayer2.source.LoadEventInfo;
import com.google.android.exoplayer2.source.MediaLoadData; import com.google.android.exoplayer2.source.MediaLoadData;
import com.google.android.exoplayer2.source.MediaSource.MediaPeriodId; import com.google.android.exoplayer2.source.MediaSource.MediaPeriodId;
import com.google.android.exoplayer2.source.TrackGroupArray;
import com.google.android.exoplayer2.text.Cue; import com.google.android.exoplayer2.text.Cue;
import com.google.android.exoplayer2.trackselection.TrackSelection; import com.google.android.exoplayer2.trackselection.TrackSelection;
import com.google.android.exoplayer2.trackselection.TrackSelectionArray;
import com.google.android.exoplayer2.trackselection.TrackSelectionParameters; import com.google.android.exoplayer2.trackselection.TrackSelectionParameters;
import com.google.android.exoplayer2.util.FlagSet; import com.google.android.exoplayer2.util.FlagSet;
import com.google.android.exoplayer2.video.VideoDecoderOutputBufferRenderer; import com.google.android.exoplayer2.video.VideoDecoderOutputBufferRenderer;
@ -238,10 +236,7 @@ public interface AnalyticsListener {
* {@link Player#getCurrentMediaItem()} changed or the player started repeating the current item. * {@link Player#getCurrentMediaItem()} changed or the player started repeating the current item.
*/ */
int EVENT_MEDIA_ITEM_TRANSITION = Player.EVENT_MEDIA_ITEM_TRANSITION; int EVENT_MEDIA_ITEM_TRANSITION = Player.EVENT_MEDIA_ITEM_TRANSITION;
/** /** {@link Player#getCurrentTracksInfo()} changed. */
* {@link Player#getCurrentTracksInfo()}, {@link Player#getCurrentTrackGroups()} or {@link
* Player#getCurrentTrackSelections()} changed.
*/
int EVENT_TRACKS_CHANGED = Player.EVENT_TRACKS_CHANGED; int EVENT_TRACKS_CHANGED = Player.EVENT_TRACKS_CHANGED;
/** {@link Player#isLoading()} ()} changed. */ /** {@link Player#isLoading()} ()} changed. */
int EVENT_IS_LOADING_CHANGED = Player.EVENT_IS_LOADING_CHANGED; int EVENT_IS_LOADING_CHANGED = Player.EVENT_IS_LOADING_CHANGED;
@ -706,18 +701,6 @@ public interface AnalyticsListener {
*/ */
default void onPlayerErrorChanged(EventTime eventTime, @Nullable PlaybackException error) {} default void onPlayerErrorChanged(EventTime eventTime, @Nullable PlaybackException error) {}
/**
* Called when the available or selected tracks for the renderers changed.
*
* @param eventTime The event time.
* @param trackGroups The available tracks. May be empty.
* @param trackSelections The track selections for each renderer. May contain null elements.
* @deprecated Use {@link #onTracksInfoChanged}.
*/
@Deprecated
default void onTracksChanged(
EventTime eventTime, TrackGroupArray trackGroups, TrackSelectionArray trackSelections) {}
/** /**
* Called when the available or selected tracks change. * Called when the available or selected tracks change.
* *

View File

@ -482,15 +482,11 @@ public class DefaultAnalyticsCollector implements AnalyticsCollector {
listener -> listener.onMediaItemTransition(eventTime, mediaItem, reason)); listener -> listener.onMediaItemTransition(eventTime, mediaItem, reason));
} }
@SuppressWarnings("deprecation") // Implementing deprecated method.
@Override @Override
@SuppressWarnings("deprecation") // Implementing and calling deprecate listener method
public final void onTracksChanged( public final void onTracksChanged(
TrackGroupArray trackGroups, TrackSelectionArray trackSelections) { TrackGroupArray trackGroups, TrackSelectionArray trackSelections) {
EventTime eventTime = generateCurrentPlayerMediaPeriodEventTime(); // Do nothing. Handled by non-deprecated onTracksInfoChanged.
sendEvent(
eventTime,
AnalyticsListener.EVENT_TRACKS_CHANGED,
listener -> listener.onTracksChanged(eventTime, trackGroups, trackSelections));
} }
@Override @Override

View File

@ -1721,7 +1721,7 @@ public final class DefaultAnalyticsCollectorTest {
ArgumentCaptor<AnalyticsListener.EventTime> individualTracksChangedEventTimes = ArgumentCaptor<AnalyticsListener.EventTime> individualTracksChangedEventTimes =
ArgumentCaptor.forClass(AnalyticsListener.EventTime.class); ArgumentCaptor.forClass(AnalyticsListener.EventTime.class);
verify(listener, atLeastOnce()) verify(listener, atLeastOnce())
.onTracksChanged(individualTracksChangedEventTimes.capture(), any(), any()); .onTracksInfoChanged(individualTracksChangedEventTimes.capture(), any());
ArgumentCaptor<AnalyticsListener.EventTime> individualPlayWhenReadyChangedEventTimes = ArgumentCaptor<AnalyticsListener.EventTime> individualPlayWhenReadyChangedEventTimes =
ArgumentCaptor.forClass(AnalyticsListener.EventTime.class); ArgumentCaptor.forClass(AnalyticsListener.EventTime.class);
verify(listener, atLeastOnce()) verify(listener, atLeastOnce())