Commit f3a9c6f5 by olly Committed by Ian Baker

Rewrite AnalyticsCollector to use new track APIs

PiperOrigin-RevId: 428455848
parent 6adf2f8c
...@@ -45,9 +45,7 @@ import androidx.media3.common.Player.DiscontinuityReason; ...@@ -45,9 +45,7 @@ import androidx.media3.common.Player.DiscontinuityReason;
import androidx.media3.common.Player.PlaybackSuppressionReason; import androidx.media3.common.Player.PlaybackSuppressionReason;
import androidx.media3.common.Player.TimelineChangeReason; import androidx.media3.common.Player.TimelineChangeReason;
import androidx.media3.common.Timeline; import androidx.media3.common.Timeline;
import androidx.media3.common.TrackGroupArray;
import androidx.media3.common.TrackSelection; import androidx.media3.common.TrackSelection;
import androidx.media3.common.TrackSelectionArray;
import androidx.media3.common.TrackSelectionParameters; import androidx.media3.common.TrackSelectionParameters;
import androidx.media3.common.TracksInfo; import androidx.media3.common.TracksInfo;
import androidx.media3.common.VideoSize; import androidx.media3.common.VideoSize;
...@@ -240,10 +238,7 @@ public interface AnalyticsListener { ...@@ -240,10 +238,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;
...@@ -709,18 +704,6 @@ public interface AnalyticsListener { ...@@ -709,18 +704,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.
* *
* @param eventTime The event time. * @param eventTime The event time.
......
...@@ -484,15 +484,11 @@ public class DefaultAnalyticsCollector implements AnalyticsCollector { ...@@ -484,15 +484,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
......
...@@ -1721,7 +1721,7 @@ public final class DefaultAnalyticsCollectorTest { ...@@ -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())
......
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