Split AnalyticsCollector in interface and default Impl
This will allow R8 to strip out the implementation if it is not needed for an app. #minor-release PiperOrigin-RevId: 427983730
This commit is contained in:
parent
b5ed01d479
commit
8f7c91a1ad
@ -47,6 +47,7 @@ import androidx.media3.common.util.Util;
|
||||
import androidx.media3.datasource.DataSource;
|
||||
import androidx.media3.exoplayer.analytics.AnalyticsCollector;
|
||||
import androidx.media3.exoplayer.analytics.AnalyticsListener;
|
||||
import androidx.media3.exoplayer.analytics.DefaultAnalyticsCollector;
|
||||
import androidx.media3.exoplayer.audio.AudioSink;
|
||||
import androidx.media3.exoplayer.audio.DefaultAudioSink;
|
||||
import androidx.media3.exoplayer.audio.MediaCodecAudioRenderer;
|
||||
@ -580,7 +581,7 @@ public interface ExoPlayer extends Player {
|
||||
this.analyticsCollectorSupplier =
|
||||
analyticsCollectorSupplier != null
|
||||
? analyticsCollectorSupplier
|
||||
: () -> new AnalyticsCollector(checkNotNull(clock));
|
||||
: () -> new DefaultAnalyticsCollector(checkNotNull(clock));
|
||||
looper = Util.getCurrentOrMainLooper();
|
||||
audioAttributes = AudioAttributes.DEFAULT;
|
||||
wakeMode = C.WAKE_MODE_NONE;
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -31,6 +31,7 @@ import androidx.media3.common.Timeline;
|
||||
import androidx.media3.common.TracksInfo;
|
||||
import androidx.media3.common.util.Clock;
|
||||
import androidx.media3.exoplayer.analytics.AnalyticsCollector;
|
||||
import androidx.media3.exoplayer.analytics.DefaultAnalyticsCollector;
|
||||
import androidx.media3.exoplayer.analytics.PlayerId;
|
||||
import androidx.media3.exoplayer.source.MediaSource.MediaPeriodId;
|
||||
import androidx.media3.exoplayer.source.MediaSource.MediaSourceCaller;
|
||||
@ -83,7 +84,7 @@ public final class MediaPeriodQueueTest {
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
AnalyticsCollector analyticsCollector = new AnalyticsCollector(Clock.DEFAULT);
|
||||
AnalyticsCollector analyticsCollector = new DefaultAnalyticsCollector(Clock.DEFAULT);
|
||||
analyticsCollector.setPlayer(
|
||||
new ExoPlayer.Builder(ApplicationProvider.getApplicationContext()).build(),
|
||||
Looper.getMainLooper());
|
||||
|
@ -32,6 +32,7 @@ import androidx.media3.common.Timeline;
|
||||
import androidx.media3.common.util.Clock;
|
||||
import androidx.media3.common.util.Util;
|
||||
import androidx.media3.exoplayer.analytics.AnalyticsCollector;
|
||||
import androidx.media3.exoplayer.analytics.DefaultAnalyticsCollector;
|
||||
import androidx.media3.exoplayer.analytics.PlayerId;
|
||||
import androidx.media3.exoplayer.source.MediaSource;
|
||||
import androidx.media3.exoplayer.source.ShuffleOrder;
|
||||
@ -58,7 +59,7 @@ public class MediaSourceListTest {
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
AnalyticsCollector analyticsCollector = new AnalyticsCollector(Clock.DEFAULT);
|
||||
AnalyticsCollector analyticsCollector = new DefaultAnalyticsCollector(Clock.DEFAULT);
|
||||
analyticsCollector.setPlayer(
|
||||
new ExoPlayer.Builder(ApplicationProvider.getApplicationContext()).build(),
|
||||
Looper.getMainLooper());
|
||||
|
@ -55,12 +55,12 @@ import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||
import static org.mockito.ArgumentMatchers.anyFloat;
|
||||
import static org.mockito.ArgumentMatchers.anyInt;
|
||||
import static org.mockito.ArgumentMatchers.anyLong;
|
||||
import static org.mockito.ArgumentMatchers.argThat;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.argThat;
|
||||
import static org.mockito.ArgumentMatchers.same;
|
||||
import static org.mockito.Mockito.atLeastOnce;
|
||||
import static org.mockito.Mockito.inOrder;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.same;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
@ -134,11 +134,11 @@ import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.InOrder;
|
||||
import org.robolectric.shadows.ShadowLooper;
|
||||
|
||||
/** Integration test for {@link AnalyticsCollector}. */
|
||||
/** Integration test for {@link DefaultAnalyticsCollector}. */
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public final class AnalyticsCollectorTest {
|
||||
public final class DefaultAnalyticsCollectorTest {
|
||||
|
||||
private static final String TAG = "AnalyticsCollectorTest";
|
||||
private static final String TAG = "DefaultAnalyticsCollectorTest";
|
||||
|
||||
// Deprecated event constants.
|
||||
private static final long EVENT_PLAYER_STATE_CHANGED = 1L << 63;
|
||||
@ -193,14 +193,14 @@ public final class AnalyticsCollectorTest {
|
||||
private EventWindowAndPeriodId window1Period0Seq1;
|
||||
|
||||
@Test
|
||||
public void analyticsCollector_overridesAllPlayerListenerMethods() throws Exception {
|
||||
public void defaultAnalyticsCollector_overridesAllPlayerListenerMethods() throws Exception {
|
||||
// Verify that AnalyticsCollector forwards all Player.Listener methods to AnalyticsListener.
|
||||
for (Method method : Player.Listener.class.getDeclaredMethods()) {
|
||||
assertThat(
|
||||
AnalyticsCollector.class
|
||||
DefaultAnalyticsCollector.class
|
||||
.getMethod(method.getName(), method.getParameterTypes())
|
||||
.getDeclaringClass())
|
||||
.isEqualTo(AnalyticsCollector.class);
|
||||
.isEqualTo(DefaultAnalyticsCollector.class);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1964,7 +1964,7 @@ public final class AnalyticsCollectorTest {
|
||||
|
||||
@Test
|
||||
public void recursiveListenerInvocation_arrivesInCorrectOrder() {
|
||||
AnalyticsCollector analyticsCollector = new AnalyticsCollector(Clock.DEFAULT);
|
||||
AnalyticsCollector analyticsCollector = new DefaultAnalyticsCollector(Clock.DEFAULT);
|
||||
analyticsCollector.setPlayer(
|
||||
new ExoPlayer.Builder(ApplicationProvider.getApplicationContext()).build(),
|
||||
Looper.myLooper());
|
@ -29,7 +29,7 @@ import androidx.media3.exoplayer.LoadControl;
|
||||
import androidx.media3.exoplayer.Renderer;
|
||||
import androidx.media3.exoplayer.RenderersFactory;
|
||||
import androidx.media3.exoplayer.SimpleExoPlayer;
|
||||
import androidx.media3.exoplayer.analytics.AnalyticsCollector;
|
||||
import androidx.media3.exoplayer.analytics.DefaultAnalyticsCollector;
|
||||
import androidx.media3.exoplayer.source.MediaSource;
|
||||
import androidx.media3.exoplayer.trackselection.DefaultTrackSelector;
|
||||
import androidx.media3.exoplayer.upstream.BandwidthMeter;
|
||||
@ -302,7 +302,7 @@ public class TestExoPlayerBuilder {
|
||||
.setTrackSelector(trackSelector)
|
||||
.setLoadControl(loadControl)
|
||||
.setBandwidthMeter(bandwidthMeter)
|
||||
.setAnalyticsCollector(new AnalyticsCollector(clock))
|
||||
.setAnalyticsCollector(new DefaultAnalyticsCollector(clock))
|
||||
.setClock(clock)
|
||||
.setUseLazyPreparation(useLazyPreparation)
|
||||
.setLooper(looper)
|
||||
|
Loading…
x
Reference in New Issue
Block a user