From 1284f9ea4dee579d59410fdfd39b3e737062d35c Mon Sep 17 00:00:00 2001 From: tonihei Date: Fri, 14 Sep 2018 07:40:03 -0700 Subject: [PATCH] Add Nullable to message payload. Not having this annotation may cause Kotlin implementations to fail. Issue:#4802 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=212980643 --- .../exoplayer2/ext/vp9/LibvpxVideoRenderer.java | 2 +- .../google/android/exoplayer2/BaseRenderer.java | 2 +- .../android/exoplayer2/NoSampleRenderer.java | 3 ++- .../google/android/exoplayer2/PlayerMessage.java | 6 +++--- .../exoplayer2/audio/MediaCodecAudioRenderer.java | 2 +- .../audio/SimpleDecoderAudioRenderer.java | 2 +- .../source/ConcatenatingMediaSource.java | 14 ++++++++------ .../exoplayer2/video/MediaCodecVideoRenderer.java | 2 +- .../video/spherical/CameraMotionRenderer.java | 2 +- .../google/android/exoplayer2/ExoPlayerTest.java | 4 ++-- .../exoplayer2/testutil/ActionSchedule.java | 6 ++++-- 11 files changed, 25 insertions(+), 20 deletions(-) diff --git a/extensions/vp9/src/main/java/com/google/android/exoplayer2/ext/vp9/LibvpxVideoRenderer.java b/extensions/vp9/src/main/java/com/google/android/exoplayer2/ext/vp9/LibvpxVideoRenderer.java index f0986d08be..0f403b4a5c 100644 --- a/extensions/vp9/src/main/java/com/google/android/exoplayer2/ext/vp9/LibvpxVideoRenderer.java +++ b/extensions/vp9/src/main/java/com/google/android/exoplayer2/ext/vp9/LibvpxVideoRenderer.java @@ -640,7 +640,7 @@ public class LibvpxVideoRenderer extends BaseRenderer { // PlayerMessage.Target implementation. @Override - public void handleMessage(int messageType, Object message) throws ExoPlaybackException { + public void handleMessage(int messageType, @Nullable Object message) throws ExoPlaybackException { if (messageType == C.MSG_SET_SURFACE) { setOutput((Surface) message, null); } else if (messageType == MSG_SET_OUTPUT_BUFFER_RENDERER) { diff --git a/library/core/src/main/java/com/google/android/exoplayer2/BaseRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/BaseRenderer.java index cb917b9b79..51e724bee1 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/BaseRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/BaseRenderer.java @@ -163,7 +163,7 @@ public abstract class BaseRenderer implements Renderer, RendererCapabilities { // PlayerMessage.Target implementation. @Override - public void handleMessage(int what, Object object) throws ExoPlaybackException { + public void handleMessage(int what, @Nullable Object object) throws ExoPlaybackException { // Do nothing. } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/NoSampleRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/NoSampleRenderer.java index 593d3d1fce..45d6537b84 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/NoSampleRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/NoSampleRenderer.java @@ -15,6 +15,7 @@ */ package com.google.android.exoplayer2; +import android.support.annotation.Nullable; import com.google.android.exoplayer2.source.SampleStream; import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.MediaClock; @@ -182,7 +183,7 @@ public abstract class NoSampleRenderer implements Renderer, RendererCapabilities // PlayerMessage.Target implementation. @Override - public void handleMessage(int what, Object object) throws ExoPlaybackException { + public void handleMessage(int what, @Nullable Object object) throws ExoPlaybackException { // Do nothing. } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/PlayerMessage.java b/library/core/src/main/java/com/google/android/exoplayer2/PlayerMessage.java index d2b8d72b1e..d60d428563 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/PlayerMessage.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/PlayerMessage.java @@ -36,7 +36,7 @@ public final class PlayerMessage { * @throws ExoPlaybackException If an error occurred whilst handling the message. Should only be * thrown by targets that handle messages on the playback thread. */ - void handleMessage(int messageType, Object payload) throws ExoPlaybackException; + void handleMessage(int messageType, @Nullable Object payload) throws ExoPlaybackException; } /** A sender for messages. */ @@ -55,7 +55,7 @@ public final class PlayerMessage { private final Timeline timeline; private int type; - private Object payload; + private @Nullable Object payload; private Handler handler; private int windowIndex; private long positionMs; @@ -134,7 +134,7 @@ public final class PlayerMessage { } /** Returns the message payload forwarded to {@link Target#handleMessage(int, Object)}. */ - public Object getPayload() { + public @Nullable Object getPayload() { return payload; } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/audio/MediaCodecAudioRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/audio/MediaCodecAudioRenderer.java index 96ae1c529c..61bc4a0476 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/audio/MediaCodecAudioRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/audio/MediaCodecAudioRenderer.java @@ -645,7 +645,7 @@ public class MediaCodecAudioRenderer extends MediaCodecRenderer implements Media } @Override - public void handleMessage(int messageType, Object message) throws ExoPlaybackException { + public void handleMessage(int messageType, @Nullable Object message) throws ExoPlaybackException { switch (messageType) { case C.MSG_SET_VOLUME: audioSink.setVolume((Float) message); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/audio/SimpleDecoderAudioRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/audio/SimpleDecoderAudioRenderer.java index 83b14c071d..a527a58be4 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/audio/SimpleDecoderAudioRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/audio/SimpleDecoderAudioRenderer.java @@ -584,7 +584,7 @@ public abstract class SimpleDecoderAudioRenderer extends BaseRenderer implements } @Override - public void handleMessage(int messageType, Object message) throws ExoPlaybackException { + public void handleMessage(int messageType, @Nullable Object message) throws ExoPlaybackException { switch (messageType) { case C.MSG_SET_VOLUME: audioSink.setVolume((Float) message); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/ConcatenatingMediaSource.java b/library/core/src/main/java/com/google/android/exoplayer2/source/ConcatenatingMediaSource.java index 0fe08f4fee..d1e111515d 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/ConcatenatingMediaSource.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/ConcatenatingMediaSource.java @@ -543,7 +543,8 @@ public class ConcatenatingMediaSource extends CompositeMediaSource> addMessage = - (MessageData>) message; + (MessageData>) Util.castNonNull(message); shuffleOrder = shuffleOrder.cloneAndInsert(addMessage.index, addMessage.customData.size()); addMediaSourcesInternal(addMessage.index, addMessage.customData); scheduleListenerNotification(addMessage.actionOnCompletion); break; case MSG_REMOVE: - MessageData removeMessage = (MessageData) message; + MessageData removeMessage = (MessageData) Util.castNonNull(message); int fromIndex = removeMessage.index; int toIndex = removeMessage.customData; if (fromIndex == 0 && toIndex == shuffleOrder.getLength()) { @@ -573,14 +574,15 @@ public class ConcatenatingMediaSource extends CompositeMediaSource moveMessage = (MessageData) message; + MessageData moveMessage = (MessageData) Util.castNonNull(message); shuffleOrder = shuffleOrder.cloneAndRemove(moveMessage.index); shuffleOrder = shuffleOrder.cloneAndInsert(moveMessage.customData, 1); moveMediaSourceInternal(moveMessage.index, moveMessage.customData); scheduleListenerNotification(moveMessage.actionOnCompletion); break; case MSG_SET_SHUFFLE_ORDER: - MessageData shuffleOrderMessage = (MessageData) message; + MessageData shuffleOrderMessage = + (MessageData) Util.castNonNull(message); shuffleOrder = shuffleOrderMessage.customData; scheduleListenerNotification(shuffleOrderMessage.actionOnCompletion); break; @@ -588,7 +590,7 @@ public class ConcatenatingMediaSource extends CompositeMediaSource actionsOnCompletion = ((List) message); + List actionsOnCompletion = (List) Util.castNonNull(message); Handler handler = Assertions.checkNotNull(playerApplicationHandler); for (int i = 0; i < actionsOnCompletion.size(); i++) { handler.post(actionsOnCompletion.get(i)); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.java index 5c308ab71b..7bf1edc929 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.java @@ -378,7 +378,7 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer { } @Override - public void handleMessage(int messageType, Object message) throws ExoPlaybackException { + public void handleMessage(int messageType, @Nullable Object message) throws ExoPlaybackException { if (messageType == C.MSG_SET_SURFACE) { setSurface((Surface) message); } else if (messageType == C.MSG_SET_SCALING_MODE) { diff --git a/library/core/src/main/java/com/google/android/exoplayer2/video/spherical/CameraMotionRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/video/spherical/CameraMotionRenderer.java index 7b355b0ad9..4a8354d17f 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/video/spherical/CameraMotionRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/video/spherical/CameraMotionRenderer.java @@ -57,7 +57,7 @@ public class CameraMotionRenderer extends BaseRenderer { } @Override - public void handleMessage(int messageType, Object message) throws ExoPlaybackException { + public void handleMessage(int messageType, @Nullable Object message) throws ExoPlaybackException { if (messageType == C.MSG_SET_CAMERA_MOTION_LISTENER) { listener = (CameraMotionListener) message; } else { diff --git a/library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java b/library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java index fb4344fde3..d42d3ee9a7 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java @@ -1964,7 +1964,7 @@ public final class ExoPlayerTest { Renderer videoRenderer = new FakeRenderer(Builder.VIDEO_FORMAT) { @Override - public void handleMessage(int what, Object object) throws ExoPlaybackException { + public void handleMessage(int what, @Nullable Object object) throws ExoPlaybackException { super.handleMessage(what, object); rendererMessages.add(what); } @@ -2455,7 +2455,7 @@ public final class ExoPlayerTest { } @Override - public void handleMessage(SimpleExoPlayer player, int messageType, Object message) { + public void handleMessage(SimpleExoPlayer player, int messageType, @Nullable Object message) { if (player != null) { windowIndex = player.getCurrentWindowIndex(); positionMs = player.getCurrentPosition(); diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/ActionSchedule.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/ActionSchedule.java index 39a95af36d..6e37d7d070 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/ActionSchedule.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/ActionSchedule.java @@ -447,7 +447,8 @@ public final class ActionSchedule { private SimpleExoPlayer player; /** Handles the message send to the component and additionally provides access to the player. */ - public abstract void handleMessage(SimpleExoPlayer player, int messageType, Object message); + public abstract void handleMessage( + SimpleExoPlayer player, int messageType, @Nullable Object message); /** Sets the player to be passed to {@link #handleMessage(SimpleExoPlayer, int, Object)}. */ /* package */ void setPlayer(SimpleExoPlayer player) { @@ -455,7 +456,8 @@ public final class ActionSchedule { } @Override - public final void handleMessage(int messageType, Object message) throws ExoPlaybackException { + public final void handleMessage(int messageType, @Nullable Object message) + throws ExoPlaybackException { handleMessage(player, messageType, message); } }