Add Nullable annotations to CastPlayer

PiperOrigin-RevId: 256680382
This commit is contained in:
olly 2019-07-05 17:07:38 +01:00 committed by Toni
parent d66f0c51a4
commit e852ff1dfa

View File

@ -83,8 +83,6 @@ public final class CastPlayer extends BasePlayer {
private final CastTimelineTracker timelineTracker; private final CastTimelineTracker timelineTracker;
private final Timeline.Period period; private final Timeline.Period period;
private RemoteMediaClient remoteMediaClient;
// Result callbacks. // Result callbacks.
private final StatusListener statusListener; private final StatusListener statusListener;
private final SeekResultCallback seekResultCallback; private final SeekResultCallback seekResultCallback;
@ -93,9 +91,10 @@ public final class CastPlayer extends BasePlayer {
private final CopyOnWriteArrayList<ListenerHolder> listeners; private final CopyOnWriteArrayList<ListenerHolder> listeners;
private final ArrayList<ListenerNotificationTask> notificationsBatch; private final ArrayList<ListenerNotificationTask> notificationsBatch;
private final ArrayDeque<ListenerNotificationTask> ongoingNotificationsTasks; private final ArrayDeque<ListenerNotificationTask> ongoingNotificationsTasks;
private SessionAvailabilityListener sessionAvailabilityListener; @Nullable private SessionAvailabilityListener sessionAvailabilityListener;
// Internal state. // Internal state.
@Nullable private RemoteMediaClient remoteMediaClient;
private CastTimeline currentTimeline; private CastTimeline currentTimeline;
private TrackGroupArray currentTrackGroups; private TrackGroupArray currentTrackGroups;
private TrackSelectionArray currentTrackSelection; private TrackSelectionArray currentTrackSelection;
@ -148,6 +147,7 @@ public final class CastPlayer extends BasePlayer {
* starts at position 0. * starts at position 0.
* @return The Cast {@code PendingResult}, or null if no session is available. * @return The Cast {@code PendingResult}, or null if no session is available.
*/ */
@Nullable
public PendingResult<MediaChannelResult> loadItem(MediaQueueItem item, long positionMs) { public PendingResult<MediaChannelResult> loadItem(MediaQueueItem item, long positionMs) {
return loadItems(new MediaQueueItem[] {item}, 0, positionMs, REPEAT_MODE_OFF); return loadItems(new MediaQueueItem[] {item}, 0, positionMs, REPEAT_MODE_OFF);
} }
@ -163,8 +163,9 @@ public final class CastPlayer extends BasePlayer {
* @param repeatMode The repeat mode for the created media queue. * @param repeatMode The repeat mode for the created media queue.
* @return The Cast {@code PendingResult}, or null if no session is available. * @return The Cast {@code PendingResult}, or null if no session is available.
*/ */
public PendingResult<MediaChannelResult> loadItems(MediaQueueItem[] items, int startIndex, @Nullable
long positionMs, @RepeatMode int repeatMode) { public PendingResult<MediaChannelResult> loadItems(
MediaQueueItem[] items, int startIndex, long positionMs, @RepeatMode int repeatMode) {
if (remoteMediaClient != null) { if (remoteMediaClient != null) {
positionMs = positionMs != C.TIME_UNSET ? positionMs : 0; positionMs = positionMs != C.TIME_UNSET ? positionMs : 0;
waitingForInitialTimeline = true; waitingForInitialTimeline = true;
@ -180,6 +181,7 @@ public final class CastPlayer extends BasePlayer {
* @param items The items to append. * @param items The items to append.
* @return The Cast {@code PendingResult}, or null if no media queue exists. * @return The Cast {@code PendingResult}, or null if no media queue exists.
*/ */
@Nullable
public PendingResult<MediaChannelResult> addItems(MediaQueueItem... items) { public PendingResult<MediaChannelResult> addItems(MediaQueueItem... items) {
return addItems(MediaQueueItem.INVALID_ITEM_ID, items); return addItems(MediaQueueItem.INVALID_ITEM_ID, items);
} }
@ -194,6 +196,7 @@ public final class CastPlayer extends BasePlayer {
* @return The Cast {@code PendingResult}, or null if no media queue or no period with id {@code * @return The Cast {@code PendingResult}, or null if no media queue or no period with id {@code
* periodId} exist. * periodId} exist.
*/ */
@Nullable
public PendingResult<MediaChannelResult> addItems(int periodId, MediaQueueItem... items) { public PendingResult<MediaChannelResult> addItems(int periodId, MediaQueueItem... items) {
if (getMediaStatus() != null && (periodId == MediaQueueItem.INVALID_ITEM_ID if (getMediaStatus() != null && (periodId == MediaQueueItem.INVALID_ITEM_ID
|| currentTimeline.getIndexOfPeriod(periodId) != C.INDEX_UNSET)) { || currentTimeline.getIndexOfPeriod(periodId) != C.INDEX_UNSET)) {
@ -211,6 +214,7 @@ public final class CastPlayer extends BasePlayer {
* @return The Cast {@code PendingResult}, or null if no media queue or no period with id {@code * @return The Cast {@code PendingResult}, or null if no media queue or no period with id {@code
* periodId} exist. * periodId} exist.
*/ */
@Nullable
public PendingResult<MediaChannelResult> removeItem(int periodId) { public PendingResult<MediaChannelResult> removeItem(int periodId) {
if (getMediaStatus() != null && currentTimeline.getIndexOfPeriod(periodId) != C.INDEX_UNSET) { if (getMediaStatus() != null && currentTimeline.getIndexOfPeriod(periodId) != C.INDEX_UNSET) {
return remoteMediaClient.queueRemoveItem(periodId, null); return remoteMediaClient.queueRemoveItem(periodId, null);
@ -229,6 +233,7 @@ public final class CastPlayer extends BasePlayer {
* @return The Cast {@code PendingResult}, or null if no media queue or no period with id {@code * @return The Cast {@code PendingResult}, or null if no media queue or no period with id {@code
* periodId} exist. * periodId} exist.
*/ */
@Nullable
public PendingResult<MediaChannelResult> moveItem(int periodId, int newIndex) { public PendingResult<MediaChannelResult> moveItem(int periodId, int newIndex) {
Assertions.checkArgument(newIndex >= 0 && newIndex < currentTimeline.getPeriodCount()); Assertions.checkArgument(newIndex >= 0 && newIndex < currentTimeline.getPeriodCount());
if (getMediaStatus() != null && currentTimeline.getIndexOfPeriod(periodId) != C.INDEX_UNSET) { if (getMediaStatus() != null && currentTimeline.getIndexOfPeriod(periodId) != C.INDEX_UNSET) {
@ -246,6 +251,7 @@ public final class CastPlayer extends BasePlayer {
* @return The item that corresponds to the period with the given id, or null if no media queue or * @return The item that corresponds to the period with the given id, or null if no media queue or
* period with id {@code periodId} exist. * period with id {@code periodId} exist.
*/ */
@Nullable
public MediaQueueItem getItem(int periodId) { public MediaQueueItem getItem(int periodId) {
MediaStatus mediaStatus = getMediaStatus(); MediaStatus mediaStatus = getMediaStatus();
return mediaStatus != null && currentTimeline.getIndexOfPeriod(periodId) != C.INDEX_UNSET return mediaStatus != null && currentTimeline.getIndexOfPeriod(periodId) != C.INDEX_UNSET
@ -264,9 +270,9 @@ public final class CastPlayer extends BasePlayer {
/** /**
* Sets a listener for updates on the cast session availability. * Sets a listener for updates on the cast session availability.
* *
* @param listener The {@link SessionAvailabilityListener}. * @param listener The {@link SessionAvailabilityListener}, or null to clear the listener.
*/ */
public void setSessionAvailabilityListener(SessionAvailabilityListener listener) { public void setSessionAvailabilityListener(@Nullable SessionAvailabilityListener listener) {
sessionAvailabilityListener = listener; sessionAvailabilityListener = listener;
} }
@ -323,6 +329,7 @@ public final class CastPlayer extends BasePlayer {
} }
@Override @Override
@Nullable
public ExoPlaybackException getPlaybackError() { public ExoPlaybackException getPlaybackError() {
return null; return null;
} }
@ -530,7 +537,7 @@ public final class CastPlayer extends BasePlayer {
// Internal methods. // Internal methods.
public void updateInternalState() { private void updateInternalState() {
if (remoteMediaClient == null) { if (remoteMediaClient == null) {
// There is no session. We leave the state of the player as it is now. // There is no session. We leave the state of the player as it is now.
return; return;
@ -676,7 +683,8 @@ public final class CastPlayer extends BasePlayer {
} }
} }
private @Nullable MediaStatus getMediaStatus() { @Nullable
private MediaStatus getMediaStatus() {
return remoteMediaClient != null ? remoteMediaClient.getMediaStatus() : null; return remoteMediaClient != null ? remoteMediaClient.getMediaStatus() : null;
} }