diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 70e33b2d33f..7061221f5dc 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -9,6 +9,10 @@ methods, so implementations will need to manually append this information if desired (possibly using `Logger.appendThrowableString(String, Throwable)`). + * Fix Kotlin compatibility issue where nullable generic type parameters + and nullable array element types are not detected as nullable. Examples + are `TrackSelectorResult` and `SimpleDecoder` method parameters + ([6792](https://github.com/google/ExoPlayer/issues/6792)). * ExoPlayer: * Add suppression of playback on unsuitable audio output devices (e.g. the built-in speaker on Wear OS devices) when this feature is enabled via diff --git a/constants.gradle b/constants.gradle index 76aa1c3ae48..c09b0d3034b 100644 --- a/constants.gradle +++ b/constants.gradle @@ -32,7 +32,6 @@ project.ext { robolectricVersion = '4.10.3' // Keep this in sync with Google's internal Checker Framework version. checkerframeworkVersion = '3.13.0' - checkerframeworkCompatVersion = '2.5.5' errorProneVersion = '2.18.0' jsr305Version = '3.0.2' kotlinAnnotationsVersion = '1.8.20' diff --git a/demos/gl/build.gradle b/demos/gl/build.gradle index 85fc09b1e4e..d66c72cf4ef 100644 --- a/demos/gl/build.gradle +++ b/demos/gl/build.gradle @@ -57,5 +57,4 @@ dependencies { implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion implementation 'androidx.multidex:multidex:' + androidxMultidexVersion compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion - compileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion } diff --git a/libraries/cast/build.gradle b/libraries/cast/build.gradle index 9b9cca615e7..7ad830893c3 100644 --- a/libraries/cast/build.gradle +++ b/libraries/cast/build.gradle @@ -28,7 +28,6 @@ dependencies { implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion implementation project(modulePrefix + 'lib-common') compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion - compileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion testImplementation project(modulePrefix + 'test-utils') testImplementation 'org.robolectric:robolectric:' + robolectricVersion diff --git a/libraries/common/build.gradle b/libraries/common/build.gradle index 6b81490aae2..8b0c9fe227a 100644 --- a/libraries/common/build.gradle +++ b/libraries/common/build.gradle @@ -67,7 +67,6 @@ dependencies { implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion compileOnly 'com.google.code.findbugs:jsr305:' + jsr305Version compileOnly 'com.google.errorprone:error_prone_annotations:' + errorProneVersion - compileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion androidTestImplementation 'androidx.test:runner:' + androidxTestRunnerVersion diff --git a/libraries/common/src/main/java/androidx/media3/common/AdPlaybackState.java b/libraries/common/src/main/java/androidx/media3/common/AdPlaybackState.java index 2db20ec2212..e481e2de2c5 100644 --- a/libraries/common/src/main/java/androidx/media3/common/AdPlaybackState.java +++ b/libraries/common/src/main/java/androidx/media3/common/AdPlaybackState.java @@ -30,6 +30,7 @@ import androidx.annotation.IntDef; import androidx.annotation.IntRange; import androidx.annotation.Nullable; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import java.lang.annotation.Documented; @@ -38,7 +39,6 @@ import java.lang.annotation.Target; import java.util.ArrayList; import java.util.Arrays; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** * Represents ad group times and information on the state and URIs of ads within each ad group. diff --git a/libraries/common/src/main/java/androidx/media3/common/util/NullableType.java b/libraries/common/src/main/java/androidx/media3/common/util/NullableType.java new file mode 100644 index 00000000000..1de1bd1d181 --- /dev/null +++ b/libraries/common/src/main/java/androidx/media3/common/util/NullableType.java @@ -0,0 +1,40 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package androidx.media3.common.util; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import javax.annotation.Nonnull; +import javax.annotation.meta.TypeQualifierNickname; +import javax.annotation.meta.When; + +/** + * Annotation for specifying a nullable type. + * + *

Unlike {@link androidx.annotation.Nullable} used elsewhere in the library, this annotation can + * be used on {@link ElementType#TYPE_USE} locations like generic type parameters and array element + * types. + */ +@UnstableApi +@Documented +@Retention(RetentionPolicy.CLASS) +@Nonnull(when = When.MAYBE) +@Target({ElementType.TYPE_USE}) +@TypeQualifierNickname +public @interface NullableType {} diff --git a/libraries/common/src/main/java/androidx/media3/common/util/TimedValueQueue.java b/libraries/common/src/main/java/androidx/media3/common/util/TimedValueQueue.java index 284024e73b6..4f2125eabfb 100644 --- a/libraries/common/src/main/java/androidx/media3/common/util/TimedValueQueue.java +++ b/libraries/common/src/main/java/androidx/media3/common/util/TimedValueQueue.java @@ -17,7 +17,6 @@ import androidx.annotation.Nullable; import java.util.Arrays; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** A utility class to keep a queue of values with timestamps. This class is thread safe. */ @UnstableApi diff --git a/libraries/common/src/main/java/androidx/media3/common/util/Util.java b/libraries/common/src/main/java/androidx/media3/common/util/Util.java index ba0a94aa65d..c7bb2689ddb 100644 --- a/libraries/common/src/main/java/androidx/media3/common/util/Util.java +++ b/libraries/common/src/main/java/androidx/media3/common/util/Util.java @@ -125,7 +125,6 @@ import java.util.zip.GZIPOutputStream; import java.util.zip.Inflater; import org.checkerframework.checker.initialization.qual.UnknownInitialization; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.checkerframework.checker.nullness.qual.EnsuresNonNull; import org.checkerframework.checker.nullness.qual.EnsuresNonNullIf; import org.checkerframework.checker.nullness.qual.PolyNull; diff --git a/libraries/datasource/build.gradle b/libraries/datasource/build.gradle index 7c5e1c05ea6..9fd2da4f816 100644 --- a/libraries/datasource/build.gradle +++ b/libraries/datasource/build.gradle @@ -41,7 +41,6 @@ dependencies { implementation 'androidx.exifinterface:exifinterface:' + androidxExifInterfaceVersion compileOnly 'com.google.code.findbugs:jsr305:' + jsr305Version compileOnly 'com.google.errorprone:error_prone_annotations:' + errorProneVersion - compileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion androidTestImplementation 'androidx.test:runner:' + androidxTestRunnerVersion diff --git a/libraries/datasource/src/main/java/androidx/media3/datasource/cache/CachedContentIndex.java b/libraries/datasource/src/main/java/androidx/media3/datasource/cache/CachedContentIndex.java index 36c2d454296..ad1ef1410bc 100644 --- a/libraries/datasource/src/main/java/androidx/media3/datasource/cache/CachedContentIndex.java +++ b/libraries/datasource/src/main/java/androidx/media3/datasource/cache/CachedContentIndex.java @@ -33,6 +33,7 @@ import androidx.annotation.WorkerThread; import androidx.media3.common.util.Assertions; import androidx.media3.common.util.AtomicFile; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.Util; import androidx.media3.database.DatabaseIOException; import androidx.media3.database.DatabaseProvider; @@ -63,7 +64,6 @@ import javax.crypto.NoSuchPaddingException; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** Maintains the index of cached content. */ diff --git a/libraries/effect/build.gradle b/libraries/effect/build.gradle index 1420de62037..dfbb51af419 100644 --- a/libraries/effect/build.gradle +++ b/libraries/effect/build.gradle @@ -47,7 +47,6 @@ dependencies { implementation project(modulePrefix + 'lib-datasource') compileOnly 'com.google.errorprone:error_prone_annotations:' + errorProneVersion compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion - compileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion testImplementation project(modulePrefix + 'test-utils-robolectric') testImplementation project(modulePrefix + 'test-utils') @@ -58,7 +57,6 @@ dependencies { androidTestImplementation 'androidx.test:runner:' + androidxTestRunnerVersion androidTestImplementation 'com.google.truth:truth:' + truthVersion androidTestImplementation project(modulePrefix + 'test-utils') - androidTestCompileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion } ext { diff --git a/libraries/effect/src/androidTest/java/androidx/media3/effect/DefaultVideoFrameProcessorVideoFrameRenderingTest.java b/libraries/effect/src/androidTest/java/androidx/media3/effect/DefaultVideoFrameProcessorVideoFrameRenderingTest.java index 504fdc51b3f..146b1a4f919 100644 --- a/libraries/effect/src/androidTest/java/androidx/media3/effect/DefaultVideoFrameProcessorVideoFrameRenderingTest.java +++ b/libraries/effect/src/androidTest/java/androidx/media3/effect/DefaultVideoFrameProcessorVideoFrameRenderingTest.java @@ -35,6 +35,7 @@ import androidx.media3.common.VideoFrameProcessingException; import androidx.media3.common.VideoFrameProcessor; import androidx.media3.common.util.GlUtil; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.Util; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.common.collect.ImmutableList; @@ -47,7 +48,6 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReference; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.checkerframework.checker.nullness.qual.EnsuresNonNull; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.junit.After; diff --git a/libraries/exoplayer/build.gradle b/libraries/exoplayer/build.gradle index e02177374dc..8177f3d0af8 100644 --- a/libraries/exoplayer/build.gradle +++ b/libraries/exoplayer/build.gradle @@ -53,7 +53,6 @@ dependencies { implementation 'androidx.core:core:' + androidxCoreVersion compileOnly 'com.google.code.findbugs:jsr305:' + jsr305Version compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion - compileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion compileOnly 'com.google.errorprone:error_prone_annotations:' + errorProneVersion androidTestImplementation 'androidx.test:runner:' + androidxTestRunnerVersion @@ -63,7 +62,6 @@ dependencies { exclude module: modulePrefix.substring(1) + 'library-core' } androidTestImplementation 'com.squareup.okhttp3:mockwebserver:' + okhttpVersion - testCompileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion testImplementation 'com.squareup.okhttp3:mockwebserver:' + okhttpVersion testImplementation 'org.robolectric:robolectric:' + robolectricVersion testImplementation project(modulePrefix + 'test-utils') diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/MediaPeriodHolder.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/MediaPeriodHolder.java index d16412f2196..1554c096ca7 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/MediaPeriodHolder.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/MediaPeriodHolder.java @@ -23,6 +23,7 @@ import androidx.media3.common.Timeline; import androidx.media3.common.util.Assertions; import androidx.media3.common.util.Log; +import androidx.media3.common.util.NullableType; import androidx.media3.exoplayer.source.ClippingMediaPeriod; import androidx.media3.exoplayer.source.EmptySampleStream; import androidx.media3.exoplayer.source.MediaPeriod; @@ -33,7 +34,6 @@ import androidx.media3.exoplayer.trackselection.TrackSelector; import androidx.media3.exoplayer.trackselection.TrackSelectorResult; import androidx.media3.exoplayer.upstream.Allocator; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** Holds a {@link MediaPeriod} with information required to play it as part of a timeline. */ /* package */ final class MediaPeriodHolder { diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/MediaSourceList.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/MediaSourceList.java index cda970a7c59..a9022d7e0da 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/MediaSourceList.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/MediaSourceList.java @@ -26,6 +26,7 @@ import androidx.media3.common.util.Assertions; import androidx.media3.common.util.HandlerWrapper; import androidx.media3.common.util.Log; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.Util; import androidx.media3.datasource.TransferListener; import androidx.media3.exoplayer.analytics.AnalyticsCollector; @@ -51,7 +52,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** * Concatenates multiple {@link MediaSource}s. The list of {@link MediaSource}s can be modified diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/analytics/MediaMetricsListener.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/analytics/MediaMetricsListener.java index de9a137a970..c419d5d515e 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/analytics/MediaMetricsListener.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/analytics/MediaMetricsListener.java @@ -52,6 +52,7 @@ import androidx.media3.common.Tracks; import androidx.media3.common.VideoSize; import androidx.media3.common.util.NetworkTypeObserver; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import androidx.media3.datasource.FileDataSource; @@ -75,7 +76,6 @@ import java.net.UnknownHostException; import java.util.HashMap; import java.util.UUID; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.checkerframework.checker.nullness.qual.EnsuresNonNullIf; import org.checkerframework.checker.nullness.qual.RequiresNonNull; diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/OfflineLicenseHelper.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/OfflineLicenseHelper.java index 35dbcd43550..6cc5c547333 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/OfflineLicenseHelper.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/OfflineLicenseHelper.java @@ -26,6 +26,7 @@ import androidx.media3.common.DrmInitData; import androidx.media3.common.Format; import androidx.media3.common.util.Assertions; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.datasource.DataSource; import androidx.media3.exoplayer.analytics.PlayerId; @@ -35,7 +36,6 @@ import com.google.common.util.concurrent.SettableFuture; import java.util.Map; import java.util.concurrent.ExecutionException; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** Helper class to download, renew and release offline licenses. */ @RequiresApi(18) diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/AsynchronousMediaCodecBufferEnqueuer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/AsynchronousMediaCodecBufferEnqueuer.java index bba85feff94..fdf22fb25bf 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/AsynchronousMediaCodecBufferEnqueuer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/AsynchronousMediaCodecBufferEnqueuer.java @@ -29,12 +29,12 @@ import androidx.annotation.RequiresApi; import androidx.annotation.VisibleForTesting; import androidx.media3.common.util.ConditionVariable; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.Util; import androidx.media3.decoder.CryptoInfo; import java.util.ArrayDeque; import java.util.Arrays; import java.util.concurrent.atomic.AtomicReference; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/offline/DownloadHelper.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/offline/DownloadHelper.java index 0c66ae45c85..ce399f484a8 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/offline/DownloadHelper.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/offline/DownloadHelper.java @@ -33,6 +33,7 @@ import androidx.media3.common.TrackSelectionParameters; import androidx.media3.common.Tracks; import androidx.media3.common.util.Assertions; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import androidx.media3.datasource.DataSource; @@ -68,7 +69,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.checkerframework.checker.nullness.qual.EnsuresNonNull; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.checkerframework.checker.nullness.qual.RequiresNonNull; diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ClippingMediaPeriod.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ClippingMediaPeriod.java index 4d9e0a1274b..e4dfd16a3f7 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ClippingMediaPeriod.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ClippingMediaPeriod.java @@ -20,6 +20,7 @@ import androidx.media3.common.Format; import androidx.media3.common.MimeTypes; import androidx.media3.common.util.Assertions; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import androidx.media3.decoder.DecoderInputBuffer; @@ -28,7 +29,6 @@ import androidx.media3.exoplayer.source.ClippingMediaSource.IllegalClippingException; import androidx.media3.exoplayer.trackselection.ExoTrackSelection; import java.io.IOException; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** * Wraps a {@link MediaPeriod} and clips its {@link SampleStream}s to provide a subsequence of their diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java index cdfea0ab2ea..287ce9eb295 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/DefaultMediaSourceFactory.java @@ -29,6 +29,7 @@ import androidx.media3.common.MimeTypes; import androidx.media3.common.util.Assertions; import androidx.media3.common.util.Log; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import androidx.media3.datasource.DataSource; @@ -59,7 +60,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/FilteringMediaSource.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/FilteringMediaSource.java index 2e7b8b185ee..4b170567d27 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/FilteringMediaSource.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/FilteringMediaSource.java @@ -21,6 +21,7 @@ import androidx.media3.common.C; import androidx.media3.common.StreamKey; import androidx.media3.common.TrackGroup; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.exoplayer.SeekParameters; import androidx.media3.exoplayer.trackselection.ExoTrackSelection; @@ -30,7 +31,6 @@ import java.io.IOException; import java.util.List; import java.util.Set; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** * A {@link MediaSource} that filters the available {@linkplain C.TrackType track types}. diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MaskingMediaPeriod.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MaskingMediaPeriod.java index 0050985cbb9..b4cda271bf5 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MaskingMediaPeriod.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MaskingMediaPeriod.java @@ -21,13 +21,13 @@ import androidx.annotation.Nullable; import androidx.media3.common.C; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.exoplayer.SeekParameters; import androidx.media3.exoplayer.source.MediaSource.MediaPeriodId; import androidx.media3.exoplayer.trackselection.ExoTrackSelection; import androidx.media3.exoplayer.upstream.Allocator; import java.io.IOException; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaPeriod.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaPeriod.java index 5147bc9e965..01fe9d34e38 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaPeriod.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaPeriod.java @@ -19,6 +19,7 @@ import androidx.media3.common.StreamKey; import androidx.media3.common.Timeline; import androidx.media3.common.TrackGroup; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.exoplayer.ExoPlayer; import androidx.media3.exoplayer.SeekParameters; @@ -27,7 +28,6 @@ import java.io.IOException; import java.util.Collections; import java.util.List; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** * Loads media corresponding to a {@link Timeline.Period}, and allows that media to be read. All 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 53e579070ca..c9cb55e0d25 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 @@ -24,6 +24,7 @@ import androidx.media3.common.StreamKey; import androidx.media3.common.TrackGroup; import androidx.media3.common.util.Assertions; +import androidx.media3.common.util.NullableType; import androidx.media3.decoder.DecoderInputBuffer; import androidx.media3.exoplayer.FormatHolder; import androidx.media3.exoplayer.SeekParameters; @@ -37,7 +38,6 @@ import java.util.HashMap; import java.util.IdentityHashMap; import java.util.List; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** Merges multiple {@link MediaPeriod}s. */ diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaPeriod.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaPeriod.java index 7dff7d667af..4509734d8d3 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaPeriod.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaPeriod.java @@ -31,6 +31,7 @@ import androidx.media3.common.TrackGroup; import androidx.media3.common.util.Assertions; import androidx.media3.common.util.ConditionVariable; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.ParsableByteArray; import androidx.media3.common.util.Util; import androidx.media3.datasource.DataSource; @@ -65,7 +66,6 @@ import java.util.Collections; import java.util.HashMap; import java.util.Map; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.checkerframework.checker.nullness.qual.EnsuresNonNull; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/SampleQueue.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/SampleQueue.java index 58d363c7f6f..533927f7493 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/SampleQueue.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/SampleQueue.java @@ -34,6 +34,7 @@ import androidx.media3.common.MimeTypes; import androidx.media3.common.util.Assertions; import androidx.media3.common.util.Log; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.ParsableByteArray; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; @@ -50,7 +51,6 @@ import androidx.media3.exoplayer.upstream.Allocator; import androidx.media3.extractor.TrackOutput; import java.io.IOException; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** A queue of media samples. */ @UnstableApi diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/SilenceMediaSource.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/SilenceMediaSource.java index dc69afa713e..4f743b4909e 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/SilenceMediaSource.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/SilenceMediaSource.java @@ -27,6 +27,7 @@ import androidx.media3.common.Timeline; import androidx.media3.common.TrackGroup; import androidx.media3.common.util.Assertions; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import androidx.media3.datasource.TransferListener; @@ -37,7 +38,6 @@ import androidx.media3.exoplayer.upstream.Allocator; import com.google.errorprone.annotations.CanIgnoreReturnValue; import java.util.ArrayList; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** Media source with a single period consisting of silent raw audio of a given duration. */ @UnstableApi diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/SingleSampleMediaPeriod.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/SingleSampleMediaPeriod.java index 16e36635f89..77ed459cad9 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/SingleSampleMediaPeriod.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/SingleSampleMediaPeriod.java @@ -22,6 +22,7 @@ import androidx.media3.common.TrackGroup; import androidx.media3.common.util.Assertions; import androidx.media3.common.util.Log; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.Util; import androidx.media3.datasource.DataSource; import androidx.media3.datasource.DataSourceUtil; @@ -41,7 +42,6 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** A {@link MediaPeriod} with a single sample. */ diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ads/AdsMediaSource.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ads/AdsMediaSource.java index 6930e25f41e..0263361a123 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ads/AdsMediaSource.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ads/AdsMediaSource.java @@ -31,6 +31,7 @@ import androidx.media3.common.MediaItem; import androidx.media3.common.Timeline; import androidx.media3.common.util.Assertions; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import androidx.media3.datasource.DataSpec; @@ -52,7 +53,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ads/ServerSideAdInsertionMediaSource.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ads/ServerSideAdInsertionMediaSource.java index b7ad76f6d72..9d21ae88712 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ads/ServerSideAdInsertionMediaSource.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ads/ServerSideAdInsertionMediaSource.java @@ -36,6 +36,7 @@ import androidx.media3.common.StreamKey; import androidx.media3.common.Timeline; import androidx.media3.common.TrackGroup; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import androidx.media3.datasource.TransferListener; @@ -66,7 +67,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/mediaparser/OutputConsumerAdapterV30.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/mediaparser/OutputConsumerAdapterV30.java index 8d84f9fc081..8d2116897ce 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/mediaparser/OutputConsumerAdapterV30.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/mediaparser/OutputConsumerAdapterV30.java @@ -50,6 +50,7 @@ import androidx.media3.common.util.Assertions; import androidx.media3.common.util.Log; import androidx.media3.common.util.MediaFormatUtil; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.TimestampAdjuster; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; @@ -69,7 +70,6 @@ import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** * {@link MediaParser.OutputConsumer} implementation that redirects output to an {@link 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 91173edc35e..a024236db18 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 @@ -26,6 +26,7 @@ import androidx.media3.common.TrackGroup; import androidx.media3.common.util.Clock; import androidx.media3.common.util.Log; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import androidx.media3.exoplayer.source.MediaSource.MediaPeriodId; @@ -39,7 +40,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** * A bandwidth based adaptive {@link ExoTrackSelection}, whose selected track is updated to be the diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.java index 3aa891a539e..af67f3b3465 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/DefaultTrackSelector.java @@ -56,6 +56,7 @@ import androidx.media3.common.util.Assertions; import androidx.media3.common.util.BundleableUtil; import androidx.media3.common.util.Log; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import androidx.media3.exoplayer.ExoPlaybackException; @@ -84,7 +85,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** * A default {@link TrackSelector} suitable for most use cases. 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 4b32ff66e45..92c11d90397 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 @@ -21,6 +21,7 @@ import androidx.media3.common.Timeline; import androidx.media3.common.TrackGroup; import androidx.media3.common.util.Log; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.exoplayer.source.MediaSource.MediaPeriodId; import androidx.media3.exoplayer.source.chunk.Chunk; @@ -28,7 +29,6 @@ import androidx.media3.exoplayer.source.chunk.MediaChunkIterator; import androidx.media3.exoplayer.upstream.BandwidthMeter; import java.util.List; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** * A {@link TrackSelection} that can change the individually selected track as a result of calling diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/MappingTrackSelector.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/MappingTrackSelector.java index de8f026c391..2340da03a93 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/MappingTrackSelector.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/MappingTrackSelector.java @@ -32,6 +32,7 @@ import androidx.media3.common.Timeline; import androidx.media3.common.TrackGroup; import androidx.media3.common.Tracks; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import androidx.media3.exoplayer.ExoPlaybackException; @@ -47,7 +48,6 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import java.util.Arrays; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** * Base class for {@link TrackSelector}s that first establish a mapping between {@link TrackGroup}s diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/RandomTrackSelection.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/RandomTrackSelection.java index 829eb331e6f..0c2a694a3c3 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/RandomTrackSelection.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/RandomTrackSelection.java @@ -20,6 +20,7 @@ import androidx.media3.common.C; import androidx.media3.common.Timeline; import androidx.media3.common.TrackGroup; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.exoplayer.source.MediaSource.MediaPeriodId; import androidx.media3.exoplayer.source.chunk.MediaChunk; @@ -27,7 +28,6 @@ import androidx.media3.exoplayer.upstream.BandwidthMeter; import java.util.List; import java.util.Random; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** An {@link ExoTrackSelection} whose selected track is updated randomly. */ @UnstableApi diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/TrackSelectionArray.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/TrackSelectionArray.java index 5c9f18b30e6..0fbe78b610b 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/TrackSelectionArray.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/TrackSelectionArray.java @@ -16,9 +16,9 @@ package androidx.media3.exoplayer.trackselection; import androidx.annotation.Nullable; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import java.util.Arrays; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** An array of {@link TrackSelection}s. */ @UnstableApi diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/TrackSelectionUtil.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/TrackSelectionUtil.java index c952b29246b..1dbb0a4e4fe 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/TrackSelectionUtil.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/TrackSelectionUtil.java @@ -20,6 +20,7 @@ import androidx.media3.common.C; import androidx.media3.common.TrackGroup; import androidx.media3.common.Tracks; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.exoplayer.RendererCapabilities; import androidx.media3.exoplayer.source.TrackGroupArray; @@ -29,7 +30,6 @@ import com.google.common.collect.ImmutableList; import java.util.Arrays; import java.util.List; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** Track selection related utility methods. */ @UnstableApi diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/TrackSelectorResult.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/TrackSelectorResult.java index c9a42312e8c..f0187c08d71 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/TrackSelectorResult.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/trackselection/TrackSelectorResult.java @@ -17,10 +17,10 @@ import androidx.annotation.Nullable; import androidx.media3.common.Tracks; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import androidx.media3.exoplayer.RendererConfiguration; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** The result of a {@link TrackSelector} operation. */ @UnstableApi diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/upstream/DefaultAllocator.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/upstream/DefaultAllocator.java index af42d8b71d1..dcc87ac48f5 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/upstream/DefaultAllocator.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/upstream/DefaultAllocator.java @@ -19,10 +19,10 @@ import androidx.annotation.Nullable; import androidx.media3.common.util.Assertions; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import java.util.Arrays; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** Default implementation of {@link Allocator}. */ @UnstableApi diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/VideoDecoderGLSurfaceView.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/VideoDecoderGLSurfaceView.java index 9ffbf37ae43..8275f5d3c9f 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/VideoDecoderGLSurfaceView.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/VideoDecoderGLSurfaceView.java @@ -26,6 +26,7 @@ import androidx.media3.common.util.Assertions; import androidx.media3.common.util.GlProgram; import androidx.media3.common.util.GlUtil; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.decoder.VideoDecoderOutputBuffer; import java.nio.ByteBuffer; @@ -33,7 +34,6 @@ import java.util.concurrent.atomic.AtomicReference; import javax.microedition.khronos.egl.EGLConfig; import javax.microedition.khronos.opengles.GL10; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.checkerframework.checker.nullness.qual.RequiresNonNull; diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/MergingMediaPeriodTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/MergingMediaPeriodTest.java index 58e6e97f3cd..b9ef909b083 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/MergingMediaPeriodTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/MergingMediaPeriodTest.java @@ -23,6 +23,7 @@ import androidx.media3.common.C; import androidx.media3.common.Format; import androidx.media3.common.TrackGroup; +import androidx.media3.common.util.NullableType; import androidx.media3.decoder.DecoderInputBuffer; import androidx.media3.exoplayer.FormatHolder; import androidx.media3.exoplayer.drm.DrmSessionEventListener; @@ -37,7 +38,6 @@ import com.google.common.collect.ImmutableList; import java.util.Arrays; import java.util.concurrent.CountDownLatch; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/libraries/exoplayer_dash/build.gradle b/libraries/exoplayer_dash/build.gradle index 5e4ca3b03ae..5cb3f208605 100644 --- a/libraries/exoplayer_dash/build.gradle +++ b/libraries/exoplayer_dash/build.gradle @@ -35,7 +35,6 @@ dependencies { implementation project(modulePrefix + 'lib-exoplayer') compileOnly 'com.google.errorprone:error_prone_annotations:' + errorProneVersion compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion - compileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion testImplementation project(modulePrefix + 'test-utils-robolectric') diff --git a/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DashMediaPeriod.java b/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DashMediaPeriod.java index 10dd2a9a179..507b06ef50f 100644 --- a/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DashMediaPeriod.java +++ b/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/DashMediaPeriod.java @@ -28,6 +28,7 @@ import androidx.media3.common.MimeTypes; import androidx.media3.common.StreamKey; import androidx.media3.common.TrackGroup; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.Util; import androidx.media3.datasource.TransferListener; import androidx.media3.exoplayer.SeekParameters; @@ -69,7 +70,6 @@ import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** A DASH {@link MediaPeriod}. */ /* package */ final class DashMediaPeriod diff --git a/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/manifest/DashManifestParser.java b/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/manifest/DashManifestParser.java index 0e0bb927b92..4a1e98393b9 100644 --- a/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/manifest/DashManifestParser.java +++ b/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/manifest/DashManifestParser.java @@ -33,6 +33,7 @@ import androidx.media3.common.ParserException; import androidx.media3.common.util.Assertions; import androidx.media3.common.util.Log; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.UriUtil; import androidx.media3.common.util.Util; @@ -56,7 +57,6 @@ import java.util.UUID; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.xml.sax.helpers.DefaultHandler; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; diff --git a/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/offline/DashDownloader.java b/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/offline/DashDownloader.java index 73a59291b3c..be7ead9a1c7 100644 --- a/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/offline/DashDownloader.java +++ b/libraries/exoplayer_dash/src/main/java/androidx/media3/exoplayer/dash/offline/DashDownloader.java @@ -19,6 +19,7 @@ import androidx.annotation.Nullable; import androidx.media3.common.MediaItem; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.RunnableFutureTask; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; @@ -43,7 +44,6 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.Executor; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** * A downloader for DASH streams. diff --git a/libraries/exoplayer_hls/build.gradle b/libraries/exoplayer_hls/build.gradle index eadf3f2c0dc..dff3afb291a 100644 --- a/libraries/exoplayer_hls/build.gradle +++ b/libraries/exoplayer_hls/build.gradle @@ -35,7 +35,6 @@ dependencies { implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion compileOnly 'com.google.errorprone:error_prone_annotations:' + errorProneVersion compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion - compileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion implementation project(modulePrefix + 'lib-exoplayer') testImplementation project(modulePrefix + 'test-utils-robolectric') diff --git a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaPeriod.java b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaPeriod.java index a8de90e2410..a8e4a311e12 100644 --- a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaPeriod.java +++ b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaPeriod.java @@ -26,6 +26,7 @@ import androidx.media3.common.StreamKey; import androidx.media3.common.TrackGroup; import androidx.media3.common.util.Assertions; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import androidx.media3.datasource.DataSource; @@ -59,7 +60,6 @@ import java.util.IdentityHashMap; import java.util.List; import java.util.Map; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** A {@link MediaPeriod} that loads an HLS stream. */ diff --git a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsSampleStreamWrapper.java b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsSampleStreamWrapper.java index 43e1853030f..76f5a5d4c49 100644 --- a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsSampleStreamWrapper.java +++ b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsSampleStreamWrapper.java @@ -35,6 +35,7 @@ import androidx.media3.common.TrackGroup; import androidx.media3.common.util.Assertions; import androidx.media3.common.util.Log; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.ParsableByteArray; import androidx.media3.common.util.Util; import androidx.media3.datasource.HttpDataSource; @@ -81,7 +82,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.checkerframework.checker.nullness.qual.EnsuresNonNull; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.checkerframework.checker.nullness.qual.RequiresNonNull; diff --git a/libraries/exoplayer_rtsp/build.gradle b/libraries/exoplayer_rtsp/build.gradle index 0920252e8f0..e53de0c7518 100644 --- a/libraries/exoplayer_rtsp/build.gradle +++ b/libraries/exoplayer_rtsp/build.gradle @@ -35,14 +35,12 @@ dependencies { implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion compileOnly 'com.google.errorprone:error_prone_annotations:' + errorProneVersion compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion - compileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion implementation project(modulePrefix + 'lib-exoplayer') testImplementation project(modulePrefix + 'test-utils-robolectric') testImplementation project(modulePrefix + 'test-utils') testImplementation project(modulePrefix + 'test-data') testImplementation 'org.checkerframework:checker-qual:' + checkerframeworkVersion - testImplementation 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion testImplementation 'org.robolectric:robolectric:' + robolectricVersion } diff --git a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaPeriod.java b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaPeriod.java index e766780a77a..96ea2933e54 100644 --- a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaPeriod.java +++ b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMediaPeriod.java @@ -29,6 +29,7 @@ import androidx.media3.common.Format; import androidx.media3.common.StreamKey; import androidx.media3.common.TrackGroup; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import androidx.media3.decoder.DecoderInputBuffer; @@ -58,7 +59,6 @@ import java.util.ArrayList; import java.util.List; import javax.net.SocketFactory; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** A {@link MediaPeriod} that loads an RTSP stream. */ diff --git a/libraries/exoplayer_smoothstreaming/build.gradle b/libraries/exoplayer_smoothstreaming/build.gradle index 71f820151f6..150a9199fc0 100644 --- a/libraries/exoplayer_smoothstreaming/build.gradle +++ b/libraries/exoplayer_smoothstreaming/build.gradle @@ -35,7 +35,6 @@ dependencies { implementation project(modulePrefix + 'lib-exoplayer') compileOnly 'com.google.errorprone:error_prone_annotations:' + errorProneVersion compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion - compileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion testImplementation project(modulePrefix + 'test-utils-robolectric') diff --git a/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaPeriod.java b/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaPeriod.java index dff66a7e519..114c2aaf759 100644 --- a/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaPeriod.java +++ b/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/SsMediaPeriod.java @@ -20,6 +20,7 @@ import androidx.media3.common.Format; import androidx.media3.common.StreamKey; import androidx.media3.common.TrackGroup; +import androidx.media3.common.util.NullableType; import androidx.media3.datasource.TransferListener; import androidx.media3.exoplayer.SeekParameters; import androidx.media3.exoplayer.drm.DrmSessionEventListener; @@ -40,7 +41,6 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** A SmoothStreaming {@link MediaPeriod}. */ /* package */ final class SsMediaPeriod diff --git a/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/manifest/SsManifestParser.java b/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/manifest/SsManifestParser.java index 4160e6b3a91..225569786b0 100644 --- a/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/manifest/SsManifestParser.java +++ b/libraries/exoplayer_smoothstreaming/src/main/java/androidx/media3/exoplayer/smoothstreaming/manifest/SsManifestParser.java @@ -28,6 +28,7 @@ import androidx.media3.common.ParserException; import androidx.media3.common.util.Assertions; import androidx.media3.common.util.CodecSpecificDataUtil; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import androidx.media3.exoplayer.smoothstreaming.manifest.SsManifest.ProtectionElement; @@ -43,7 +44,6 @@ import java.util.LinkedList; import java.util.List; import java.util.UUID; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserFactory; diff --git a/libraries/extractor/build.gradle b/libraries/extractor/build.gradle index a54955455f7..080f8f97199 100644 --- a/libraries/extractor/build.gradle +++ b/libraries/extractor/build.gradle @@ -39,7 +39,6 @@ dependencies { implementation project(modulePrefix + 'lib-decoder') compileOnly 'com.google.errorprone:error_prone_annotations:' + errorProneVersion compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion - compileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion testImplementation project(modulePrefix + 'lib-exoplayer') testImplementation project(modulePrefix + 'test-utils') diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mkv/MatroskaExtractor.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mkv/MatroskaExtractor.java index a678e8cb82e..ed466f81474 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mkv/MatroskaExtractor.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mkv/MatroskaExtractor.java @@ -37,6 +37,7 @@ import androidx.media3.common.ParserException; import androidx.media3.common.util.Log; import androidx.media3.common.util.LongArray; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.ParsableByteArray; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; @@ -71,7 +72,6 @@ import java.util.Locale; import java.util.Map; import java.util.UUID; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.checkerframework.checker.nullness.qual.EnsuresNonNull; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.checkerframework.checker.nullness.qual.RequiresNonNull; diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java index 89c45c28388..419a0bbc0ac 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/AtomParsers.java @@ -31,6 +31,7 @@ import androidx.media3.common.ParserException; import androidx.media3.common.util.CodecSpecificDataUtil; import androidx.media3.common.util.Log; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.ParsableByteArray; import androidx.media3.common.util.Util; import androidx.media3.container.Mp4LocationData; @@ -54,7 +55,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** Utility methods for parsing MP4 format atom payloads according to ISO/IEC 14496-12. */ @SuppressWarnings("ConstantField") diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/MetadataUtil.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/MetadataUtil.java index a8610367da1..67dfa3c0f8a 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/MetadataUtil.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/MetadataUtil.java @@ -23,6 +23,7 @@ import androidx.media3.common.Format; import androidx.media3.common.Metadata; import androidx.media3.common.util.Log; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.ParsableByteArray; import androidx.media3.container.MdtaMetadataEntry; import androidx.media3.extractor.GaplessInfoHolder; @@ -32,7 +33,6 @@ import androidx.media3.extractor.metadata.id3.InternalFrame; import androidx.media3.extractor.metadata.id3.TextInformationFrame; import com.google.common.collect.ImmutableList; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** Utilities for handling metadata in MP4. */ /* package */ final class MetadataUtil { diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/text/cea/Cea608Decoder.java b/libraries/extractor/src/main/java/androidx/media3/extractor/text/cea/Cea608Decoder.java index 9a975939afe..7c54f93a4e9 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/text/cea/Cea608Decoder.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/text/cea/Cea608Decoder.java @@ -33,6 +33,7 @@ import androidx.media3.common.text.Cue; import androidx.media3.common.util.Assertions; import androidx.media3.common.util.Log; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.ParsableByteArray; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; @@ -45,7 +46,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** A {@link SubtitleDecoder} for CEA-608 (also known as "line 21 captions" and "EIA-608"). */ @UnstableApi diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/ts/TsExtractor.java b/libraries/extractor/src/main/java/androidx/media3/extractor/ts/TsExtractor.java index ea033b979b1..f679fcf1308 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/ts/TsExtractor.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/ts/TsExtractor.java @@ -26,6 +26,7 @@ import androidx.media3.common.C; import androidx.media3.common.ParserException; import androidx.media3.common.util.Assertions; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.ParsableBitArray; import androidx.media3.common.util.ParsableByteArray; import androidx.media3.common.util.TimestampAdjuster; @@ -51,7 +52,6 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** Extracts data from the MPEG-2 TS container format. */ diff --git a/libraries/session/build.gradle b/libraries/session/build.gradle index 243dbc271f8..df6c048d818 100644 --- a/libraries/session/build.gradle +++ b/libraries/session/build.gradle @@ -41,7 +41,6 @@ dependencies { api project(modulePrefix + 'lib-common') compileOnly 'com.google.errorprone:error_prone_annotations:' + errorProneVersion compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion - compileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion implementation 'androidx.collection:collection:' + androidxCollectionVersion implementation 'androidx.media:media:' + androidxMediaVersion androidTestImplementation 'com.squareup.okhttp3:mockwebserver:' + okhttpVersion diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplLegacy.java b/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplLegacy.java index 3a28f0c4782..df0c473a5eb 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplLegacy.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaControllerImplLegacy.java @@ -70,6 +70,7 @@ import androidx.media3.common.util.Clock; import androidx.media3.common.util.ListenerSet; import androidx.media3.common.util.Log; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.Size; import androidx.media3.common.util.Util; import com.google.common.collect.ImmutableList; @@ -84,7 +85,6 @@ import java.util.concurrent.Future; import java.util.concurrent.atomic.AtomicInteger; import org.checkerframework.checker.initialization.qual.UnderInitialization; -import org.checkerframework.checker.nullness.compatqual.NullableType; /* package */ class MediaControllerImplLegacy implements MediaController.MediaControllerImpl { diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaLibraryServiceLegacyStub.java b/libraries/session/src/main/java/androidx/media3/session/MediaLibraryServiceLegacyStub.java index dcec2bf1346..6d1fb5e7a1f 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaLibraryServiceLegacyStub.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaLibraryServiceLegacyStub.java @@ -41,6 +41,7 @@ import androidx.media3.common.MediaMetadata; import androidx.media3.common.util.ConditionVariable; import androidx.media3.common.util.Log; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.Util; import androidx.media3.session.MediaLibraryService.LibraryParams; import androidx.media3.session.MediaSession.ControllerCb; @@ -58,7 +59,6 @@ import java.util.concurrent.Future; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** * Implementation of {@link MediaBrowserServiceCompat} for interoperability between {@link diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java b/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java index 49d9723fe08..8a56dc6b0d5 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaSessionLegacyStub.java @@ -85,6 +85,7 @@ import androidx.media3.common.Rating; import androidx.media3.common.Timeline; import androidx.media3.common.util.Log; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.Util; import androidx.media3.session.MediaSession.ControllerCb; import androidx.media3.session.MediaSession.ControllerInfo; @@ -103,7 +104,6 @@ import java.util.concurrent.Future; import java.util.concurrent.atomic.AtomicInteger; import org.checkerframework.checker.initialization.qual.Initialized; -import org.checkerframework.checker.nullness.compatqual.NullableType; // Getting the commands from MediaControllerCompat' /* package */ class MediaSessionLegacyStub extends MediaSessionCompat.Callback { diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaStyleNotificationHelper.java b/libraries/session/src/main/java/androidx/media3/session/MediaStyleNotificationHelper.java index 739c0baefa1..e0666beccf0 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaStyleNotificationHelper.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaStyleNotificationHelper.java @@ -29,9 +29,9 @@ import androidx.annotation.RequiresApi; import androidx.core.app.NotificationBuilderWithBuilderAccessor; import androidx.media3.common.util.Assertions; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import com.google.errorprone.annotations.CanIgnoreReturnValue; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** * Class containing media specfic {@link androidx.core.app.NotificationCompat.Style styles} that you diff --git a/libraries/session/src/main/java/androidx/media3/session/MediaUtils.java b/libraries/session/src/main/java/androidx/media3/session/MediaUtils.java index a15d5fe0c33..9d90276bb2c 100644 --- a/libraries/session/src/main/java/androidx/media3/session/MediaUtils.java +++ b/libraries/session/src/main/java/androidx/media3/session/MediaUtils.java @@ -93,6 +93,7 @@ import androidx.media3.common.Timeline.Period; import androidx.media3.common.Timeline.Window; import androidx.media3.common.util.Log; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.Util; import androidx.media3.session.MediaLibraryService.LibraryParams; import androidx.media3.session.PlayerInfo.BundlingExclusions; @@ -104,7 +105,6 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.concurrent.TimeoutException; -import org.checkerframework.checker.nullness.compatqual.NullableType; /* package */ final class MediaUtils { diff --git a/libraries/test_utils/build.gradle b/libraries/test_utils/build.gradle index 9b381964848..663864ed31c 100644 --- a/libraries/test_utils/build.gradle +++ b/libraries/test_utils/build.gradle @@ -32,7 +32,6 @@ dependencies { api 'com.google.truth:truth:' + truthVersion api 'com.google.truth.extensions:truth-java8-extension:' + truthVersion compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion - compileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion implementation 'com.squareup.okhttp3:mockwebserver:' + okhttpVersion diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/AdditionalFailureInfo.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/AdditionalFailureInfo.java index 9fb998ca1da..8f4ee1cb215 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/AdditionalFailureInfo.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/AdditionalFailureInfo.java @@ -17,11 +17,11 @@ import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import com.google.common.truth.Truth; import java.util.concurrent.atomic.AtomicReference; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.junit.Rule; import org.junit.rules.TestRule; import org.junit.runner.Description; diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/DumpableFormat.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/DumpableFormat.java index 29281759543..7bbf8aa99c5 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/DumpableFormat.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/DumpableFormat.java @@ -18,10 +18,10 @@ import androidx.annotation.Nullable; import androidx.media3.common.ColorInfo; import androidx.media3.common.Format; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import com.google.common.base.Function; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** Wraps a {@link Format} to allow dumping it. */ @UnstableApi diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeAdaptiveMediaPeriod.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeAdaptiveMediaPeriod.java index ff73d7431e2..c7f3c48134f 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeAdaptiveMediaPeriod.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeAdaptiveMediaPeriod.java @@ -24,6 +24,7 @@ import androidx.media3.common.MimeTypes; import androidx.media3.common.TrackGroup; import androidx.media3.common.util.Assertions; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import androidx.media3.datasource.DataSpec; @@ -46,7 +47,6 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** * Fake {@link MediaPeriod} that provides tracks from the given {@link TrackGroupArray}. Selecting a diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeMediaPeriod.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeMediaPeriod.java index 81e25d73cb7..0e8d91b86db 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeMediaPeriod.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeMediaPeriod.java @@ -28,6 +28,7 @@ import androidx.media3.common.C; import androidx.media3.common.Format; import androidx.media3.common.TrackGroup; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import androidx.media3.datasource.DataSpec; @@ -49,7 +50,6 @@ import java.util.Collections; import java.util.List; import java.util.Set; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** Fake {@link MediaPeriod} that provides tracks from the given {@link TrackGroupArray}. */ @UnstableApi diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeTrackSelector.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeTrackSelector.java index 1fa7bf119c5..12da157fd5e 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeTrackSelector.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeTrackSelector.java @@ -17,6 +17,7 @@ import androidx.media3.common.Timeline; import androidx.media3.common.TrackGroup; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.exoplayer.RendererCapabilities.AdaptiveSupport; import androidx.media3.exoplayer.RendererCapabilities.Capabilities; @@ -29,7 +30,6 @@ import androidx.test.core.app.ApplicationProvider; import java.util.ArrayList; import java.util.List; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** A fake {@link MappingTrackSelector} that returns {@link FakeTrackSelection}s. */ @UnstableApi diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/TimelineAsserts.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/TimelineAsserts.java index c28e0f09269..6033b23660f 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/TimelineAsserts.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/TimelineAsserts.java @@ -25,9 +25,9 @@ import androidx.media3.common.Timeline.Period; import androidx.media3.common.Timeline.Window; import androidx.media3.common.util.Assertions; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** Assertion methods for {@link Timeline}. */ @UnstableApi diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/WebServerDispatcher.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/WebServerDispatcher.java index 5deda72c858..2dc0af52aa5 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/WebServerDispatcher.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/WebServerDispatcher.java @@ -26,6 +26,7 @@ import android.util.Pair; import androidx.annotation.IntDef; import androidx.annotation.Nullable; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import com.google.common.base.Joiner; @@ -46,7 +47,6 @@ import okhttp3.mockwebserver.MockResponse; import okhttp3.mockwebserver.RecordedRequest; import okio.Buffer; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/truth/SpannedSubject.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/truth/SpannedSubject.java index b76e9141817..01b014f40ed 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/truth/SpannedSubject.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/truth/SpannedSubject.java @@ -41,6 +41,7 @@ import androidx.media3.common.text.RubySpan; import androidx.media3.common.text.TextAnnotation; import androidx.media3.common.text.TextEmphasisSpan; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import com.google.common.truth.Fact; @@ -50,7 +51,6 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.checkerframework.checker.nullness.qual.RequiresNonNull; /** A Truth {@link Subject} for assertions on {@link Spanned} instances containing text styling. */ diff --git a/libraries/test_utils_robolectric/build.gradle b/libraries/test_utils_robolectric/build.gradle index 24ceaad05e5..e0226e3a1a9 100644 --- a/libraries/test_utils_robolectric/build.gradle +++ b/libraries/test_utils_robolectric/build.gradle @@ -26,7 +26,6 @@ android { dependencies { compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion - compileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion implementation 'org.robolectric:robolectric:' + robolectricVersion diff --git a/libraries/test_utils_robolectric/src/main/java/androidx/media3/test/utils/robolectric/TestPlayerRunHelper.java b/libraries/test_utils_robolectric/src/main/java/androidx/media3/test/utils/robolectric/TestPlayerRunHelper.java index 173b6d26835..8e732ce09a3 100644 --- a/libraries/test_utils_robolectric/src/main/java/androidx/media3/test/utils/robolectric/TestPlayerRunHelper.java +++ b/libraries/test_utils_robolectric/src/main/java/androidx/media3/test/utils/robolectric/TestPlayerRunHelper.java @@ -24,6 +24,7 @@ import androidx.media3.common.Player; import androidx.media3.common.Timeline; import androidx.media3.common.util.ConditionVariable; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import androidx.media3.exoplayer.ExoPlaybackException; @@ -31,7 +32,6 @@ import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** * Helper methods to block the calling thread until the provided {@link ExoPlayer} instance reaches diff --git a/libraries/transformer/build.gradle b/libraries/transformer/build.gradle index e9de868a6af..a02f2162487 100644 --- a/libraries/transformer/build.gradle +++ b/libraries/transformer/build.gradle @@ -50,19 +50,16 @@ dependencies { implementation project(modulePrefix + 'lib-muxer') compileOnly 'com.google.errorprone:error_prone_annotations:' + errorProneVersion compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion - compileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion testImplementation project(modulePrefix + 'test-utils-robolectric') testImplementation project(modulePrefix + 'test-utils') testImplementation project(modulePrefix + 'test-data') testImplementation 'org.robolectric:robolectric:' + robolectricVersion testImplementation 'com.google.truth:truth:' + truthVersion - testCompileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion androidTestImplementation 'junit:junit:' + junitVersion androidTestImplementation 'androidx.test:runner:' + androidxTestRunnerVersion androidTestImplementation 'com.google.truth:truth:' + truthVersion androidTestImplementation project(modulePrefix + 'test-utils') - androidTestCompileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion } ext { diff --git a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerAndroidTestRunner.java b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerAndroidTestRunner.java index eb88ed8836b..8feaab07071 100644 --- a/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerAndroidTestRunner.java +++ b/libraries/transformer/src/androidTest/java/androidx/media3/transformer/TransformerAndroidTestRunner.java @@ -29,6 +29,7 @@ import androidx.media3.common.C; import androidx.media3.common.MediaItem; import androidx.media3.common.util.Log; +import androidx.media3.common.util.NullableType; import androidx.media3.common.util.SystemClock; import androidx.media3.common.util.Util; import androidx.media3.effect.DebugTraceUtil; @@ -43,7 +44,6 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicReference; -import org.checkerframework.checker.nullness.compatqual.NullableType; import org.json.JSONObject; /** An android instrumentation test runner for {@link Transformer}. */ diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerTestRunner.java b/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerTestRunner.java index 2ae267d073a..60254362486 100644 --- a/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerTestRunner.java +++ b/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerTestRunner.java @@ -19,11 +19,11 @@ import static androidx.media3.common.util.Assertions.checkNotNull; import static androidx.media3.test.utils.robolectric.RobolectricUtil.runLooperUntil; +import androidx.media3.common.util.NullableType; import androidx.media3.test.utils.robolectric.RobolectricUtil; import java.util.Objects; import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicReference; -import org.checkerframework.checker.nullness.compatqual.NullableType; /** Helper class to run a {@link Transformer} test. */ public final class TransformerTestRunner {