From 8faac0344b4340fbd34e623620da15575a67a4f7 Mon Sep 17 00:00:00 2001 From: tonihei Date: Thu, 27 Jun 2019 12:08:23 +0100 Subject: [PATCH] Fix checkerframework 2.8.2 warnings. The updated version issues more warnings than before. Most of the changes are related to annotation placement. PiperOrigin-RevId: 255371743 --- .../ext/cast/ReceiverAppStateUpdate.java | 28 +++++++++---------- .../exoplayer2/ext/gvr/GvrPlayerActivity.java | 12 ++++---- .../DefaultPlaybackSessionManager.java | 2 +- .../exoplayer2/analytics/PlaybackStats.java | 3 +- .../analytics/PlaybackStatsListener.java | 15 +++++----- .../source/DecryptableSampleQueueReader.java | 2 +- .../upstream/ByteArrayDataSink.java | 2 +- .../upstream/DefaultBandwidthMeter.java | 2 +- .../cache/CacheFileMetadataIndex.java | 2 +- .../upstream/cache/SimpleCache.java | 2 +- .../exoplayer2/ui/TrackSelectionView.java | 2 +- .../ui/spherical/CanvasRenderer.java | 4 +-- .../ui/spherical/ProjectionRenderer.java | 2 +- 13 files changed, 39 insertions(+), 39 deletions(-) diff --git a/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/ReceiverAppStateUpdate.java b/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/ReceiverAppStateUpdate.java index 8cb6056340..c1b12428d4 100644 --- a/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/ReceiverAppStateUpdate.java +++ b/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/ReceiverAppStateUpdate.java @@ -110,20 +110,20 @@ public final class ReceiverAppStateUpdate { public static final class Builder { private final long sequenceNumber; - @MonotonicNonNull private Boolean playWhenReady; - @MonotonicNonNull private Integer playbackState; - @MonotonicNonNull private List items; - @MonotonicNonNull private Integer repeatMode; - @MonotonicNonNull private Boolean shuffleModeEnabled; - @MonotonicNonNull private Boolean isLoading; - @MonotonicNonNull private PlaybackParameters playbackParameters; - @MonotonicNonNull private TrackSelectionParameters trackSelectionParameters; - @MonotonicNonNull private String errorMessage; - @MonotonicNonNull private Integer discontinuityReason; - @MonotonicNonNull private UUID currentPlayingItemUuid; - @MonotonicNonNull private String currentPlayingPeriodId; - @MonotonicNonNull private Long currentPlaybackPositionMs; - @MonotonicNonNull private List shuffleOrder; + private @MonotonicNonNull Boolean playWhenReady; + private @MonotonicNonNull Integer playbackState; + private @MonotonicNonNull List items; + private @MonotonicNonNull Integer repeatMode; + private @MonotonicNonNull Boolean shuffleModeEnabled; + private @MonotonicNonNull Boolean isLoading; + private @MonotonicNonNull PlaybackParameters playbackParameters; + private @MonotonicNonNull TrackSelectionParameters trackSelectionParameters; + private @MonotonicNonNull String errorMessage; + private @MonotonicNonNull Integer discontinuityReason; + private @MonotonicNonNull UUID currentPlayingItemUuid; + private @MonotonicNonNull String currentPlayingPeriodId; + private @MonotonicNonNull Long currentPlaybackPositionMs; + private @MonotonicNonNull List shuffleOrder; private Map mediaItemsInformation; private Builder(long sequenceNumber) { diff --git a/extensions/gvr/src/main/java/com/google/android/exoplayer2/ext/gvr/GvrPlayerActivity.java b/extensions/gvr/src/main/java/com/google/android/exoplayer2/ext/gvr/GvrPlayerActivity.java index 38fa3a36e5..e22c97859a 100644 --- a/extensions/gvr/src/main/java/com/google/android/exoplayer2/ext/gvr/GvrPlayerActivity.java +++ b/extensions/gvr/src/main/java/com/google/android/exoplayer2/ext/gvr/GvrPlayerActivity.java @@ -61,12 +61,12 @@ public abstract class GvrPlayerActivity extends GvrActivity { private final Handler mainHandler; @Nullable private Player player; - @MonotonicNonNull private GlViewGroup glView; - @MonotonicNonNull private ControllerManager controllerManager; - @MonotonicNonNull private SurfaceTexture surfaceTexture; - @MonotonicNonNull private Surface surface; - @MonotonicNonNull private SceneRenderer scene; - @MonotonicNonNull private PlayerControlView playerControl; + private @MonotonicNonNull GlViewGroup glView; + private @MonotonicNonNull ControllerManager controllerManager; + private @MonotonicNonNull SurfaceTexture surfaceTexture; + private @MonotonicNonNull Surface surface; + private @MonotonicNonNull SceneRenderer scene; + private @MonotonicNonNull PlayerControlView playerControl; public GvrPlayerActivity() { mainHandler = new Handler(Looper.getMainLooper()); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/analytics/DefaultPlaybackSessionManager.java b/library/core/src/main/java/com/google/android/exoplayer2/analytics/DefaultPlaybackSessionManager.java index 4ac7ad6506..183a74544d 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/analytics/DefaultPlaybackSessionManager.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/analytics/DefaultPlaybackSessionManager.java @@ -46,7 +46,7 @@ public final class DefaultPlaybackSessionManager implements PlaybackSessionManag private final Timeline.Period period; private final HashMap sessions; - @MonotonicNonNull private Listener listener; + private @MonotonicNonNull Listener listener; private Timeline currentTimeline; @Nullable private MediaPeriodId currentMediaPeriodId; @Nullable private String activeSessionId; diff --git a/library/core/src/main/java/com/google/android/exoplayer2/analytics/PlaybackStats.java b/library/core/src/main/java/com/google/android/exoplayer2/analytics/PlaybackStats.java index f633bfbf8e..ed127bc550 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/analytics/PlaybackStats.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/analytics/PlaybackStats.java @@ -502,8 +502,7 @@ public final class PlaybackStats { * @return The {@link PlaybackState} at that time, or {@link #PLAYBACK_STATE_NOT_STARTED} if the * given time is before the first known playback state in the history. */ - @PlaybackState - public int getPlaybackStateAtTime(long realtimeMs) { + public @PlaybackState int getPlaybackStateAtTime(long realtimeMs) { @PlaybackState int state = PLAYBACK_STATE_NOT_STARTED; for (Pair timeAndState : playbackStateHistory) { if (timeAndState.first.realtimeMs > realtimeMs) { diff --git a/library/core/src/main/java/com/google/android/exoplayer2/analytics/PlaybackStatsListener.java b/library/core/src/main/java/com/google/android/exoplayer2/analytics/PlaybackStatsListener.java index 8c58133704..6444b4747f 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/analytics/PlaybackStatsListener.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/analytics/PlaybackStatsListener.java @@ -452,7 +452,7 @@ public final class PlaybackStatsListener private int nonFatalErrorCount; // Current player state tracking. - @PlaybackState private int currentPlaybackState; + private @PlaybackState int currentPlaybackState; private long currentPlaybackStateStartTimeMs; private boolean isSeeking; private boolean isForeground; @@ -713,8 +713,6 @@ public final class PlaybackStatsListener * * @param isFinal Whether this is the final build and no further events are expected. */ - // TODO(b/133387873): incompatible types in conditional expression. - @SuppressWarnings("nullness:conditional.type.incompatible") public PlaybackStats build(boolean isFinal) { long[] playbackStateDurationsMs = this.playbackStateDurationsMs; List mediaTimeHistory = this.mediaTimeHistory; @@ -739,6 +737,10 @@ public final class PlaybackStatsListener : playbackStateDurationsMs[PlaybackStats.PLAYBACK_STATE_JOINING_FOREGROUND]; boolean hasBackgroundJoin = playbackStateDurationsMs[PlaybackStats.PLAYBACK_STATE_JOINING_BACKGROUND] > 0; + List> videoHistory = + isFinal ? videoFormatHistory : new ArrayList<>(videoFormatHistory); + List> audioHistory = + isFinal ? audioFormatHistory : new ArrayList<>(audioFormatHistory); return new PlaybackStats( /* playbackCount= */ 1, playbackStateDurationsMs, @@ -757,8 +759,8 @@ public final class PlaybackStatsListener rebufferCount, maxRebufferTimeMs, /* adPlaybackCount= */ isAd ? 1 : 0, - isFinal ? videoFormatHistory : new ArrayList<>(videoFormatHistory), - isFinal ? audioFormatHistory : new ArrayList<>(audioFormatHistory), + videoHistory, + audioHistory, videoFormatHeightTimeMs, videoFormatHeightTimeProduct, videoFormatBitrateTimeMs, @@ -826,8 +828,7 @@ public final class PlaybackStatsListener } } - @PlaybackState - private int resolveNewPlaybackState() { + private @PlaybackState int resolveNewPlaybackState() { if (isSuspended) { // Keep VIDEO_STATE_ENDED if playback naturally ended (or progressed to next item). return currentPlaybackState == PlaybackStats.PLAYBACK_STATE_ENDED diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/DecryptableSampleQueueReader.java b/library/core/src/main/java/com/google/android/exoplayer2/source/DecryptableSampleQueueReader.java index 12db27d68e..4f0c5b87aa 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/DecryptableSampleQueueReader.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/DecryptableSampleQueueReader.java @@ -39,7 +39,7 @@ public final class DecryptableSampleQueueReader { private final DrmSessionManager sessionManager; private final FormatHolder formatHolder; private final boolean playClearSamplesWithoutKeys; - @MonotonicNonNull private Format currentFormat; + private @MonotonicNonNull Format currentFormat; @Nullable private DrmSession currentSession; /** diff --git a/library/core/src/main/java/com/google/android/exoplayer2/upstream/ByteArrayDataSink.java b/library/core/src/main/java/com/google/android/exoplayer2/upstream/ByteArrayDataSink.java index a9f9da0a95..2ba6ab4c69 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/upstream/ByteArrayDataSink.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/upstream/ByteArrayDataSink.java @@ -29,7 +29,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; */ public final class ByteArrayDataSink implements DataSink { - @MonotonicNonNull private ByteArrayOutputStream stream; + private @MonotonicNonNull ByteArrayOutputStream stream; @Override public void open(DataSpec dataSpec) { diff --git a/library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultBandwidthMeter.java b/library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultBandwidthMeter.java index b2333516a8..4145d9a1c7 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultBandwidthMeter.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultBandwidthMeter.java @@ -413,7 +413,7 @@ public final class DefaultBandwidthMeter implements BandwidthMeter, TransferList */ private static class ConnectivityActionReceiver extends BroadcastReceiver { - @MonotonicNonNull private static ConnectivityActionReceiver staticInstance; + private static @MonotonicNonNull ConnectivityActionReceiver staticInstance; private final Handler mainHandler; private final ArrayList> bandwidthMeters; diff --git a/library/core/src/main/java/com/google/android/exoplayer2/upstream/cache/CacheFileMetadataIndex.java b/library/core/src/main/java/com/google/android/exoplayer2/upstream/cache/CacheFileMetadataIndex.java index 2a8b393ed3..2488ae0ff3 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/upstream/cache/CacheFileMetadataIndex.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/upstream/cache/CacheFileMetadataIndex.java @@ -59,7 +59,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; private final DatabaseProvider databaseProvider; - @MonotonicNonNull private String tableName; + private @MonotonicNonNull String tableName; /** * Deletes index data for the specified cache. diff --git a/library/core/src/main/java/com/google/android/exoplayer2/upstream/cache/SimpleCache.java b/library/core/src/main/java/com/google/android/exoplayer2/upstream/cache/SimpleCache.java index 1d4481b5cc..ea37612c88 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/upstream/cache/SimpleCache.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/upstream/cache/SimpleCache.java @@ -75,7 +75,7 @@ public final class SimpleCache implements Cache { private long uid; private long totalSpace; private boolean released; - @MonotonicNonNull private CacheException initializationException; + private @MonotonicNonNull CacheException initializationException; /** * Returns whether {@code cacheFolder} is locked by a {@link SimpleCache} instance. To unlock the diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/TrackSelectionView.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/TrackSelectionView.java index c55cf31149..02ed0a534e 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/TrackSelectionView.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/TrackSelectionView.java @@ -67,7 +67,7 @@ public class TrackSelectionView extends LinearLayout { private TrackNameProvider trackNameProvider; private CheckedTextView[][] trackViews; - @MonotonicNonNull private MappedTrackInfo mappedTrackInfo; + private @MonotonicNonNull MappedTrackInfo mappedTrackInfo; private int rendererIndex; private TrackGroupArray trackGroups; private boolean isDisabled; diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/CanvasRenderer.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/CanvasRenderer.java index 3d7e57bbd2..6ef9d4907d 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/CanvasRenderer.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/CanvasRenderer.java @@ -101,8 +101,8 @@ public final class CanvasRenderer { // GL initialization. The client of this class acquires a Canvas from the Surface, writes to it // and posts it. This marks the Surface as dirty. The GL code then updates the SurfaceTexture // when rendering only if it is dirty. - @MonotonicNonNull private SurfaceTexture displaySurfaceTexture; - @MonotonicNonNull private Surface displaySurface; + private @MonotonicNonNull SurfaceTexture displaySurfaceTexture; + private @MonotonicNonNull Surface displaySurface; public CanvasRenderer() { vertexBuffer = GlUtil.createBuffer(COORDS_PER_VERTEX * VERTEX_COUNT); diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/ProjectionRenderer.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/ProjectionRenderer.java index 8a211d0879..9a8c787e77 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/ProjectionRenderer.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/ProjectionRenderer.java @@ -19,11 +19,11 @@ import static com.google.android.exoplayer2.util.GlUtil.checkGlError; import android.opengl.GLES11Ext; import android.opengl.GLES20; +import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.util.GlUtil; import com.google.android.exoplayer2.video.spherical.Projection; import java.nio.FloatBuffer; -import org.checkerframework.checker.nullness.qual.Nullable; /** * Utility class to render spherical meshes for video or images. Call {@link #init()} on the GL