Remove unneccessary nullability.
AnalyticsCollector can't be null when passed into ExoPlayerImplInternal, so there is no need to pass it around as nullable. PiperOrigin-RevId: 424594031
This commit is contained in:
parent
145e923dce
commit
777246d9dc
@ -230,7 +230,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
|||||||
BandwidthMeter bandwidthMeter,
|
BandwidthMeter bandwidthMeter,
|
||||||
@Player.RepeatMode int repeatMode,
|
@Player.RepeatMode int repeatMode,
|
||||||
boolean shuffleModeEnabled,
|
boolean shuffleModeEnabled,
|
||||||
@Nullable AnalyticsCollector analyticsCollector,
|
AnalyticsCollector analyticsCollector,
|
||||||
SeekParameters seekParameters,
|
SeekParameters seekParameters,
|
||||||
LivePlaybackSpeedControl livePlaybackSpeedControl,
|
LivePlaybackSpeedControl livePlaybackSpeedControl,
|
||||||
long releaseTimeoutMs,
|
long releaseTimeoutMs,
|
||||||
|
@ -66,7 +66,7 @@ import com.google.common.collect.ImmutableList;
|
|||||||
|
|
||||||
private final Timeline.Period period;
|
private final Timeline.Period period;
|
||||||
private final Timeline.Window window;
|
private final Timeline.Window window;
|
||||||
@Nullable private final AnalyticsCollector analyticsCollector;
|
private final AnalyticsCollector analyticsCollector;
|
||||||
private final Handler analyticsCollectorHandler;
|
private final Handler analyticsCollectorHandler;
|
||||||
|
|
||||||
private long nextWindowSequenceNumber;
|
private long nextWindowSequenceNumber;
|
||||||
@ -82,13 +82,12 @@ import com.google.common.collect.ImmutableList;
|
|||||||
/**
|
/**
|
||||||
* Creates a new media period queue.
|
* Creates a new media period queue.
|
||||||
*
|
*
|
||||||
* @param analyticsCollector An optional {@link AnalyticsCollector} to be informed of queue
|
* @param analyticsCollector An {@link AnalyticsCollector} to be informed of queue changes.
|
||||||
* changes.
|
|
||||||
* @param analyticsCollectorHandler The {@link Handler} to call {@link AnalyticsCollector} methods
|
* @param analyticsCollectorHandler The {@link Handler} to call {@link AnalyticsCollector} methods
|
||||||
* on.
|
* on.
|
||||||
*/
|
*/
|
||||||
public MediaPeriodQueue(
|
public MediaPeriodQueue(
|
||||||
@Nullable AnalyticsCollector analyticsCollector, Handler analyticsCollectorHandler) {
|
AnalyticsCollector analyticsCollector, Handler analyticsCollectorHandler) {
|
||||||
this.analyticsCollector = analyticsCollector;
|
this.analyticsCollector = analyticsCollector;
|
||||||
this.analyticsCollectorHandler = analyticsCollectorHandler;
|
this.analyticsCollectorHandler = analyticsCollectorHandler;
|
||||||
period = new Timeline.Period();
|
period = new Timeline.Period();
|
||||||
@ -451,17 +450,15 @@ import com.google.common.collect.ImmutableList;
|
|||||||
// Internal methods.
|
// Internal methods.
|
||||||
|
|
||||||
private void notifyQueueUpdate() {
|
private void notifyQueueUpdate() {
|
||||||
if (analyticsCollector != null) {
|
ImmutableList.Builder<MediaPeriodId> builder = ImmutableList.builder();
|
||||||
ImmutableList.Builder<MediaPeriodId> builder = ImmutableList.builder();
|
@Nullable MediaPeriodHolder period = playing;
|
||||||
@Nullable MediaPeriodHolder period = playing;
|
while (period != null) {
|
||||||
while (period != null) {
|
builder.add(period.info.id);
|
||||||
builder.add(period.info.id);
|
period = period.getNext();
|
||||||
period = period.getNext();
|
|
||||||
}
|
|
||||||
@Nullable MediaPeriodId readingPeriodId = reading == null ? null : reading.info.id;
|
|
||||||
analyticsCollectorHandler.post(
|
|
||||||
() -> analyticsCollector.updateMediaPeriodQueueInfo(builder.build(), readingPeriodId));
|
|
||||||
}
|
}
|
||||||
|
@Nullable MediaPeriodId readingPeriodId = reading == null ? null : reading.info.id;
|
||||||
|
analyticsCollectorHandler.post(
|
||||||
|
() -> analyticsCollector.updateMediaPeriodQueueInfo(builder.build(), readingPeriodId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -91,15 +91,15 @@ import java.util.Set;
|
|||||||
*
|
*
|
||||||
* @param listener The {@link MediaSourceListInfoRefreshListener} to be informed of timeline
|
* @param listener The {@link MediaSourceListInfoRefreshListener} to be informed of timeline
|
||||||
* changes.
|
* changes.
|
||||||
* @param analyticsCollector An optional {@link AnalyticsCollector} to be registered for media
|
* @param analyticsCollector An {@link AnalyticsCollector} to be registered for media source
|
||||||
* source events.
|
* events.
|
||||||
* @param analyticsCollectorHandler The {@link Handler} to call {@link AnalyticsCollector} methods
|
* @param analyticsCollectorHandler The {@link Handler} to call {@link AnalyticsCollector} methods
|
||||||
* on.
|
* on.
|
||||||
* @param playerId The {@link PlayerId} of the player using this list.
|
* @param playerId The {@link PlayerId} of the player using this list.
|
||||||
*/
|
*/
|
||||||
public MediaSourceList(
|
public MediaSourceList(
|
||||||
MediaSourceListInfoRefreshListener listener,
|
MediaSourceListInfoRefreshListener listener,
|
||||||
@Nullable AnalyticsCollector analyticsCollector,
|
AnalyticsCollector analyticsCollector,
|
||||||
Handler analyticsCollectorHandler,
|
Handler analyticsCollectorHandler,
|
||||||
PlayerId playerId) {
|
PlayerId playerId) {
|
||||||
this.playerId = playerId;
|
this.playerId = playerId;
|
||||||
@ -112,10 +112,8 @@ import java.util.Set;
|
|||||||
drmEventDispatcher = new DrmSessionEventListener.EventDispatcher();
|
drmEventDispatcher = new DrmSessionEventListener.EventDispatcher();
|
||||||
childSources = new HashMap<>();
|
childSources = new HashMap<>();
|
||||||
enabledMediaSourceHolders = new HashSet<>();
|
enabledMediaSourceHolders = new HashSet<>();
|
||||||
if (analyticsCollector != null) {
|
mediaSourceEventDispatcher.addEventListener(analyticsCollectorHandler, analyticsCollector);
|
||||||
mediaSourceEventDispatcher.addEventListener(analyticsCollectorHandler, analyticsCollector);
|
drmEventDispatcher.addEventListener(analyticsCollectorHandler, analyticsCollector);
|
||||||
drmEventDispatcher.addEventListener(analyticsCollectorHandler, analyticsCollector);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -22,7 +22,9 @@ import static org.robolectric.Shadows.shadowOf;
|
|||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
|
import com.google.android.exoplayer2.analytics.AnalyticsCollector;
|
||||||
import com.google.android.exoplayer2.analytics.PlayerId;
|
import com.google.android.exoplayer2.analytics.PlayerId;
|
||||||
import com.google.android.exoplayer2.source.MediaSource.MediaPeriodId;
|
import com.google.android.exoplayer2.source.MediaSource.MediaPeriodId;
|
||||||
import com.google.android.exoplayer2.source.MediaSource.MediaSourceCaller;
|
import com.google.android.exoplayer2.source.MediaSource.MediaSourceCaller;
|
||||||
@ -37,6 +39,7 @@ import com.google.android.exoplayer2.trackselection.ExoTrackSelection;
|
|||||||
import com.google.android.exoplayer2.trackselection.TrackSelector;
|
import com.google.android.exoplayer2.trackselection.TrackSelector;
|
||||||
import com.google.android.exoplayer2.trackselection.TrackSelectorResult;
|
import com.google.android.exoplayer2.trackselection.TrackSelectorResult;
|
||||||
import com.google.android.exoplayer2.upstream.Allocator;
|
import com.google.android.exoplayer2.upstream.Allocator;
|
||||||
|
import com.google.android.exoplayer2.util.Clock;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@ -74,12 +77,16 @@ public final class MediaPeriodQueueTest {
|
|||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
|
AnalyticsCollector analyticsCollector = new AnalyticsCollector(Clock.DEFAULT);
|
||||||
|
analyticsCollector.setPlayer(
|
||||||
|
new ExoPlayer.Builder(ApplicationProvider.getApplicationContext()).build(),
|
||||||
|
Looper.getMainLooper());
|
||||||
mediaPeriodQueue =
|
mediaPeriodQueue =
|
||||||
new MediaPeriodQueue(/* analyticsCollector= */ null, new Handler(Looper.getMainLooper()));
|
new MediaPeriodQueue(analyticsCollector, new Handler(Looper.getMainLooper()));
|
||||||
mediaSourceList =
|
mediaSourceList =
|
||||||
new MediaSourceList(
|
new MediaSourceList(
|
||||||
mock(MediaSourceList.MediaSourceListInfoRefreshListener.class),
|
mock(MediaSourceList.MediaSourceListInfoRefreshListener.class),
|
||||||
/* analyticsCollector= */ null,
|
analyticsCollector,
|
||||||
new Handler(Looper.getMainLooper()),
|
new Handler(Looper.getMainLooper()),
|
||||||
PlayerId.UNSET);
|
PlayerId.UNSET);
|
||||||
rendererCapabilities = new RendererCapabilities[0];
|
rendererCapabilities = new RendererCapabilities[0];
|
||||||
|
@ -25,12 +25,16 @@ import static org.mockito.Mockito.times;
|
|||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
import android.os.Looper;
|
||||||
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
|
import com.google.android.exoplayer2.analytics.AnalyticsCollector;
|
||||||
import com.google.android.exoplayer2.analytics.PlayerId;
|
import com.google.android.exoplayer2.analytics.PlayerId;
|
||||||
import com.google.android.exoplayer2.source.MediaSource;
|
import com.google.android.exoplayer2.source.MediaSource;
|
||||||
import com.google.android.exoplayer2.source.ShuffleOrder;
|
import com.google.android.exoplayer2.source.ShuffleOrder;
|
||||||
import com.google.android.exoplayer2.testutil.FakeMediaSource;
|
import com.google.android.exoplayer2.testutil.FakeMediaSource;
|
||||||
import com.google.android.exoplayer2.testutil.FakeShuffleOrder;
|
import com.google.android.exoplayer2.testutil.FakeShuffleOrder;
|
||||||
|
import com.google.android.exoplayer2.util.Clock;
|
||||||
import com.google.android.exoplayer2.util.Util;
|
import com.google.android.exoplayer2.util.Util;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@ -51,10 +55,14 @@ public class MediaSourceListTest {
|
|||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
|
AnalyticsCollector analyticsCollector = new AnalyticsCollector(Clock.DEFAULT);
|
||||||
|
analyticsCollector.setPlayer(
|
||||||
|
new ExoPlayer.Builder(ApplicationProvider.getApplicationContext()).build(),
|
||||||
|
Looper.getMainLooper());
|
||||||
mediaSourceList =
|
mediaSourceList =
|
||||||
new MediaSourceList(
|
new MediaSourceList(
|
||||||
mock(MediaSourceList.MediaSourceListInfoRefreshListener.class),
|
mock(MediaSourceList.MediaSourceListInfoRefreshListener.class),
|
||||||
/* analyticsCollector= */ null,
|
analyticsCollector,
|
||||||
Util.createHandlerForCurrentOrMainLooper(),
|
Util.createHandlerForCurrentOrMainLooper(),
|
||||||
PlayerId.UNSET);
|
PlayerId.UNSET);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user