From 44009ea68642cbaeea0a14436d6672c8337e257a Mon Sep 17 00:00:00 2001 From: tonihei Date: Wed, 18 Nov 2020 16:36:37 +0000 Subject: [PATCH] Rollback of https://github.com/google/ExoPlayer/commit/fa6e01312becc6662e83368e57dfa0c71de0dac6 *** Original commit *** Suppress warnings in preparation for Checker Framework 3.7.1 upgrade. *** PiperOrigin-RevId: 343085407 --- .../exoplayer2/drm/DefaultDrmSession.java | 14 +------- .../drm/DefaultDrmSessionManager.java | 15 +------- .../android/exoplayer2/drm/DrmSession.java | 6 ---- .../exoplayer2/drm/DrmSessionManager.java | 4 --- .../exoplayer2/drm/DummyExoMediaDrm.java | 2 -- .../exoplayer2/drm/ErrorStateDrmSession.java | 6 ---- .../android/exoplayer2/drm/ExoMediaDrm.java | 4 --- .../exoplayer2/drm/FrameworkMediaDrm.java | 6 ---- .../exoplayer2/drm/HttpMediaDrmCallback.java | 2 -- .../exoplayer2/drm/OfflineLicenseHelper.java | 4 --- .../android/exoplayer2/ui/DefaultTimeBar.java | 16 +++------ .../exoplayer2/ui/PlayerControlView.java | 2 -- .../ui/PlayerNotificationManager.java | 16 ++------- .../android/exoplayer2/ui/PlayerView.java | 32 +++-------------- .../ui/StyledPlayerControlView.java | 2 -- .../exoplayer2/ui/StyledPlayerView.java | 34 +++---------------- .../google/android/exoplayer2/ui/TimeBar.java | 6 ++-- .../exoplayer2/ui/WebViewSubtitleOutput.java | 2 -- .../testutil/CapturingAudioSink.java | 2 -- .../exoplayer2/testutil/DownloadBuilder.java | 8 +---- .../android/exoplayer2/testutil/Dumper.java | 2 -- .../exoplayer2/testutil/FakeDataSet.java | 8 +---- .../exoplayer2/testutil/FakeExoMediaDrm.java | 7 +--- .../exoplayer2/testutil/FakeMediaSource.java | 10 +----- .../exoplayer2/testutil/FakeSampleStream.java | 8 +---- 25 files changed, 25 insertions(+), 193 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSession.java b/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSession.java index d8ab32f945..0cec4ab789 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSession.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSession.java @@ -139,11 +139,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; @Nullable private RequestHandler requestHandler; @Nullable private ExoMediaCrypto mediaCrypto; @Nullable private DrmSessionException lastException; - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") - @Nullable - private byte[] sessionId; - + @Nullable private byte[] sessionId; private byte @MonotonicNonNull [] offlineLicenseKeySetId; @Nullable private KeyRequest currentKeyRequest; @@ -168,8 +164,6 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; * @param loadErrorHandlingPolicy The {@link LoadErrorHandlingPolicy} for key and provisioning * requests. */ - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") public DefaultDrmSession( UUID uuid, ExoMediaDrm mediaDrm, @@ -278,16 +272,12 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; return sessionId == null ? null : mediaDrm.queryKeyStatus(sessionId); } - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") @Override @Nullable public byte[] getOfflineLicenseKeySetId() { return offlineLicenseKeySetId; } - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") @Override public void acquire(@Nullable DrmSessionEventListener.EventDispatcher eventDispatcher) { checkState(referenceCount >= 0); @@ -311,8 +301,6 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; referenceCountListener.onReferenceCountIncremented(this, referenceCount); } - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") @Override public void release(@Nullable DrmSessionEventListener.EventDispatcher eventDispatcher) { checkState(referenceCount > 0); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java b/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java index 4aa15774d3..be02faeba8 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java @@ -290,10 +290,7 @@ public class DefaultDrmSessionManager implements DrmSessionManager { @Nullable private Looper playbackLooper; private @MonotonicNonNull Handler sessionReleasingHandler; private int mode; - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") - @Nullable - private byte[] offlineLicenseKeySetId; + @Nullable private byte[] offlineLicenseKeySetId; /* package */ volatile @Nullable MediaDrmHandler mediaDrmHandler; @@ -433,8 +430,6 @@ public class DefaultDrmSessionManager implements DrmSessionManager { * @param mode The mode to be set. * @param offlineLicenseKeySetId The key set id of the license to be used with the given mode. */ - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") public void setMode(@Mode int mode, @Nullable byte[] offlineLicenseKeySetId) { Assertions.checkState(sessions.isEmpty()); if (mode == MODE_QUERY || mode == MODE_RELEASE) { @@ -472,8 +467,6 @@ public class DefaultDrmSessionManager implements DrmSessionManager { exoMediaDrm = null; } - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") @Override @Nullable public DrmSession acquireSession( @@ -625,8 +618,6 @@ public class DefaultDrmSessionManager implements DrmSessionManager { } } - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") private DefaultDrmSession createAndAcquireSessionWithRetry( @Nullable List schemeDatas, boolean isPlaceholderSession, @@ -666,8 +657,6 @@ public class DefaultDrmSessionManager implements DrmSessionManager { *

If {@link #sessionKeepaliveMs} != {@link C#TIME_UNSET} then acquires it again to allow the * manager to keep it alive (passing in {@code eventDispatcher=null}. */ - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") private DefaultDrmSession createAndAcquireSession( @Nullable List schemeDatas, boolean isPlaceholderSession, @@ -828,8 +817,6 @@ public class DefaultDrmSessionManager implements DrmSessionManager { private class MediaDrmEventListener implements OnEventListener { - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") @Override public void onEvent( ExoMediaDrm md, @Nullable byte[] sessionId, int event, int extra, @Nullable byte[] data) { diff --git a/library/core/src/main/java/com/google/android/exoplayer2/drm/DrmSession.java b/library/core/src/main/java/com/google/android/exoplayer2/drm/DrmSession.java index ac2e1febce..e72d552a68 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/drm/DrmSession.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/drm/DrmSession.java @@ -131,8 +131,6 @@ public interface DrmSession { * Returns the key set id of the offline license loaded into this session, or null if there isn't * one. */ - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") @Nullable byte[] getOfflineLicenseKeySetId(); @@ -144,8 +142,6 @@ public interface DrmSession { * @param eventDispatcher The {@link DrmSessionEventListener.EventDispatcher} used to route * DRM-related events dispatched from this session, or null if no event handling is needed. */ - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") void acquire(@Nullable DrmSessionEventListener.EventDispatcher eventDispatcher); /** @@ -156,7 +152,5 @@ public interface DrmSession { * the session is released (the same instance (possibly null) that was passed by the caller to * {@link #acquire(DrmSessionEventListener.EventDispatcher)}). */ - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") void release(@Nullable DrmSessionEventListener.EventDispatcher eventDispatcher); } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/drm/DrmSessionManager.java b/library/core/src/main/java/com/google/android/exoplayer2/drm/DrmSessionManager.java index 397fb8bfb1..1168884d76 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/drm/DrmSessionManager.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/drm/DrmSessionManager.java @@ -31,8 +31,6 @@ public interface DrmSessionManager { DrmSessionManager DUMMY = new DrmSessionManager() { - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") @Override @Nullable public DrmSession acquireSession( @@ -91,8 +89,6 @@ public interface DrmSessionManager { * @param format The {@link Format} for which to acquire a {@link DrmSession}. * @return The DRM session. May be null if the given {@link Format#drmInitData} is null. */ - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") @Nullable DrmSession acquireSession( Looper playbackLooper, diff --git a/library/core/src/main/java/com/google/android/exoplayer2/drm/DummyExoMediaDrm.java b/library/core/src/main/java/com/google/android/exoplayer2/drm/DummyExoMediaDrm.java index 97602811d6..9631b76491 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/drm/DummyExoMediaDrm.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/drm/DummyExoMediaDrm.java @@ -68,8 +68,6 @@ public final class DummyExoMediaDrm implements ExoMediaDrm { throw new IllegalStateException(); } - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") @Override @Nullable public byte[] provideKeyResponse(byte[] scope, byte[] response) { diff --git a/library/core/src/main/java/com/google/android/exoplayer2/drm/ErrorStateDrmSession.java b/library/core/src/main/java/com/google/android/exoplayer2/drm/ErrorStateDrmSession.java index cbc9583506..068f1b3782 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/drm/ErrorStateDrmSession.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/drm/ErrorStateDrmSession.java @@ -63,23 +63,17 @@ public final class ErrorStateDrmSession implements DrmSession { return null; } - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") @Override @Nullable public byte[] getOfflineLicenseKeySetId() { return null; } - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") @Override public void acquire(@Nullable DrmSessionEventListener.EventDispatcher eventDispatcher) { // Do nothing. } - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") @Override public void release(@Nullable DrmSessionEventListener.EventDispatcher eventDispatcher) { // Do nothing. diff --git a/library/core/src/main/java/com/google/android/exoplayer2/drm/ExoMediaDrm.java b/library/core/src/main/java/com/google/android/exoplayer2/drm/ExoMediaDrm.java index e7607e5777..6684064f63 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/drm/ExoMediaDrm.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/drm/ExoMediaDrm.java @@ -119,8 +119,6 @@ public interface ExoMediaDrm { * @param extra A secondary error code. * @param data Optional byte array of data that may be associated with the event. */ - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") void onEvent( ExoMediaDrm mediaDrm, @Nullable byte[] sessionId, @@ -296,8 +294,6 @@ public interface ExoMediaDrm { throws NotProvisionedException; /** @see MediaDrm#provideKeyResponse(byte[], byte[]) */ - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") @Nullable byte[] provideKeyResponse(byte[] scope, byte[] response) throws NotProvisionedException, DeniedByServerException; diff --git a/library/core/src/main/java/com/google/android/exoplayer2/drm/FrameworkMediaDrm.java b/library/core/src/main/java/com/google/android/exoplayer2/drm/FrameworkMediaDrm.java index a951a5f2a4..26fe66e792 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/drm/FrameworkMediaDrm.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/drm/FrameworkMediaDrm.java @@ -112,8 +112,6 @@ public final class FrameworkMediaDrm implements ExoMediaDrm { } } - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") @Override public void setOnEventListener(@Nullable ExoMediaDrm.OnEventListener listener) { mediaDrm.setOnEventListener( @@ -129,8 +127,6 @@ public final class FrameworkMediaDrm implements ExoMediaDrm { * @param listener The listener to receive events, or {@code null} to stop receiving events. * @throws UnsupportedOperationException on API levels lower than 23. */ - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") @Override @RequiresApi(23) public void setOnKeyStatusChangeListener( @@ -217,8 +213,6 @@ public final class FrameworkMediaDrm implements ExoMediaDrm { return new KeyRequest(requestData, licenseServerUrl); } - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") @Override @Nullable public byte[] provideKeyResponse(byte[] scope, byte[] response) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/drm/HttpMediaDrmCallback.java b/library/core/src/main/java/com/google/android/exoplayer2/drm/HttpMediaDrmCallback.java index 4f26a7067a..6a20cf7bda 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/drm/HttpMediaDrmCallback.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/drm/HttpMediaDrmCallback.java @@ -153,8 +153,6 @@ public final class HttpMediaDrmCallback implements MediaDrmCallback { return executePost(dataSourceFactory, url, request.getData(), requestProperties); } - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") private static byte[] executePost( HttpDataSource.Factory dataSourceFactory, String url, diff --git a/library/core/src/main/java/com/google/android/exoplayer2/drm/OfflineLicenseHelper.java b/library/core/src/main/java/com/google/android/exoplayer2/drm/OfflineLicenseHelper.java index 0db0f6182e..b218d0cadb 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/drm/OfflineLicenseHelper.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/drm/OfflineLicenseHelper.java @@ -262,8 +262,6 @@ public final class OfflineLicenseHelper { handlerThread.quit(); } - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") private byte[] blockingKeyRequest( @Mode int licenseMode, @Nullable byte[] offlineLicenseKeySetId, Format format) throws DrmSessionException { @@ -279,8 +277,6 @@ public final class OfflineLicenseHelper { return Assertions.checkNotNull(keySetId); } - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") private DrmSession openBlockingKeyRequest( @Mode int licenseMode, @Nullable byte[] offlineLicenseKeySetId, Format format) { Assertions.checkNotNull(format.drmInitData); diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/DefaultTimeBar.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/DefaultTimeBar.java index 89271bca52..4e96d39e7c 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/DefaultTimeBar.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/DefaultTimeBar.java @@ -222,14 +222,8 @@ public class DefaultTimeBar extends View implements TimeBar { private long position; private long bufferedPosition; private int adGroupCount; - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") - @Nullable - private long[] adGroupTimesMs; - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") - @Nullable - private boolean[] playedAdGroups; + @Nullable private long[] adGroupTimesMs; + @Nullable private boolean[] playedAdGroups; public DefaultTimeBar(Context context) { this(context, null); @@ -533,11 +527,9 @@ public class DefaultTimeBar extends View implements TimeBar { : duration / timeBarWidthDp; } - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") @Override - public void setAdGroupTimesMs( - @Nullable long[] adGroupTimesMs, @Nullable boolean[] playedAdGroups, int adGroupCount) { + public void setAdGroupTimesMs(@Nullable long[] adGroupTimesMs, @Nullable boolean[] playedAdGroups, + int adGroupCount) { Assertions.checkArgument(adGroupCount == 0 || (adGroupTimesMs != null && playedAdGroups != null)); this.adGroupCount = adGroupCount; diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerControlView.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerControlView.java index 19c658a534..1ae7812bd4 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerControlView.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerControlView.java @@ -568,8 +568,6 @@ public class PlayerControlView extends FrameLayout { * @param extraPlayedAdGroups Whether each ad has been played. Must be the same length as {@code * extraAdGroupTimesMs}, or {@code null} if {@code extraAdGroupTimesMs} is {@code null}. */ - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") public void setExtraAdGroupMarkers( @Nullable long[] extraAdGroupTimesMs, @Nullable boolean[] extraPlayedAdGroups) { if (extraAdGroupTimesMs == null) { diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerNotificationManager.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerNotificationManager.java index 287f067a69..b183fddbb6 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerNotificationManager.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerNotificationManager.java @@ -373,11 +373,7 @@ public class PlayerNotificationManager { private final int instanceId; private final Timeline.Window window; - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") - @Nullable - private NotificationCompat.Builder builder; - + @Nullable private NotificationCompat.Builder builder; @Nullable private List builderActions; @Nullable private Player player; @Nullable private PlaybackPreparer playbackPreparer; @@ -385,11 +381,7 @@ public class PlayerNotificationManager { private boolean isNotificationStarted; private int currentNotificationTag; @Nullable private NotificationListener notificationListener; - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") - @Nullable - private MediaSessionCompat.Token mediaSessionToken; - + @Nullable private MediaSessionCompat.Token mediaSessionToken; private boolean useNavigationActions; private boolean useNavigationActionsInCompactView; private boolean usePlayPauseActions; @@ -1047,8 +1039,6 @@ public class PlayerNotificationManager { * NotificationCompat.Builder#build()} to obtain the notification, or {@code null} if no * notification should be displayed. */ - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") @Nullable protected NotificationCompat.Builder createNotification( Player player, @@ -1064,8 +1054,6 @@ public class PlayerNotificationManager { List actions = new ArrayList<>(actionNames.size()); for (int i = 0; i < actionNames.size(); i++) { String actionName = actionNames.get(i); - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") @Nullable NotificationCompat.Action action = playbackActions.containsKey(actionName) diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerView.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerView.java index 1c21437c45..3143d3d70b 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerView.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerView.java @@ -309,11 +309,7 @@ public class PlayerView extends FrameLayout implements AdsLoader.AdViewProvider @Nullable private Player player; private boolean useController; - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") - @Nullable - private PlayerControlView.VisibilityListener controllerVisibilityListener; - + @Nullable private PlayerControlView.VisibilityListener controllerVisibilityListener; private boolean useArtwork; @Nullable private Drawable defaultArtwork; private @ShowBuffering int showBuffering; @@ -568,10 +564,7 @@ public class PlayerView extends FrameLayout implements AdsLoader.AdViewProvider @Nullable Player oldPlayer = this.player; if (oldPlayer != null) { oldPlayer.removeListener(componentListener); - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") - @Nullable - Player.VideoComponent oldVideoComponent = oldPlayer.getVideoComponent(); + @Nullable Player.VideoComponent oldVideoComponent = oldPlayer.getVideoComponent(); if (oldVideoComponent != null) { oldVideoComponent.removeVideoListener(componentListener); if (surfaceView instanceof TextureView) { @@ -584,10 +577,7 @@ public class PlayerView extends FrameLayout implements AdsLoader.AdViewProvider oldVideoComponent.clearVideoSurfaceView((SurfaceView) surfaceView); } } - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") - @Nullable - Player.TextComponent oldTextComponent = oldPlayer.getTextComponent(); + @Nullable Player.TextComponent oldTextComponent = oldPlayer.getTextComponent(); if (oldTextComponent != null) { oldTextComponent.removeTextOutput(componentListener); } @@ -603,10 +593,7 @@ public class PlayerView extends FrameLayout implements AdsLoader.AdViewProvider updateErrorMessage(); updateForCurrentTrackSelections(/* isNewPlayer= */ true); if (player != null) { - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") - @Nullable - Player.VideoComponent newVideoComponent = player.getVideoComponent(); + @Nullable Player.VideoComponent newVideoComponent = player.getVideoComponent(); if (newVideoComponent != null) { if (surfaceView instanceof TextureView) { newVideoComponent.setVideoTextureView((TextureView) surfaceView); @@ -620,10 +607,7 @@ public class PlayerView extends FrameLayout implements AdsLoader.AdViewProvider } newVideoComponent.addVideoListener(componentListener); } - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") - @Nullable - Player.TextComponent newTextComponent = player.getTextComponent(); + @Nullable Player.TextComponent newTextComponent = player.getTextComponent(); if (newTextComponent != null) { newTextComponent.addTextOutput(componentListener); if (subtitleView != null) { @@ -982,8 +966,6 @@ public class PlayerView extends FrameLayout implements AdsLoader.AdViewProvider * @param listener The listener to be notified about visibility changes, or null to remove the * current listener. */ - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") public void setControllerVisibilityListener( @Nullable PlayerControlView.VisibilityListener listener) { Assertions.checkStateNotNull(controller); @@ -1126,8 +1108,6 @@ public class PlayerView extends FrameLayout implements AdsLoader.AdViewProvider * @param extraPlayedAdGroups Whether each ad has been played, or {@code null} to show no extra ad * markers. */ - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") public void setExtraAdGroupMarkers( @Nullable long[] extraAdGroupTimesMs, @Nullable boolean[] extraPlayedAdGroups) { Assertions.checkStateNotNull(controller); @@ -1140,8 +1120,6 @@ public class PlayerView extends FrameLayout implements AdsLoader.AdViewProvider * @param listener The listener to be notified about aspect ratios changes of the video content or * the content frame. */ - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") public void setAspectRatioListener( @Nullable AspectRatioFrameLayout.AspectRatioListener listener) { Assertions.checkStateNotNull(contentFrame); diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerControlView.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerControlView.java index da3dc0a508..3cff0ef3cb 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerControlView.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerControlView.java @@ -791,8 +791,6 @@ public class StyledPlayerControlView extends FrameLayout { * @param extraPlayedAdGroups Whether each ad has been played. Must be the same length as {@code * extraAdGroupTimesMs}, or {@code null} if {@code extraAdGroupTimesMs} is {@code null}. */ - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") public void setExtraAdGroupMarkers( @Nullable long[] extraAdGroupTimesMs, @Nullable boolean[] extraPlayedAdGroups) { if (extraAdGroupTimesMs == null) { diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerView.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerView.java index 59804d311c..871ed8919c 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerView.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerView.java @@ -311,11 +311,7 @@ public class StyledPlayerView extends FrameLayout implements AdsLoader.AdViewPro @Nullable private Player player; private boolean useController; - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") - @Nullable - private StyledPlayerControlView.VisibilityListener controllerVisibilityListener; - + @Nullable private StyledPlayerControlView.VisibilityListener controllerVisibilityListener; private boolean useArtwork; @Nullable private Drawable defaultArtwork; private @ShowBuffering int showBuffering; @@ -577,10 +573,7 @@ public class StyledPlayerView extends FrameLayout implements AdsLoader.AdViewPro @Nullable Player oldPlayer = this.player; if (oldPlayer != null) { oldPlayer.removeListener(componentListener); - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") - @Nullable - Player.VideoComponent oldVideoComponent = oldPlayer.getVideoComponent(); + @Nullable Player.VideoComponent oldVideoComponent = oldPlayer.getVideoComponent(); if (oldVideoComponent != null) { oldVideoComponent.removeVideoListener(componentListener); if (surfaceView instanceof TextureView) { @@ -593,10 +586,7 @@ public class StyledPlayerView extends FrameLayout implements AdsLoader.AdViewPro oldVideoComponent.clearVideoSurfaceView((SurfaceView) surfaceView); } } - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") - @Nullable - Player.TextComponent oldTextComponent = oldPlayer.getTextComponent(); + @Nullable Player.TextComponent oldTextComponent = oldPlayer.getTextComponent(); if (oldTextComponent != null) { oldTextComponent.removeTextOutput(componentListener); } @@ -612,10 +602,7 @@ public class StyledPlayerView extends FrameLayout implements AdsLoader.AdViewPro updateErrorMessage(); updateForCurrentTrackSelections(/* isNewPlayer= */ true); if (player != null) { - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") - @Nullable - Player.VideoComponent newVideoComponent = player.getVideoComponent(); + @Nullable Player.VideoComponent newVideoComponent = player.getVideoComponent(); if (newVideoComponent != null) { if (surfaceView instanceof TextureView) { newVideoComponent.setVideoTextureView((TextureView) surfaceView); @@ -629,10 +616,7 @@ public class StyledPlayerView extends FrameLayout implements AdsLoader.AdViewPro } newVideoComponent.addVideoListener(componentListener); } - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") - @Nullable - Player.TextComponent newTextComponent = player.getTextComponent(); + @Nullable Player.TextComponent newTextComponent = player.getTextComponent(); if (newTextComponent != null) { newTextComponent.addTextOutput(componentListener); if (subtitleView != null) { @@ -966,8 +950,6 @@ public class StyledPlayerView extends FrameLayout implements AdsLoader.AdViewPro * @param listener The listener to be notified about visibility changes, or null to remove the * current listener. */ - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") public void setControllerVisibilityListener( @Nullable StyledPlayerControlView.VisibilityListener listener) { Assertions.checkStateNotNull(controller); @@ -989,8 +971,6 @@ public class StyledPlayerView extends FrameLayout implements AdsLoader.AdViewPro * @param listener The listener to be notified when the fullscreen button is clicked, or null to * remove the current listener and hide the fullscreen button. */ - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") public void setControllerOnFullScreenModeChangedListener( @Nullable StyledPlayerControlView.OnFullScreenModeChangedListener listener) { Assertions.checkStateNotNull(controller); @@ -1122,8 +1102,6 @@ public class StyledPlayerView extends FrameLayout implements AdsLoader.AdViewPro * @param extraPlayedAdGroups Whether each ad has been played, or {@code null} to show no extra ad * markers. */ - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") public void setExtraAdGroupMarkers( @Nullable long[] extraAdGroupTimesMs, @Nullable boolean[] extraPlayedAdGroups) { Assertions.checkStateNotNull(controller); @@ -1136,8 +1114,6 @@ public class StyledPlayerView extends FrameLayout implements AdsLoader.AdViewPro * @param listener The listener to be notified about aspect ratios changes of the video content or * the content frame. */ - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") public void setAspectRatioListener( @Nullable AspectRatioFrameLayout.AspectRatioListener listener) { Assertions.checkStateNotNull(contentFrame); diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/TimeBar.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/TimeBar.java index bda47df86d..9e3f2e42ff 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/TimeBar.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/TimeBar.java @@ -102,10 +102,8 @@ public interface TimeBar { * groups. * @param adGroupCount The number of ad groups. */ - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") - void setAdGroupTimesMs( - @Nullable long[] adGroupTimesMs, @Nullable boolean[] playedAdGroups, int adGroupCount); + void setAdGroupTimesMs(@Nullable long[] adGroupTimesMs, @Nullable boolean[] playedAdGroups, + int adGroupCount); /** * Listener for scrubbing events. diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/WebViewSubtitleOutput.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/WebViewSubtitleOutput.java index dfda502017..f3de4298a5 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/WebViewSubtitleOutput.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/WebViewSubtitleOutput.java @@ -374,8 +374,6 @@ import java.util.Map; } } - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") private static String convertAlignmentToCss(@Nullable Layout.Alignment alignment) { if (alignment == null) { return "center"; diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/CapturingAudioSink.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/CapturingAudioSink.java index aae37236ef..bf1ffdce0e 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/CapturingAudioSink.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/CapturingAudioSink.java @@ -36,8 +36,6 @@ public final class CapturingAudioSink extends ForwardingAudioSink implements Dum interceptedData = new ArrayList<>(); } - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") @Override public void configure(Format inputFormat, int specifiedBufferSize, @Nullable int[] outputChannels) throws ConfigurationException { diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/DownloadBuilder.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/DownloadBuilder.java index a698dd9562..184b7a11e4 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/DownloadBuilder.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/DownloadBuilder.java @@ -41,11 +41,7 @@ public final class DownloadBuilder { private Uri uri; @Nullable private String mimeType; private List streamKeys; - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") - @Nullable - private byte[] keySetId; - + @Nullable private byte[] keySetId; @Nullable private String cacheKey; private byte[] customMetadata; @@ -89,8 +85,6 @@ public final class DownloadBuilder { } /** Creates a download builder. */ - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") private DownloadBuilder( String id, Uri uri, diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/Dumper.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/Dumper.java index f7fb54ac61..8175c9032d 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/Dumper.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/Dumper.java @@ -54,8 +54,6 @@ public final class Dumper { return this; } - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") public Dumper add(String field, @Nullable byte[] value) { String string = String.format( diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeDataSet.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeDataSet.java index 85c8045a74..550220a563 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeDataSet.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeDataSet.java @@ -80,11 +80,7 @@ public class FakeDataSet { public static final class Segment { @Nullable public final IOException exception; - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") - @Nullable - public final byte[] data; - + @Nullable public final byte[] data; public final int length; public final long byteOffset; @Nullable public final Runnable action; @@ -109,8 +105,6 @@ public class FakeDataSet { this(null, 0, null, action, previousSegment); } - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") private Segment( @Nullable byte[] data, int length, diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeExoMediaDrm.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeExoMediaDrm.java index f3ebdae489..19ea68cbf2 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeExoMediaDrm.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeExoMediaDrm.java @@ -170,8 +170,6 @@ public final class FakeExoMediaDrm implements ExoMediaDrm { return new KeyRequest(requestData.toByteArray(), /* licenseServerUrl= */ ""); } - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") @Nullable @Override public byte[] provideKeyResponse(byte[] scope, byte[] response) @@ -245,10 +243,7 @@ public final class FakeExoMediaDrm implements ExoMediaDrm { @Override public byte[] getPropertyByteArray(String propertyName) { Assertions.checkState(referenceCount > 0); - // nullness annotations are not applicable to primitive types - @SuppressWarnings("nullness:nullness.on.primitive") - @Nullable - byte[] value = byteProperties.get(propertyName); + @Nullable byte[] value = byteProperties.get(propertyName); if (value == null) { throw new IllegalArgumentException("Unrecognized propertyName: " + propertyName); } diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeMediaSource.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeMediaSource.java index 4ed786d293..0978547610 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeMediaSource.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeMediaSource.java @@ -81,11 +81,7 @@ public class FakeMediaSource extends BaseMediaSource { private static final int MANIFEST_LOAD_BYTES = 100; private final TrackGroupArray trackGroupArray; - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") - @Nullable - private final FakeMediaPeriod.TrackDataFactory trackDataFactory; - + @Nullable private final FakeMediaPeriod.TrackDataFactory trackDataFactory; private final ArrayList activeMediaPeriods; private final ArrayList createdMediaPeriods; private final DrmSessionManager drmSessionManager; @@ -125,8 +121,6 @@ public class FakeMediaSource extends BaseMediaSource { * null to prevent an immediate source info refresh message when preparing the media source. It * can be manually set later using {@link #setNewSourceInfo(Timeline)}. */ - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") public FakeMediaSource( @Nullable Timeline timeline, DrmSessionManager drmSessionManager, @@ -142,8 +136,6 @@ public class FakeMediaSource extends BaseMediaSource { * immediate source info refresh message when preparing the media source. It can be manually set * later using {@link #setNewSourceInfo(Timeline)}. */ - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") public FakeMediaSource( @Nullable Timeline timeline, DrmSessionManager drmSessionManager, diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeSampleStream.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeSampleStream.java index 4fcfe0cf7c..eaa2fb52bb 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeSampleStream.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeSampleStream.java @@ -126,11 +126,7 @@ public class FakeSampleStream implements SampleStream { } } - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") - @Nullable - private final MediaSourceEventListener.EventDispatcher mediaSourceEventDispatcher; - + @Nullable private final MediaSourceEventListener.EventDispatcher mediaSourceEventDispatcher; private final Format initialFormat; private final List fakeSampleStreamItems; private final DrmSessionManager drmSessionManager; @@ -157,8 +153,6 @@ public class FakeSampleStream implements SampleStream { * return every time readData is called. This should usually end with {@link * FakeSampleStreamItem#END_OF_STREAM_ITEM}. */ - // nullness annotations are not applicable to outer types - @SuppressWarnings("nullness:nullness.on.outer") public FakeSampleStream( @Nullable MediaSourceEventListener.EventDispatcher mediaSourceEventDispatcher, DrmSessionManager drmSessionManager,