From 6fc5f9800ecd1ec1045efcbcb55f9453e68d6ba1 Mon Sep 17 00:00:00 2001 From: ibaker Date: Fri, 4 Feb 2022 16:29:02 +0000 Subject: [PATCH] Mark @C.SelectionReason as TYPE_USE (only) and use it in more places This is not backwards compatible if the @SelectionReason annotation is used in Kotlin code, but before this change there aren't many library surfaces that return a value annotated with @SelectionReason, so it seems relatively unlikely that it is in use in any/many apps. A follow-up change will fix the positions of existing usages to match this new config. #minor-release PiperOrigin-RevId: 426409877 --- .../common/src/main/java/androidx/media3/common/C.java | 1 + .../media3/exoplayer/source/MediaLoadData.java | 2 +- .../media3/exoplayer/source/MergingMediaPeriod.java | 2 +- .../trackselection/AdaptiveTrackSelection.java | 6 +++--- .../exoplayer/trackselection/ExoTrackSelection.java | 1 + .../exoplayer/trackselection/FixedTrackSelection.java | 10 +++++++--- .../androidx/media3/exoplayer/hls/HlsChunkSource.java | 2 +- .../androidx/media3/test/utils/FakeTrackSelection.java | 2 +- .../androidx/media3/test/utils/MediaPeriodAsserts.java | 2 +- 9 files changed, 17 insertions(+), 11 deletions(-) diff --git a/libraries/common/src/main/java/androidx/media3/common/C.java b/libraries/common/src/main/java/androidx/media3/common/C.java index 594706bb30..084d3a4b61 100644 --- a/libraries/common/src/main/java/androidx/media3/common/C.java +++ b/libraries/common/src/main/java/androidx/media3/common/C.java @@ -745,6 +745,7 @@ public final class C { @UnstableApi @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef( open = true, value = { diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaLoadData.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaLoadData.java index 8a0cf3f371..f3a6a04ed5 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaLoadData.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaLoadData.java @@ -43,7 +43,7 @@ public final class MediaLoadData { * One of the {@link SelectionReason selection reasons} if the data belongs to a track. {@link * C#SELECTION_REASON_UNKNOWN} otherwise. */ - public final int trackSelectionReason; + public final @C.SelectionReason int trackSelectionReason; /** * Optional data associated with the selection of the track to which the data belongs. Null if the * data does not belong to a track. diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MergingMediaPeriod.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MergingMediaPeriod.java index 584c40a378..cc6b34ebb4 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MergingMediaPeriod.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MergingMediaPeriod.java @@ -548,7 +548,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; } @Override - public int getSelectionReason() { + public @C.SelectionReason int getSelectionReason() { return trackSelection.getSelectionReason(); } diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/AdaptiveTrackSelection.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/AdaptiveTrackSelection.java index 3e4dd4d41d..40dfa34a12 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/AdaptiveTrackSelection.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/AdaptiveTrackSelection.java @@ -316,7 +316,7 @@ public class AdaptiveTrackSelection extends BaseTrackSelection { private float playbackSpeed; private int selectedIndex; - private int reason; + private @C.SelectionReason int reason; private long lastBufferEvaluationMs; @Nullable private MediaChunk lastBufferEvaluationMediaChunk; @@ -449,7 +449,7 @@ public class AdaptiveTrackSelection extends BaseTrackSelection { } int previousSelectedIndex = selectedIndex; - int previousReason = reason; + @C.SelectionReason int previousReason = reason; int formatIndexOfPreviousChunk = queue.isEmpty() ? C.INDEX_UNSET : indexOf(Iterables.getLast(queue).trackFormat); if (formatIndexOfPreviousChunk != C.INDEX_UNSET) { @@ -487,7 +487,7 @@ public class AdaptiveTrackSelection extends BaseTrackSelection { } @Override - public int getSelectionReason() { + public @C.SelectionReason int getSelectionReason() { return reason; } diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/ExoTrackSelection.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/ExoTrackSelection.java index 858e557b08..b8df05df1a 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/ExoTrackSelection.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/ExoTrackSelection.java @@ -125,6 +125,7 @@ public interface ExoTrackSelection extends TrackSelection { int getSelectedIndex(); /** Returns the reason for the current track selection. */ + @C.SelectionReason int getSelectionReason(); /** Returns optional data associated with the current track selection. */ diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/FixedTrackSelection.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/FixedTrackSelection.java index 8eacc3688f..d6c57bb730 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/FixedTrackSelection.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/FixedTrackSelection.java @@ -28,7 +28,7 @@ import java.util.List; @UnstableApi public final class FixedTrackSelection extends BaseTrackSelection { - private final int reason; + private final @C.SelectionReason int reason; @Nullable private final Object data; /** @@ -56,7 +56,11 @@ public final class FixedTrackSelection extends BaseTrackSelection { * @param data Optional data associated with the track selection. */ public FixedTrackSelection( - TrackGroup group, int track, @Type int type, int reason, @Nullable Object data) { + TrackGroup group, + int track, + @Type int type, + @C.SelectionReason int reason, + @Nullable Object data) { super(group, /* tracks= */ new int[] {track}, type); this.reason = reason; this.data = data; @@ -78,7 +82,7 @@ public final class FixedTrackSelection extends BaseTrackSelection { } @Override - public int getSelectionReason() { + public @C.SelectionReason int getSelectionReason() { return reason; } diff --git a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsChunkSource.java b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsChunkSource.java index b2f0f200df..e054b113ca 100644 --- a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsChunkSource.java +++ b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsChunkSource.java @@ -915,7 +915,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; } @Override - public int getSelectionReason() { + public @C.SelectionReason int getSelectionReason() { return C.SELECTION_REASON_UNKNOWN; } diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeTrackSelection.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeTrackSelection.java index 129d706e7c..0308109666 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeTrackSelection.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeTrackSelection.java @@ -116,7 +116,7 @@ public final class FakeTrackSelection implements ExoTrackSelection { } @Override - public int getSelectionReason() { + public @C.SelectionReason int getSelectionReason() { return C.SELECTION_REASON_UNKNOWN; } diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/MediaPeriodAsserts.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/MediaPeriodAsserts.java index 3a9c0f2a7a..71e0a49fe4 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/MediaPeriodAsserts.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/MediaPeriodAsserts.java @@ -240,7 +240,7 @@ public final class MediaPeriodAsserts { } @Override - public int getSelectionReason() { + public @C.SelectionReason int getSelectionReason() { return C.SELECTION_REASON_UNKNOWN; }