diff --git a/extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/AdTagLoader.java b/extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/AdTagLoader.java index 2d446527a1..8819ea8d13 100644 --- a/extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/AdTagLoader.java +++ b/extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/AdTagLoader.java @@ -23,6 +23,7 @@ import static com.google.android.exoplayer2.ext.ima.ImaUtil.getImaLooper; import static com.google.android.exoplayer2.util.Assertions.checkNotNull; import static com.google.android.exoplayer2.util.Assertions.checkState; import static java.lang.Math.max; +import static java.lang.annotation.ElementType.TYPE_USE; import android.content.Context; import android.net.Uri; @@ -69,6 +70,7 @@ import java.io.IOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -108,6 +110,7 @@ import java.util.Map; /** The state of ad playback. */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({IMA_AD_STATE_NONE, IMA_AD_STATE_PLAYING, IMA_AD_STATE_PAUSED}) private @interface ImaAdState {} diff --git a/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/PlayerCommandQueue.java b/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/PlayerCommandQueue.java index c65431a857..1bbfef7178 100644 --- a/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/PlayerCommandQueue.java +++ b/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/PlayerCommandQueue.java @@ -16,6 +16,7 @@ package com.google.android.exoplayer2.ext.media2; import static com.google.android.exoplayer2.util.Util.postOrRun; +import static java.lang.annotation.ElementType.TYPE_USE; import static java.util.concurrent.TimeUnit.MILLISECONDS; import android.os.Handler; @@ -32,6 +33,7 @@ import com.google.common.util.concurrent.SettableFuture; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Deque; @@ -103,6 +105,7 @@ import java.util.concurrent.Callable; /** List of session commands whose result would be set after the command is finished. */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef( value = { COMMAND_CODE_PLAYER_SET_AUDIO_ATTRIBUTES, @@ -129,6 +132,7 @@ import java.util.concurrent.Callable; /** Command whose result would be set later via listener after the command is finished. */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef( value = {COMMAND_CODE_PLAYER_PREPARE, COMMAND_CODE_PLAYER_PLAY, COMMAND_CODE_PLAYER_PAUSE}) public @interface AsyncCommandCode {} diff --git a/library/common/src/main/java/com/google/android/exoplayer2/DeviceInfo.java b/library/common/src/main/java/com/google/android/exoplayer2/DeviceInfo.java index 1288e19aa9..c0f8931c29 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/DeviceInfo.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/DeviceInfo.java @@ -87,6 +87,7 @@ public final class DeviceInfo implements Bundleable { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({FIELD_PLAYBACK_TYPE, FIELD_MIN_VOLUME, FIELD_MAX_VOLUME}) private @interface FieldNumber {} diff --git a/library/common/src/main/java/com/google/android/exoplayer2/Format.java b/library/common/src/main/java/com/google/android/exoplayer2/Format.java index 6d68e5a919..7d17a417bb 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/Format.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/Format.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.os.Bundle; import androidx.annotation.IntDef; import androidx.annotation.Nullable; @@ -28,6 +30,7 @@ import com.google.common.base.Joiner; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -1397,6 +1400,7 @@ public final class Format implements Bundleable { // Bundleable implementation. @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ FIELD_ID, FIELD_LABEL, diff --git a/library/common/src/main/java/com/google/android/exoplayer2/HeartRating.java b/library/common/src/main/java/com/google/android/exoplayer2/HeartRating.java index 8520125c38..37c248d710 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/HeartRating.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/HeartRating.java @@ -16,6 +16,7 @@ package com.google.android.exoplayer2; import static com.google.android.exoplayer2.util.Assertions.checkArgument; +import static java.lang.annotation.ElementType.TYPE_USE; import android.os.Bundle; import androidx.annotation.IntDef; @@ -24,6 +25,7 @@ import com.google.common.base.Objects; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * A rating expressed as "heart" or "no heart". It can be used to indicate whether the content is a @@ -80,6 +82,7 @@ public final class HeartRating extends Rating { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({FIELD_RATING_TYPE, FIELD_RATED, FIELD_IS_HEART}) private @interface FieldNumber {} diff --git a/library/common/src/main/java/com/google/android/exoplayer2/MediaItem.java b/library/common/src/main/java/com/google/android/exoplayer2/MediaItem.java index 6b217531dd..9c027dd050 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/MediaItem.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/MediaItem.java @@ -17,6 +17,7 @@ package com.google.android.exoplayer2; import static com.google.android.exoplayer2.util.Assertions.checkNotNull; import static com.google.android.exoplayer2.util.Assertions.checkState; +import static java.lang.annotation.ElementType.TYPE_USE; import android.net.Uri; import android.os.Bundle; @@ -31,6 +32,7 @@ import com.google.common.collect.ImmutableMap; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -1182,6 +1184,7 @@ public final class MediaItem implements Bundleable { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ FIELD_TARGET_OFFSET_MS, FIELD_MIN_OFFSET_MS, @@ -1590,6 +1593,7 @@ public final class MediaItem implements Bundleable { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ FIELD_START_POSITION_MS, FIELD_END_POSITION_MS, @@ -1735,6 +1739,7 @@ public final class MediaItem implements Bundleable { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ FIELD_MEDIA_ID, FIELD_LIVE_CONFIGURATION, diff --git a/library/common/src/main/java/com/google/android/exoplayer2/MediaMetadata.java b/library/common/src/main/java/com/google/android/exoplayer2/MediaMetadata.java index e60647ad31..e6b0502fa5 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/MediaMetadata.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/MediaMetadata.java @@ -828,6 +828,7 @@ public final class MediaMetadata implements Bundleable { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ FIELD_TITLE, FIELD_ARTIST, diff --git a/library/common/src/main/java/com/google/android/exoplayer2/PercentageRating.java b/library/common/src/main/java/com/google/android/exoplayer2/PercentageRating.java index 3bdb1dd11c..3c3451dac5 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/PercentageRating.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/PercentageRating.java @@ -16,6 +16,7 @@ package com.google.android.exoplayer2; import static com.google.android.exoplayer2.util.Assertions.checkArgument; +import static java.lang.annotation.ElementType.TYPE_USE; import android.os.Bundle; import androidx.annotation.FloatRange; @@ -25,6 +26,7 @@ import com.google.common.base.Objects; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** A rating expressed as a percentage. */ public final class PercentageRating extends Rating { @@ -78,6 +80,7 @@ public final class PercentageRating extends Rating { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({FIELD_RATING_TYPE, FIELD_PERCENT}) private @interface FieldNumber {} diff --git a/library/common/src/main/java/com/google/android/exoplayer2/PlaybackParameters.java b/library/common/src/main/java/com/google/android/exoplayer2/PlaybackParameters.java index 8034944e17..5edb9af6b4 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/PlaybackParameters.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/PlaybackParameters.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.os.Bundle; import androidx.annotation.CheckResult; import androidx.annotation.FloatRange; @@ -25,6 +27,7 @@ import com.google.android.exoplayer2.util.Util; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** Parameters that apply to playback, including speed setting. */ public final class PlaybackParameters implements Bundleable { @@ -119,6 +122,7 @@ public final class PlaybackParameters implements Bundleable { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({FIELD_SPEED, FIELD_PITCH}) private @interface FieldNumber {} diff --git a/library/common/src/main/java/com/google/android/exoplayer2/Player.java b/library/common/src/main/java/com/google/android/exoplayer2/Player.java index 106882076c..17a6532a6f 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/Player.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/Player.java @@ -600,6 +600,7 @@ public interface Player { // Bundleable implementation. @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ FIELD_MEDIA_ITEM_INDEX, FIELD_MEDIA_ITEM, @@ -894,6 +895,7 @@ public interface Player { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({FIELD_COMMANDS}) private @interface FieldNumber {} diff --git a/library/common/src/main/java/com/google/android/exoplayer2/Rating.java b/library/common/src/main/java/com/google/android/exoplayer2/Rating.java index 69886aafc3..cde5b47911 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/Rating.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/Rating.java @@ -15,11 +15,14 @@ */ package com.google.android.exoplayer2; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.os.Bundle; import androidx.annotation.IntDef; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * A rating for media content. The style of a rating can be one of {@link HeartRating}, {@link @@ -40,6 +43,7 @@ public abstract class Rating implements Bundleable { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ RATING_TYPE_UNSET, RATING_TYPE_HEART, @@ -57,6 +61,7 @@ public abstract class Rating implements Bundleable { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({FIELD_RATING_TYPE}) private @interface FieldNumber {} diff --git a/library/common/src/main/java/com/google/android/exoplayer2/StarRating.java b/library/common/src/main/java/com/google/android/exoplayer2/StarRating.java index 05736766b5..0849a20f2d 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/StarRating.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/StarRating.java @@ -16,6 +16,7 @@ package com.google.android.exoplayer2; import static com.google.android.exoplayer2.util.Assertions.checkArgument; +import static java.lang.annotation.ElementType.TYPE_USE; import android.os.Bundle; import androidx.annotation.FloatRange; @@ -26,6 +27,7 @@ import com.google.common.base.Objects; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** A rating expressed as a fractional number of stars. */ public final class StarRating extends Rating { @@ -105,6 +107,7 @@ public final class StarRating extends Rating { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({FIELD_RATING_TYPE, FIELD_MAX_STARS, FIELD_STAR_RATING}) private @interface FieldNumber {} diff --git a/library/common/src/main/java/com/google/android/exoplayer2/ThumbRating.java b/library/common/src/main/java/com/google/android/exoplayer2/ThumbRating.java index cc4b404f2c..d460efc9e3 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/ThumbRating.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/ThumbRating.java @@ -16,6 +16,7 @@ package com.google.android.exoplayer2; import static com.google.android.exoplayer2.util.Assertions.checkArgument; +import static java.lang.annotation.ElementType.TYPE_USE; import android.os.Bundle; import androidx.annotation.IntDef; @@ -24,6 +25,7 @@ import com.google.common.base.Objects; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** A rating expressed as "thumbs up" or "thumbs down". */ public final class ThumbRating extends Rating { @@ -77,6 +79,7 @@ public final class ThumbRating extends Rating { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({FIELD_RATING_TYPE, FIELD_RATED, FIELD_IS_THUMBS_UP}) private @interface FieldNumber {} diff --git a/library/common/src/main/java/com/google/android/exoplayer2/Timeline.java b/library/common/src/main/java/com/google/android/exoplayer2/Timeline.java index ad5eef25c4..8a7c9b5edd 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/Timeline.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/Timeline.java @@ -20,6 +20,7 @@ import static com.google.android.exoplayer2.util.Assertions.checkArgument; import static com.google.android.exoplayer2.util.Assertions.checkState; import static java.lang.Math.max; import static java.lang.Math.min; +import static java.lang.annotation.ElementType.TYPE_USE; import android.net.Uri; import android.os.Bundle; @@ -37,6 +38,7 @@ import com.google.errorprone.annotations.InlineMe; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.ArrayList; import java.util.List; @@ -413,6 +415,7 @@ public abstract class Timeline implements Bundleable { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ FIELD_MEDIA_ITEM, FIELD_PRESENTATION_START_TIME_MS, @@ -896,6 +899,7 @@ public abstract class Timeline implements Bundleable { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ FIELD_WINDOW_INDEX, FIELD_DURATION_US, @@ -1351,6 +1355,7 @@ public abstract class Timeline implements Bundleable { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ FIELD_WINDOWS, FIELD_PERIODS, diff --git a/library/common/src/main/java/com/google/android/exoplayer2/TracksInfo.java b/library/common/src/main/java/com/google/android/exoplayer2/TracksInfo.java index 5a46825692..830cc3725c 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/TracksInfo.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/TracksInfo.java @@ -20,6 +20,7 @@ import static com.google.android.exoplayer2.util.Assertions.checkNotNull; import static com.google.android.exoplayer2.util.BundleableUtil.fromBundleNullableList; import static com.google.android.exoplayer2.util.BundleableUtil.fromNullableBundle; import static com.google.android.exoplayer2.util.BundleableUtil.toBundleArrayList; +import static java.lang.annotation.ElementType.TYPE_USE; import android.os.Bundle; import androidx.annotation.IntDef; @@ -31,6 +32,7 @@ import com.google.common.primitives.Booleans; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.Arrays; import java.util.List; @@ -193,6 +195,7 @@ public final class TracksInfo implements Bundleable { // Bundleable implementation. @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ FIELD_TRACK_GROUP, FIELD_TRACK_SUPPORT, @@ -326,6 +329,7 @@ public final class TracksInfo implements Bundleable { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ FIELD_TRACK_GROUP_INFOS, }) diff --git a/library/common/src/main/java/com/google/android/exoplayer2/audio/AudioAttributes.java b/library/common/src/main/java/com/google/android/exoplayer2/audio/AudioAttributes.java index 0ae911cf08..e60d80684e 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/audio/AudioAttributes.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/audio/AudioAttributes.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.audio; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.os.Bundle; import androidx.annotation.DoNotInline; import androidx.annotation.IntDef; @@ -26,6 +28,7 @@ import com.google.android.exoplayer2.util.Util; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.lang.reflect.Method; /** @@ -181,6 +184,7 @@ public final class AudioAttributes implements Bundleable { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ FIELD_CONTENT_TYPE, FIELD_FLAGS, diff --git a/library/common/src/main/java/com/google/android/exoplayer2/source/TrackGroup.java b/library/common/src/main/java/com/google/android/exoplayer2/source/TrackGroup.java index 7b9848024b..575b80519f 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/source/TrackGroup.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/source/TrackGroup.java @@ -16,6 +16,7 @@ package com.google.android.exoplayer2.source; import static com.google.android.exoplayer2.util.Assertions.checkArgument; +import static java.lang.annotation.ElementType.TYPE_USE; import android.os.Bundle; import androidx.annotation.CheckResult; @@ -31,6 +32,7 @@ import com.google.common.collect.Lists; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.Arrays; import java.util.List; @@ -138,6 +140,7 @@ public final class TrackGroup implements Bundleable { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({FIELD_FORMATS, FIELD_ID}) private @interface FieldNumber {} diff --git a/library/common/src/main/java/com/google/android/exoplayer2/source/TrackGroupArray.java b/library/common/src/main/java/com/google/android/exoplayer2/source/TrackGroupArray.java index 9a7ff4d290..c00a45e29f 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/source/TrackGroupArray.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/source/TrackGroupArray.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.source; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.os.Bundle; import androidx.annotation.IntDef; import androidx.annotation.Nullable; @@ -26,6 +28,7 @@ import com.google.common.collect.ImmutableList; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.List; /** An immutable array of {@link TrackGroup}s. */ @@ -105,6 +108,7 @@ public final class TrackGroupArray implements Bundleable { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ FIELD_TRACK_GROUPS, }) diff --git a/library/common/src/main/java/com/google/android/exoplayer2/source/ads/AdPlaybackState.java b/library/common/src/main/java/com/google/android/exoplayer2/source/ads/AdPlaybackState.java index 46a1e6526b..3e020a509d 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/source/ads/AdPlaybackState.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/source/ads/AdPlaybackState.java @@ -18,6 +18,7 @@ package com.google.android.exoplayer2.source.ads; import static com.google.android.exoplayer2.util.Assertions.checkArgument; import static com.google.android.exoplayer2.util.Assertions.checkState; import static java.lang.Math.max; +import static java.lang.annotation.ElementType.TYPE_USE; import android.net.Uri; import android.os.Bundle; @@ -32,6 +33,7 @@ import com.google.android.exoplayer2.util.Util; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.ArrayList; import java.util.Arrays; import org.checkerframework.checker.nullness.compatqual.NullableType; @@ -344,6 +346,7 @@ public final class AdPlaybackState implements Bundleable { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ FIELD_TIME_US, FIELD_COUNT, @@ -914,6 +917,7 @@ public final class AdPlaybackState implements Bundleable { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ FIELD_AD_GROUPS, FIELD_AD_RESUME_POSITION_US, diff --git a/library/common/src/main/java/com/google/android/exoplayer2/text/Cue.java b/library/common/src/main/java/com/google/android/exoplayer2/text/Cue.java index 47cc0018ee..cbd260ad4f 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/text/Cue.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/text/Cue.java @@ -961,6 +961,7 @@ public final class Cue implements Bundleable { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ FIELD_TEXT, FIELD_TEXT_ALIGNMENT, diff --git a/library/common/src/main/java/com/google/android/exoplayer2/trackselection/TrackSelectionOverrides.java b/library/common/src/main/java/com/google/android/exoplayer2/trackselection/TrackSelectionOverrides.java index a5390fbccd..20baeb466e 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/trackselection/TrackSelectionOverrides.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/trackselection/TrackSelectionOverrides.java @@ -18,6 +18,7 @@ package com.google.android.exoplayer2.trackselection; import static com.google.android.exoplayer2.util.Assertions.checkNotNull; import static com.google.android.exoplayer2.util.BundleableUtil.fromBundleNullableList; import static com.google.android.exoplayer2.util.BundleableUtil.toBundleArrayList; +import static java.lang.annotation.ElementType.TYPE_USE; import static java.util.Collections.max; import static java.util.Collections.min; @@ -35,6 +36,7 @@ import com.google.common.primitives.Ints; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -183,6 +185,7 @@ public final class TrackSelectionOverrides implements Bundleable { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ FIELD_TRACK_GROUP, FIELD_TRACKS, @@ -268,6 +271,7 @@ public final class TrackSelectionOverrides implements Bundleable { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ FIELD_OVERRIDES, }) diff --git a/library/common/src/main/java/com/google/android/exoplayer2/trackselection/TrackSelectionParameters.java b/library/common/src/main/java/com/google/android/exoplayer2/trackselection/TrackSelectionParameters.java index f114c81500..a3b22b4a3b 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/trackselection/TrackSelectionParameters.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/trackselection/TrackSelectionParameters.java @@ -18,6 +18,7 @@ package com.google.android.exoplayer2.trackselection; import static com.google.android.exoplayer2.util.Assertions.checkNotNull; import static com.google.android.exoplayer2.util.BundleableUtil.fromNullableBundle; import static com.google.common.base.MoreObjects.firstNonNull; +import static java.lang.annotation.ElementType.TYPE_USE; import android.content.Context; import android.graphics.Point; @@ -36,6 +37,7 @@ import com.google.common.primitives.Ints; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.Locale; import java.util.Set; import org.checkerframework.checker.initialization.qual.UnknownInitialization; @@ -978,6 +980,7 @@ public class TrackSelectionParameters implements Bundleable { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ FIELD_PREFERRED_AUDIO_LANGUAGES, FIELD_PREFERRED_AUDIO_ROLE_FLAGS, diff --git a/library/common/src/main/java/com/google/android/exoplayer2/video/ColorInfo.java b/library/common/src/main/java/com/google/android/exoplayer2/video/ColorInfo.java index 17ca09a747..8ca9121dbf 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/video/ColorInfo.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/video/ColorInfo.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.video; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.os.Bundle; import androidx.annotation.IntDef; import androidx.annotation.Nullable; @@ -24,6 +26,7 @@ import com.google.android.exoplayer2.Format; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.Arrays; import org.checkerframework.dataflow.qual.Pure; @@ -164,6 +167,7 @@ public final class ColorInfo implements Bundleable { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ FIELD_COLOR_SPACE, FIELD_COLOR_RANGE, diff --git a/library/common/src/main/java/com/google/android/exoplayer2/video/VideoSize.java b/library/common/src/main/java/com/google/android/exoplayer2/video/VideoSize.java index d6e16a44ae..2ae09d9ee5 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/video/VideoSize.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/video/VideoSize.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.video; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.os.Bundle; import androidx.annotation.FloatRange; import androidx.annotation.IntDef; @@ -24,6 +26,7 @@ import com.google.android.exoplayer2.Bundleable; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** Represents the video size. */ public final class VideoSize implements Bundleable { @@ -129,6 +132,7 @@ public final class VideoSize implements Bundleable { // Bundleable implementation. @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ FIELD_WIDTH, FIELD_HEIGHT, diff --git a/library/core/src/main/java/com/google/android/exoplayer2/AudioFocusManager.java b/library/core/src/main/java/com/google/android/exoplayer2/AudioFocusManager.java index 6ab7e4fc4a..276fcc914a 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/AudioFocusManager.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/AudioFocusManager.java @@ -16,6 +16,7 @@ package com.google.android.exoplayer2; import static com.google.android.exoplayer2.util.Assertions.checkNotNull; +import static java.lang.annotation.ElementType.TYPE_USE; import android.content.Context; import android.media.AudioFocusRequest; @@ -32,6 +33,7 @@ import com.google.android.exoplayer2.util.Util; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** Manages requesting and responding to changes in audio focus. */ @@ -76,6 +78,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** Audio focus state. */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ AUDIO_FOCUS_STATE_NO_FOCUS, AUDIO_FOCUS_STATE_HAVE_FOCUS, diff --git a/library/core/src/main/java/com/google/android/exoplayer2/audio/AudioTimestampPoller.java b/library/core/src/main/java/com/google/android/exoplayer2/audio/AudioTimestampPoller.java index 6b34d7f13d..537cd0791c 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/audio/AudioTimestampPoller.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/audio/AudioTimestampPoller.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.audio; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.annotation.TargetApi; import android.media.AudioTimestamp; import android.media.AudioTrack; @@ -26,6 +28,7 @@ import com.google.android.exoplayer2.util.Util; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * Polls the {@link AudioTrack} timestamp, if the platform supports it, taking care of polling at @@ -49,6 +52,7 @@ import java.lang.annotation.RetentionPolicy; /** Timestamp polling states. */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ STATE_INITIALIZING, STATE_TIMESTAMP, diff --git a/library/core/src/main/java/com/google/android/exoplayer2/audio/AudioTrackPositionTracker.java b/library/core/src/main/java/com/google/android/exoplayer2/audio/AudioTrackPositionTracker.java index 9c8186ffa6..4a24fcee17 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/audio/AudioTrackPositionTracker.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/audio/AudioTrackPositionTracker.java @@ -18,6 +18,7 @@ package com.google.android.exoplayer2.audio; import static com.google.android.exoplayer2.util.Util.castNonNull; import static java.lang.Math.max; import static java.lang.Math.min; +import static java.lang.annotation.ElementType.TYPE_USE; import android.media.AudioTimestamp; import android.media.AudioTrack; @@ -30,6 +31,7 @@ import com.google.android.exoplayer2.util.Util; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.lang.reflect.Method; /** @@ -111,6 +113,7 @@ import java.lang.reflect.Method; /** {@link AudioTrack} playback states. */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({PLAYSTATE_STOPPED, PLAYSTATE_PAUSED, PLAYSTATE_PLAYING}) private @interface PlayState {} /** @see AudioTrack#PLAYSTATE_STOPPED */ diff --git a/library/core/src/main/java/com/google/android/exoplayer2/audio/DecoderAudioRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/audio/DecoderAudioRenderer.java index a33c7c6a3a..20a87e6a9e 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/audio/DecoderAudioRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/audio/DecoderAudioRenderer.java @@ -21,6 +21,7 @@ import static com.google.android.exoplayer2.decoder.DecoderReuseEvaluation.REUSE import static com.google.android.exoplayer2.source.SampleStream.FLAG_REQUIRE_FORMAT; import static com.google.common.base.MoreObjects.firstNonNull; import static java.lang.Math.max; +import static java.lang.annotation.ElementType.TYPE_USE; import android.os.Handler; import android.os.SystemClock; @@ -93,6 +94,7 @@ public abstract class DecoderAudioRenderer< @Documented @Retention(RetentionPolicy.SOURCE) + @java.lang.annotation.Target(TYPE_USE) @IntDef({ REINITIALIZATION_STATE_NONE, REINITIALIZATION_STATE_SIGNAL_END_OF_STREAM, diff --git a/library/core/src/main/java/com/google/android/exoplayer2/audio/SilenceSkippingAudioProcessor.java b/library/core/src/main/java/com/google/android/exoplayer2/audio/SilenceSkippingAudioProcessor.java index c571ce7500..cae3c00a00 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/audio/SilenceSkippingAudioProcessor.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/audio/SilenceSkippingAudioProcessor.java @@ -16,6 +16,7 @@ package com.google.android.exoplayer2.audio; import static java.lang.Math.min; +import static java.lang.annotation.ElementType.TYPE_USE; import androidx.annotation.IntDef; import com.google.android.exoplayer2.C; @@ -24,6 +25,7 @@ import com.google.android.exoplayer2.util.Util; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.nio.ByteBuffer; /** @@ -51,6 +53,7 @@ public final class SilenceSkippingAudioProcessor extends BaseAudioProcessor { /** Trimming states. */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ STATE_NOISY, STATE_MAYBE_SILENT, diff --git a/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/AsynchronousMediaCodecAdapter.java b/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/AsynchronousMediaCodecAdapter.java index 449833bc7d..b5d814eeb7 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/AsynchronousMediaCodecAdapter.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/AsynchronousMediaCodecAdapter.java @@ -16,6 +16,8 @@ package com.google.android.exoplayer2.mediacodec; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.media.MediaCodec; import android.media.MediaCrypto; import android.media.MediaFormat; @@ -36,6 +38,7 @@ import java.io.IOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.nio.ByteBuffer; /** @@ -124,6 +127,7 @@ import java.nio.ByteBuffer; @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({STATE_CREATED, STATE_INITIALIZED, STATE_SHUT_DOWN}) private @interface State {} diff --git a/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/DefaultMediaCodecAdapterFactory.java b/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/DefaultMediaCodecAdapterFactory.java index beef85fdbe..411d10ff53 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/DefaultMediaCodecAdapterFactory.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/DefaultMediaCodecAdapterFactory.java @@ -15,14 +15,18 @@ */ package com.google.android.exoplayer2.mediacodec; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.media.MediaCodec; import androidx.annotation.IntDef; import com.google.android.exoplayer2.util.Log; import com.google.android.exoplayer2.util.MimeTypes; import com.google.android.exoplayer2.util.Util; import java.io.IOException; +import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * The default {@link MediaCodecAdapter.Factory}. @@ -35,7 +39,9 @@ import java.lang.annotation.RetentionPolicy; */ public final class DefaultMediaCodecAdapterFactory implements MediaCodecAdapter.Factory { + @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({MODE_DEFAULT, MODE_ENABLED, MODE_DISABLED}) private @interface Mode {} diff --git a/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.java index 656ebe8fb0..71a2108b59 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.java @@ -29,6 +29,7 @@ import static com.google.android.exoplayer2.source.SampleStream.FLAG_REQUIRE_FOR import static com.google.android.exoplayer2.util.Assertions.checkNotNull; import static com.google.android.exoplayer2.util.Assertions.checkState; import static java.lang.Math.max; +import static java.lang.annotation.ElementType.TYPE_USE; import android.annotation.TargetApi; import android.media.MediaCodec; @@ -77,6 +78,7 @@ import com.google.android.exoplayer2.util.Util; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.ArrayDeque; @@ -210,6 +212,7 @@ public abstract class MediaCodecRenderer extends BaseRenderer { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ RECONFIGURATION_STATE_NONE, RECONFIGURATION_STATE_WRITE_PENDING, @@ -228,6 +231,7 @@ public abstract class MediaCodecRenderer extends BaseRenderer { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({DRAIN_STATE_NONE, DRAIN_STATE_SIGNAL_END_OF_STREAM, DRAIN_STATE_WAIT_END_OF_STREAM}) private @interface DrainState {} /** The codec is not being drained. */ @@ -239,6 +243,7 @@ public abstract class MediaCodecRenderer extends BaseRenderer { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ DRAIN_ACTION_NONE, DRAIN_ACTION_FLUSH, @@ -257,6 +262,7 @@ public abstract class MediaCodecRenderer extends BaseRenderer { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ ADAPTATION_WORKAROUND_MODE_NEVER, ADAPTATION_WORKAROUND_MODE_SAME_RESOLUTION, diff --git a/library/core/src/main/java/com/google/android/exoplayer2/text/ExoplayerCuesDecoder.java b/library/core/src/main/java/com/google/android/exoplayer2/text/ExoplayerCuesDecoder.java index 07b72ba185..ed085b0098 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/text/ExoplayerCuesDecoder.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/text/ExoplayerCuesDecoder.java @@ -18,14 +18,17 @@ package com.google.android.exoplayer2.text; import static com.google.android.exoplayer2.util.Assertions.checkArgument; import static com.google.android.exoplayer2.util.Assertions.checkNotNull; import static com.google.android.exoplayer2.util.Assertions.checkState; +import static java.lang.annotation.ElementType.TYPE_USE; import androidx.annotation.IntDef; import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.util.MimeTypes; import com.google.common.collect.ImmutableList; +import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.ArrayDeque; import java.util.Deque; import java.util.List; @@ -35,6 +38,8 @@ import java.util.List; * MimeTypes#TEXT_EXOPLAYER_CUES} */ public final class ExoplayerCuesDecoder implements SubtitleDecoder { + @Documented + @Target(TYPE_USE) @IntDef(value = {INPUT_BUFFER_AVAILABLE, INPUT_BUFFER_DEQUEUED, INPUT_BUFFER_QUEUED}) @Retention(RetentionPolicy.SOURCE) private @interface InputBufferState {} diff --git a/library/core/src/main/java/com/google/android/exoplayer2/text/TextRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/text/TextRenderer.java index 71cb716ca8..d68e0a307f 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/text/TextRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/text/TextRenderer.java @@ -17,6 +17,7 @@ package com.google.android.exoplayer2.text; import static com.google.android.exoplayer2.util.Assertions.checkNotNull; import static com.google.android.exoplayer2.util.Assertions.checkState; +import static java.lang.annotation.ElementType.TYPE_USE; import android.os.Handler; import android.os.Handler.Callback; @@ -36,6 +37,7 @@ import com.google.android.exoplayer2.util.Util; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.Collections; import java.util.List; @@ -52,6 +54,7 @@ public final class TextRenderer extends BaseRenderer implements Callback { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ REPLACEMENT_STATE_NONE, REPLACEMENT_STATE_SIGNAL_END_OF_STREAM, diff --git a/library/core/src/main/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.java b/library/core/src/main/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.java index f10f0b765a..ef0804feb0 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.java @@ -15,6 +15,7 @@ */ package com.google.android.exoplayer2.trackselection; +import static java.lang.annotation.ElementType.TYPE_USE; import static java.util.Collections.max; import android.annotation.SuppressLint; @@ -54,6 +55,7 @@ import com.google.common.primitives.Ints; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; @@ -1113,6 +1115,7 @@ public class DefaultTrackSelector extends MappingTrackSelector { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ FIELD_EXCEED_VIDEO_CONSTRAINTS_IF_NECESSARY, FIELD_ALLOW_VIDEO_MIXED_MIME_TYPE_ADAPTIVENESS, @@ -1373,6 +1376,7 @@ public class DefaultTrackSelector extends MappingTrackSelector { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ FIELD_GROUP_INDEX, FIELD_TRACKS, diff --git a/library/core/src/main/java/com/google/android/exoplayer2/upstream/Loader.java b/library/core/src/main/java/com/google/android/exoplayer2/upstream/Loader.java index 8c9d9caff1..84402b8c2e 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/upstream/Loader.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/upstream/Loader.java @@ -16,6 +16,7 @@ package com.google.android.exoplayer2.upstream; import static java.lang.Math.min; +import static java.lang.annotation.ElementType.TYPE_USE; import android.annotation.SuppressLint; import android.os.Handler; @@ -33,6 +34,7 @@ import java.io.IOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.concurrent.ExecutorService; import java.util.concurrent.atomic.AtomicBoolean; @@ -143,6 +145,7 @@ public final class Loader implements LoaderErrorThrower { /** Types of action that can be taken in response to a load error. */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ ACTION_TYPE_RETRY, ACTION_TYPE_RETRY_AND_RESET_ERROR_COUNT, diff --git a/library/core/src/main/java/com/google/android/exoplayer2/video/DecoderVideoRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/video/DecoderVideoRenderer.java index d1444eda15..0ddacf8b1a 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/video/DecoderVideoRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/video/DecoderVideoRenderer.java @@ -20,6 +20,7 @@ import static com.google.android.exoplayer2.decoder.DecoderReuseEvaluation.DISCA import static com.google.android.exoplayer2.decoder.DecoderReuseEvaluation.REUSE_RESULT_NO; import static com.google.android.exoplayer2.source.SampleStream.FLAG_REQUIRE_FORMAT; import static java.lang.Math.max; +import static java.lang.annotation.ElementType.TYPE_USE; import android.os.Handler; import android.os.SystemClock; @@ -35,7 +36,7 @@ import com.google.android.exoplayer2.ExoPlayer; import com.google.android.exoplayer2.Format; import com.google.android.exoplayer2.FormatHolder; import com.google.android.exoplayer2.PlaybackException; -import com.google.android.exoplayer2.PlayerMessage.Target; +import com.google.android.exoplayer2.PlayerMessage; import com.google.android.exoplayer2.decoder.CryptoConfig; import com.google.android.exoplayer2.decoder.Decoder; import com.google.android.exoplayer2.decoder.DecoderCounters; @@ -55,12 +56,13 @@ import com.google.android.exoplayer2.video.VideoRendererEventListener.EventDispa import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * Decodes and renders video using a {@link Decoder}. * - *

This renderer accepts the following messages sent via {@link ExoPlayer#createMessage(Target)} - * on the playback thread: + *

This renderer accepts the following messages sent via {@link + * ExoPlayer#createMessage(PlayerMessage.Target)} on the playback thread: * *

*/ + @Target(TYPE_USE) @IntDef({ SSA_ALIGNMENT_UNKNOWN, SSA_ALIGNMENT_BOTTOM_LEFT, diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/text/ttml/TextEmphasis.java b/library/extractor/src/main/java/com/google/android/exoplayer2/text/ttml/TextEmphasis.java index ecfaeb27cd..2650bcd0fb 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/text/ttml/TextEmphasis.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/text/ttml/TextEmphasis.java @@ -15,6 +15,7 @@ */ package com.google.android.exoplayer2.text.ttml; +import static java.lang.annotation.ElementType.TYPE_USE; import static java.lang.annotation.RetentionPolicy.SOURCE; import android.text.TextUtils; @@ -29,6 +30,7 @@ import com.google.common.collect.Iterables; import com.google.common.collect.Sets; import java.lang.annotation.Documented; import java.lang.annotation.Retention; +import java.lang.annotation.Target; import java.util.Set; import java.util.regex.Pattern; @@ -41,6 +43,7 @@ import java.util.regex.Pattern; @Documented @Retention(SOURCE) + @Target(TYPE_USE) @IntDef({ TextEmphasisSpan.MARK_SHAPE_NONE, TextEmphasisSpan.MARK_SHAPE_CIRCLE, @@ -58,6 +61,7 @@ import java.util.regex.Pattern; @Documented @Retention(SOURCE) + @Target(TYPE_USE) @IntDef({ TextAnnotation.POSITION_UNKNOWN, TextAnnotation.POSITION_BEFORE, diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/text/ttml/TtmlStyle.java b/library/extractor/src/main/java/com/google/android/exoplayer2/text/ttml/TtmlStyle.java index 82ce86df2a..c87c8b6b75 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/text/ttml/TtmlStyle.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/text/ttml/TtmlStyle.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.text.ttml; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.graphics.Typeface; import android.text.Layout; import androidx.annotation.IntDef; @@ -23,6 +25,7 @@ import com.google.android.exoplayer2.text.span.TextAnnotation; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** Style object of a TtmlNode */ /* package */ final class TtmlStyle { @@ -32,6 +35,7 @@ import java.lang.annotation.RetentionPolicy; @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef( flag = true, value = {UNSPECIFIED, STYLE_NORMAL, STYLE_BOLD, STYLE_ITALIC, STYLE_BOLD_ITALIC}) @@ -44,6 +48,7 @@ import java.lang.annotation.RetentionPolicy; @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({UNSPECIFIED, FONT_SIZE_UNIT_PIXEL, FONT_SIZE_UNIT_EM, FONT_SIZE_UNIT_PERCENT}) public @interface FontSizeUnit {} @@ -53,6 +58,7 @@ import java.lang.annotation.RetentionPolicy; @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({UNSPECIFIED, OFF, ON}) private @interface OptionalBoolean {} @@ -61,6 +67,7 @@ import java.lang.annotation.RetentionPolicy; @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({UNSPECIFIED, RUBY_TYPE_CONTAINER, RUBY_TYPE_BASE, RUBY_TYPE_TEXT, RUBY_TYPE_DELIMITER}) public @interface RubyType {} diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttCssStyle.java b/library/extractor/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttCssStyle.java index 587f7d5ab5..3edddf17e9 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttCssStyle.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttCssStyle.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.text.webvtt; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.graphics.Typeface; import android.text.TextUtils; import androidx.annotation.ColorInt; @@ -25,6 +27,7 @@ import com.google.common.base.Ascii; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.Arrays; import java.util.Collections; import java.util.HashSet; @@ -71,6 +74,7 @@ public final class WebvttCssStyle { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({UNSPECIFIED, OFF, ON}) private @interface OptionalBoolean {} diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttCueParser.java b/library/extractor/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttCueParser.java index f49e080d9c..5b73676b3e 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttCueParser.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttCueParser.java @@ -16,6 +16,7 @@ package com.google.android.exoplayer2.text.webvtt; import static java.lang.Math.min; +import static java.lang.annotation.ElementType.TYPE_USE; import static java.lang.annotation.RetentionPolicy.SOURCE; import android.graphics.Color; @@ -46,6 +47,7 @@ import com.google.android.exoplayer2.util.ParsableByteArray; import com.google.android.exoplayer2.util.Util; import java.lang.annotation.Documented; import java.lang.annotation.Retention; +import java.lang.annotation.Target; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Collections; @@ -74,6 +76,7 @@ public final class WebvttCueParser { */ @Documented @Retention(SOURCE) + @Target(TYPE_USE) @IntDef({ TEXT_ALIGNMENT_START, TEXT_ALIGNMENT_CENTER, diff --git a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsChunkSource.java b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsChunkSource.java index 13fb2ab6c6..9d9943b312 100644 --- a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsChunkSource.java +++ b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsChunkSource.java @@ -17,6 +17,7 @@ package com.google.android.exoplayer2.source.hls; import static com.google.android.exoplayer2.util.Assertions.checkNotNull; import static java.lang.Math.max; +import static java.lang.annotation.ElementType.TYPE_USE; import android.net.Uri; import android.os.SystemClock; @@ -50,8 +51,10 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import com.google.common.primitives.Ints; import java.io.IOException; +import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -89,6 +92,8 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; * Chunk publication state. One of {@link #CHUNK_PUBLICATION_STATE_PRELOAD}, {@link * #CHUNK_PUBLICATION_STATE_PUBLISHED}, {@link #CHUNK_PUBLICATION_STATE_REMOVED}. */ + @Documented + @Target(TYPE_USE) @IntDef({ CHUNK_PUBLICATION_STATE_PRELOAD, CHUNK_PUBLICATION_STATE_PUBLISHED, diff --git a/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspAuthenticationInfo.java b/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspAuthenticationInfo.java index 3b591aaa9b..b22645aa3d 100644 --- a/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspAuthenticationInfo.java +++ b/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspAuthenticationInfo.java @@ -15,14 +15,18 @@ */ package com.google.android.exoplayer2.source.rtsp; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.net.Uri; import android.util.Base64; import androidx.annotation.IntDef; import com.google.android.exoplayer2.ParserException; import com.google.android.exoplayer2.source.rtsp.RtspMessageUtil.RtspAuthUserInfo; import com.google.android.exoplayer2.util.Util; +import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; @@ -30,7 +34,9 @@ import java.security.NoSuchAlgorithmException; /* package */ final class RtspAuthenticationInfo { /** The supported authentication methods. */ + @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({BASIC, DIGEST}) @interface AuthenticationMechanism {} diff --git a/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspClient.java b/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspClient.java index 5b30d5a039..6141e25b27 100644 --- a/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspClient.java +++ b/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspClient.java @@ -35,6 +35,7 @@ import static com.google.android.exoplayer2.util.Assertions.checkState; import static com.google.android.exoplayer2.util.Assertions.checkStateNotNull; import static com.google.common.base.Strings.nullToEmpty; import static java.lang.Math.max; +import static java.lang.annotation.ElementType.TYPE_USE; import android.net.Uri; import android.os.Handler; @@ -61,6 +62,7 @@ import java.io.IOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.net.Socket; import java.util.ArrayDeque; import java.util.HashMap; @@ -78,6 +80,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({RTSP_STATE_UNINITIALIZED, RTSP_STATE_INIT, RTSP_STATE_READY, RTSP_STATE_PLAYING}) public @interface RtspState {} /** RTSP uninitialized state, the state before sending any SETUP request. */ diff --git a/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspMessageChannel.java b/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspMessageChannel.java index a877d72b13..df587c726d 100644 --- a/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspMessageChannel.java +++ b/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspMessageChannel.java @@ -19,6 +19,7 @@ import static com.google.android.exoplayer2.source.rtsp.RtspMessageUtil.isRtspSt import static com.google.android.exoplayer2.util.Assertions.checkArgument; import static com.google.android.exoplayer2.util.Assertions.checkState; import static com.google.android.exoplayer2.util.Assertions.checkStateNotNull; +import static java.lang.annotation.ElementType.TYPE_USE; import android.os.Handler; import android.os.HandlerThread; @@ -42,6 +43,7 @@ import java.io.OutputStream; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.net.Socket; import java.nio.charset.Charset; import java.util.ArrayList; @@ -339,6 +341,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({STATE_READING_FIRST_LINE, STATE_READING_HEADER, STATE_READING_BODY}) @interface ReadingState {} diff --git a/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspRequest.java b/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspRequest.java index 5b7d0eeb26..7e27bc0e6c 100644 --- a/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspRequest.java +++ b/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspRequest.java @@ -16,11 +16,14 @@ package com.google.android.exoplayer2.source.rtsp; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.net.Uri; import androidx.annotation.IntDef; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** Represents an RTSP request. */ /* package */ final class RtspRequest { @@ -47,6 +50,7 @@ import java.lang.annotation.RetentionPolicy; */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef( value = { METHOD_UNSET, diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/DumpFileAsserts.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/DumpFileAsserts.java index 41e832f372..707e9c22ae 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/DumpFileAsserts.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/DumpFileAsserts.java @@ -16,6 +16,7 @@ package com.google.android.exoplayer2.testutil; import static com.google.common.truth.Truth.assertWithMessage; +import static java.lang.annotation.ElementType.TYPE_USE; import android.content.Context; import androidx.annotation.IntDef; @@ -28,6 +29,7 @@ import java.io.PrintWriter; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * Helper class to enable assertions based on golden-data dump files. @@ -51,6 +53,7 @@ public class DumpFileAsserts { /** Possible actions to take with the dumps passed to {@link #assertOutput}. */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef( flag = true, value = {COMPARE_WITH_EXISTING, WRITE_TO_LOCAL, WRITE_TO_DEVICE}) diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/WebServerDispatcher.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/WebServerDispatcher.java index 341c345513..fa4851441c 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/WebServerDispatcher.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/WebServerDispatcher.java @@ -21,6 +21,7 @@ import static com.google.android.exoplayer2.util.Assertions.checkNotNull; import static com.google.android.exoplayer2.util.Assertions.checkState; import static java.lang.Math.max; import static java.lang.Math.min; +import static java.lang.annotation.ElementType.TYPE_USE; import android.util.Pair; import androidx.annotation.IntDef; @@ -33,6 +34,7 @@ import com.google.common.collect.Maps; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.Arrays; import java.util.List; import java.util.regex.Matcher; @@ -66,6 +68,7 @@ public class WebServerDispatcher extends Dispatcher { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({GZIP_SUPPORT_DISABLED, GZIP_SUPPORT_ENABLED, GZIP_SUPPORT_FORCED}) private @interface GzipSupport {}