Skip to content

Commit ed210bc

Browse files
ojw28icbaker
authored andcommitted
Source package: Add some missing nullness annotations
Plus a bit of misc warning cleanup whilst I was there PiperOrigin-RevId: 295415657
1 parent 0257e89 commit ed210bc

13 files changed

+35
-37
lines changed

library/core/src/main/java/com/google/android/exoplayer2/source/BaseMediaSource.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ protected final MediaSourceEventListener.EventDispatcher createEventDispatcher(
106106
*/
107107
protected final MediaSourceEventListener.EventDispatcher createEventDispatcher(
108108
MediaPeriodId mediaPeriodId, long mediaTimeOffsetMs) {
109-
Assertions.checkArgument(mediaPeriodId != null);
109+
Assertions.checkNotNull(mediaPeriodId);
110110
return eventDispatcher.withParameters(/* windowIndex= */ 0, mediaPeriodId, mediaTimeOffsetMs);
111111
}
112112

@@ -145,7 +145,7 @@ public final void prepareSource(
145145
MediaSourceCaller caller, @Nullable TransferListener mediaTransferListener) {
146146
Looper looper = Looper.myLooper();
147147
Assertions.checkArgument(this.looper == null || this.looper == looper);
148-
Timeline timeline = this.timeline;
148+
@Nullable Timeline timeline = this.timeline;
149149
mediaSourceCallers.add(caller);
150150
if (this.looper == null) {
151151
this.looper = looper;

library/core/src/main/java/com/google/android/exoplayer2/source/ClippingMediaPeriod.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ public long getBufferedPositionUs() {
174174
@Override
175175
public long seekToUs(long positionUs) {
176176
pendingInitialDiscontinuityPositionUs = C.TIME_UNSET;
177-
for (ClippingSampleStream sampleStream : sampleStreams) {
177+
for (@Nullable ClippingSampleStream sampleStream : sampleStreams) {
178178
if (sampleStream != null) {
179179
sampleStream.clearSentEos();
180180
}

library/core/src/main/java/com/google/android/exoplayer2/source/CompositeMediaSource.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ public void onDownstreamFormatChanged(
317317
/** Updates the event dispatcher and returns whether the event should be dispatched. */
318318
private boolean maybeUpdateEventDispatcher(
319319
int childWindowIndex, @Nullable MediaPeriodId childMediaPeriodId) {
320-
MediaPeriodId mediaPeriodId = null;
320+
@Nullable MediaPeriodId mediaPeriodId = null;
321321
if (childMediaPeriodId != null) {
322322
mediaPeriodId = getMediaPeriodIdForChildMediaPeriodId(id, childMediaPeriodId);
323323
if (mediaPeriodId == null) {

library/core/src/main/java/com/google/android/exoplayer2/source/ConcatenatingMediaSource.java

+11-11
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import com.google.android.exoplayer2.upstream.TransferListener;
2929
import com.google.android.exoplayer2.util.Assertions;
3030
import com.google.android.exoplayer2.util.Util;
31-
import java.io.IOException;
3231
import java.util.ArrayList;
3332
import java.util.Arrays;
3433
import java.util.Collection;
@@ -468,7 +467,7 @@ protected void enableInternal() {
468467
public MediaPeriod createPeriod(MediaPeriodId id, Allocator allocator, long startPositionUs) {
469468
Object mediaSourceHolderUid = getMediaSourceHolderUid(id.periodUid);
470469
MediaPeriodId childMediaPeriodId = id.copyWithPeriodUid(getChildPeriodUid(id.periodUid));
471-
MediaSourceHolder holder = mediaSourceByUid.get(mediaSourceHolderUid);
470+
@Nullable MediaSourceHolder holder = mediaSourceByUid.get(mediaSourceHolderUid);
472471
if (holder == null) {
473472
// Stale event. The media source has already been removed.
474473
holder = new MediaSourceHolder(new DummyMediaSource(), useLazyPreparation);
@@ -555,7 +554,7 @@ private void addPublicMediaSources(
555554
@Nullable Handler handler,
556555
@Nullable Runnable onCompletionAction) {
557556
Assertions.checkArgument((handler == null) == (onCompletionAction == null));
558-
Handler playbackThreadHandler = this.playbackThreadHandler;
557+
@Nullable Handler playbackThreadHandler = this.playbackThreadHandler;
559558
for (MediaSource mediaSource : mediaSources) {
560559
Assertions.checkNotNull(mediaSource);
561560
}
@@ -565,6 +564,7 @@ private void addPublicMediaSources(
565564
}
566565
mediaSourcesPublic.addAll(index, mediaSourceHolders);
567566
if (playbackThreadHandler != null && !mediaSources.isEmpty()) {
567+
@Nullable
568568
HandlerAndRunnable callbackAction = createOnCompletionAction(handler, onCompletionAction);
569569
playbackThreadHandler
570570
.obtainMessage(MSG_ADD, new MessageData<>(index, mediaSourceHolders, callbackAction))
@@ -581,9 +581,10 @@ private void removePublicMediaSources(
581581
@Nullable Handler handler,
582582
@Nullable Runnable onCompletionAction) {
583583
Assertions.checkArgument((handler == null) == (onCompletionAction == null));
584-
Handler playbackThreadHandler = this.playbackThreadHandler;
584+
@Nullable Handler playbackThreadHandler = this.playbackThreadHandler;
585585
Util.removeRange(mediaSourcesPublic, fromIndex, toIndex);
586586
if (playbackThreadHandler != null) {
587+
@Nullable
587588
HandlerAndRunnable callbackAction = createOnCompletionAction(handler, onCompletionAction);
588589
playbackThreadHandler
589590
.obtainMessage(MSG_REMOVE, new MessageData<>(fromIndex, toIndex, callbackAction))
@@ -600,9 +601,10 @@ private void movePublicMediaSource(
600601
@Nullable Handler handler,
601602
@Nullable Runnable onCompletionAction) {
602603
Assertions.checkArgument((handler == null) == (onCompletionAction == null));
603-
Handler playbackThreadHandler = this.playbackThreadHandler;
604+
@Nullable Handler playbackThreadHandler = this.playbackThreadHandler;
604605
mediaSourcesPublic.add(newIndex, mediaSourcesPublic.remove(currentIndex));
605606
if (playbackThreadHandler != null) {
607+
@Nullable
606608
HandlerAndRunnable callbackAction = createOnCompletionAction(handler, onCompletionAction);
607609
playbackThreadHandler
608610
.obtainMessage(MSG_MOVE, new MessageData<>(currentIndex, newIndex, callbackAction))
@@ -616,7 +618,7 @@ private void movePublicMediaSource(
616618
private void setPublicShuffleOrder(
617619
ShuffleOrder shuffleOrder, @Nullable Handler handler, @Nullable Runnable onCompletionAction) {
618620
Assertions.checkArgument((handler == null) == (onCompletionAction == null));
619-
Handler playbackThreadHandler = this.playbackThreadHandler;
621+
@Nullable Handler playbackThreadHandler = this.playbackThreadHandler;
620622
if (playbackThreadHandler != null) {
621623
int size = getSize();
622624
if (shuffleOrder.getLength() != size) {
@@ -625,6 +627,7 @@ private void setPublicShuffleOrder(
625627
.cloneAndClear()
626628
.cloneAndInsert(/* insertionIndex= */ 0, /* insertionCount= */ size);
627629
}
630+
@Nullable
628631
HandlerAndRunnable callbackAction = createOnCompletionAction(handler, onCompletionAction);
629632
playbackThreadHandler
630633
.obtainMessage(
@@ -772,9 +775,6 @@ private void addMediaSourceInternal(int newIndex, MediaSourceHolder newMediaSour
772775
}
773776

774777
private void updateMediaSourceInternal(MediaSourceHolder mediaSourceHolder, Timeline timeline) {
775-
if (mediaSourceHolder == null) {
776-
throw new IllegalArgumentException();
777-
}
778778
if (mediaSourceHolder.childIndex + 1 < mediaSourceHolders.size()) {
779779
MediaSourceHolder nextHolder = mediaSourceHolders.get(mediaSourceHolder.childIndex + 1);
780780
int windowOffsetUpdate =
@@ -947,7 +947,7 @@ protected int getChildIndexByWindowIndex(int windowIndex) {
947947

948948
@Override
949949
protected int getChildIndexByChildUid(Object childUid) {
950-
Integer index = childIndexByUid.get(childUid);
950+
@Nullable Integer index = childIndexByUid.get(childUid);
951951
return index == null ? C.INDEX_UNSET : index;
952952
}
953953

@@ -1002,7 +1002,7 @@ protected void releaseSourceInternal() {
10021002
}
10031003

10041004
@Override
1005-
public void maybeThrowSourceInfoRefreshError() throws IOException {
1005+
public void maybeThrowSourceInfoRefreshError() {
10061006
// Do nothing.
10071007
}
10081008

library/core/src/main/java/com/google/android/exoplayer2/source/EmptySampleStream.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import com.google.android.exoplayer2.C;
1919
import com.google.android.exoplayer2.FormatHolder;
2020
import com.google.android.exoplayer2.decoder.DecoderInputBuffer;
21-
import java.io.IOException;
2221

2322
/**
2423
* An empty {@link SampleStream}.
@@ -31,7 +30,7 @@ public boolean isReady() {
3130
}
3231

3332
@Override
34-
public void maybeThrowError() throws IOException {
33+
public void maybeThrowError() {
3534
// Do nothing.
3635
}
3736

@@ -46,5 +45,4 @@ public int readData(FormatHolder formatHolder, DecoderInputBuffer buffer,
4645
public int skipData(long positionUs) {
4746
return 0;
4847
}
49-
5048
}

library/core/src/main/java/com/google/android/exoplayer2/source/IcyDataSource.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public void addTransferListener(TransferListener transferListener) {
7171
}
7272

7373
@Override
74-
public long open(DataSpec dataSpec) throws IOException {
74+
public long open(DataSpec dataSpec) {
7575
throw new UnsupportedOperationException();
7676
}
7777

@@ -103,7 +103,7 @@ public Map<String, List<String>> getResponseHeaders() {
103103
}
104104

105105
@Override
106-
public void close() throws IOException {
106+
public void close() {
107107
throw new UnsupportedOperationException();
108108
}
109109

library/core/src/main/java/com/google/android/exoplayer2/source/LoopingMediaSource.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ public MediaPeriod createPeriod(MediaPeriodId id, Allocator allocator, long star
107107
@Override
108108
public void releasePeriod(MediaPeriod mediaPeriod) {
109109
maskingMediaSource.releasePeriod(mediaPeriod);
110+
@Nullable
110111
MediaPeriodId childMediaPeriodId = mediaPeriodToChildMediaPeriodId.remove(mediaPeriod);
111112
if (childMediaPeriodId != null) {
112113
childMediaPeriodIdToMediaPeriodId.remove(childMediaPeriodId);
@@ -123,7 +124,8 @@ protected void onChildSourceInfoRefreshed(Void id, MediaSource mediaSource, Time
123124
}
124125

125126
@Override
126-
protected @Nullable MediaPeriodId getMediaPeriodIdForChildMediaPeriodId(
127+
@Nullable
128+
protected MediaPeriodId getMediaPeriodIdForChildMediaPeriodId(
127129
Void id, MediaPeriodId mediaPeriodId) {
128130
return loopCount != Integer.MAX_VALUE
129131
? childMediaPeriodIdToMediaPeriodId.get(mediaPeriodId)

library/core/src/main/java/com/google/android/exoplayer2/source/MaskingMediaSource.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import com.google.android.exoplayer2.upstream.TransferListener;
2727
import com.google.android.exoplayer2.util.Assertions;
2828
import com.google.android.exoplayer2.util.Util;
29-
import java.io.IOException;
3029

3130
/**
3231
* A {@link MediaSource} that masks the {@link Timeline} with a placeholder until the actual media
@@ -59,7 +58,7 @@ public MaskingMediaSource(MediaSource mediaSource, boolean useLazyPreparation) {
5958
this.useLazyPreparation = useLazyPreparation && mediaSource.isSingleWindow();
6059
window = new Timeline.Window();
6160
period = new Timeline.Period();
62-
Timeline initialTimeline = mediaSource.getInitialTimeline();
61+
@Nullable Timeline initialTimeline = mediaSource.getInitialTimeline();
6362
if (initialTimeline != null) {
6463
timeline =
6564
MaskingTimeline.createWithRealTimeline(
@@ -92,7 +91,7 @@ public Object getTag() {
9291

9392
@Override
9493
@SuppressWarnings("MissingSuperCall")
95-
public void maybeThrowSourceInfoRefreshError() throws IOException {
94+
public void maybeThrowSourceInfoRefreshError() {
9695
// Do nothing. Source info refresh errors will be thrown when calling
9796
// MaskingMediaPeriod.maybeThrowPrepareError.
9897
}

library/core/src/main/java/com/google/android/exoplayer2/source/MediaSourceEventListener.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,8 @@ public EventDispatcher withParameters(
221221
* @param eventListener The listener to be added.
222222
*/
223223
public void addEventListener(Handler handler, MediaSourceEventListener eventListener) {
224-
Assertions.checkArgument(handler != null && eventListener != null);
224+
Assertions.checkNotNull(handler);
225+
Assertions.checkNotNull(eventListener);
225226
listenerAndHandlers.add(new ListenerAndHandler(handler, eventListener));
226227
}
227228

library/core/src/main/java/com/google/android/exoplayer2/source/ProgressiveMediaSource.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import com.google.android.exoplayer2.upstream.DefaultLoadErrorHandlingPolicy;
2929
import com.google.android.exoplayer2.upstream.LoadErrorHandlingPolicy;
3030
import com.google.android.exoplayer2.upstream.TransferListener;
31-
import java.io.IOException;
3231

3332
/**
3433
* Provides one period that loads data from a {@link Uri} and extracted using an {@link Extractor}.
@@ -245,7 +244,7 @@ protected void prepareSourceInternal(@Nullable TransferListener mediaTransferLis
245244
}
246245

247246
@Override
248-
public void maybeThrowSourceInfoRefreshError() throws IOException {
247+
public void maybeThrowSourceInfoRefreshError() {
249248
// Do nothing.
250249
}
251250

library/core/src/main/java/com/google/android/exoplayer2/source/SampleDataQueue.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.google.android.exoplayer2.upstream.Allocation;
2525
import com.google.android.exoplayer2.upstream.Allocator;
2626
import com.google.android.exoplayer2.util.ParsableByteArray;
27+
import com.google.android.exoplayer2.util.Util;
2728
import java.io.EOFException;
2829
import java.io.IOException;
2930
import java.nio.ByteBuffer;
@@ -246,11 +247,11 @@ private void readEncryptionData(DecoderInputBuffer buffer, SampleExtrasHolder ex
246247
}
247248

248249
// Write the clear and encrypted subsample sizes.
249-
int[] clearDataSizes = buffer.cryptoInfo.numBytesOfClearData;
250+
@Nullable int[] clearDataSizes = buffer.cryptoInfo.numBytesOfClearData;
250251
if (clearDataSizes == null || clearDataSizes.length < subsampleCount) {
251252
clearDataSizes = new int[subsampleCount];
252253
}
253-
int[] encryptedDataSizes = buffer.cryptoInfo.numBytesOfEncryptedData;
254+
@Nullable int[] encryptedDataSizes = buffer.cryptoInfo.numBytesOfEncryptedData;
254255
if (encryptedDataSizes == null || encryptedDataSizes.length < subsampleCount) {
255256
encryptedDataSizes = new int[subsampleCount];
256257
}
@@ -270,7 +271,7 @@ private void readEncryptionData(DecoderInputBuffer buffer, SampleExtrasHolder ex
270271
}
271272

272273
// Populate the cryptoInfo.
273-
CryptoData cryptoData = extrasHolder.cryptoData;
274+
CryptoData cryptoData = Util.castNonNull(extrasHolder.cryptoData);
274275
buffer.cryptoInfo.set(
275276
subsampleCount,
276277
clearDataSizes,

library/core/src/main/java/com/google/android/exoplayer2/source/SingleSampleMediaPeriod.java

+2-4
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ public void prepare(Callback callback, long positionUs) {
104104
}
105105

106106
@Override
107-
public void maybeThrowPrepareError() throws IOException {
107+
public void maybeThrowPrepareError() {
108108
// Do nothing.
109109
}
110110

@@ -394,7 +394,7 @@ public void cancelLoad() {
394394
}
395395

396396
@Override
397-
public void load() throws IOException, InterruptedException {
397+
public void load() throws IOException {
398398
// We always load from the beginning, so reset bytesRead to 0.
399399
dataSource.resetBytesRead();
400400
try {
@@ -415,7 +415,5 @@ public void load() throws IOException, InterruptedException {
415415
Util.closeQuietly(dataSource);
416416
}
417417
}
418-
419418
}
420-
421419
}

library/core/src/main/java/com/google/android/exoplayer2/source/SingleSampleMediaSource.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -256,8 +256,8 @@ public SingleSampleMediaSource(
256256
Format format,
257257
long durationUs,
258258
int minLoadableRetryCount,
259-
Handler eventHandler,
260-
EventListener eventListener,
259+
@Nullable Handler eventHandler,
260+
@Nullable EventListener eventListener,
261261
int eventSourceId,
262262
boolean treatLoadErrorsAsEndOfStream) {
263263
this(
@@ -313,7 +313,7 @@ protected void prepareSourceInternal(@Nullable TransferListener mediaTransferLis
313313
}
314314

315315
@Override
316-
public void maybeThrowSourceInfoRefreshError() throws IOException {
316+
public void maybeThrowSourceInfoRefreshError() {
317317
// Do nothing.
318318
}
319319

0 commit comments

Comments
 (0)