diff --git a/constants.gradle b/constants.gradle index b1c2c636c7..9510b8442e 100644 --- a/constants.gradle +++ b/constants.gradle @@ -25,6 +25,7 @@ project.ext { autoServiceVersion = '1.0-rc4' checkerframeworkVersion = '2.5.0' jsr305Version = '3.0.2' + kotlinAnnotationsVersion = '1.3.31' androidXTestVersion = '1.1.0' truthVersion = '0.44' modulePrefix = ':' diff --git a/library/core/build.gradle b/library/core/build.gradle index fda2f079de..d6aee8a35d 100644 --- a/library/core/build.gradle +++ b/library/core/build.gradle @@ -61,8 +61,7 @@ dependencies { compileOnly 'com.google.code.findbugs:jsr305:' + jsr305Version compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion compileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkVersion - // Uncomment to enable Kotlin non-null strict mode. See [internal: b/138703808]. - // compileOnly "org.jetbrains.kotlin:kotlin-annotations-jvm:1.1.60" + compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion androidTestImplementation 'androidx.test:runner:' + androidXTestVersion androidTestImplementation 'androidx.test.ext:junit:' + androidXTestVersion androidTestImplementation 'com.google.truth:truth:' + truthVersion diff --git a/library/core/proguard-rules.txt b/library/core/proguard-rules.txt index 1f7a8d0ee7..ab3cc5fccd 100644 --- a/library/core/proguard-rules.txt +++ b/library/core/proguard-rules.txt @@ -58,5 +58,6 @@ (com.google.android.exoplayer2.upstream.DataSource$Factory); } -# Don't warn about checkerframework +# Don't warn about checkerframework and Kotlin annotations -dontwarn org.checkerframework.** +-dontwarn kotlin.annotations.jvm.** diff --git a/library/core/src/main/java/com/google/android/exoplayer2/util/NonNullApi.java b/library/core/src/main/java/com/google/android/exoplayer2/util/NonNullApi.java index bd7a70eba0..7678710f18 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/util/NonNullApi.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/util/NonNullApi.java @@ -20,8 +20,8 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import javax.annotation.Nonnull; import javax.annotation.meta.TypeQualifierDefault; -// import kotlin.annotations.jvm.MigrationStatus; -// import kotlin.annotations.jvm.UnderMigration; +import kotlin.annotations.jvm.MigrationStatus; +import kotlin.annotations.jvm.UnderMigration; /** * Annotation to declare all type usages in the annotated instance as {@link Nonnull}, unless @@ -29,8 +29,6 @@ import javax.annotation.meta.TypeQualifierDefault; */ @Nonnull @TypeQualifierDefault(ElementType.TYPE_USE) -// TODO(internal: b/138703808): Uncomment to ensure Kotlin issues compiler errors when non-null -// types are used incorrectly. -// @UnderMigration(status = MigrationStatus.STRICT) +@UnderMigration(status = MigrationStatus.STRICT) @Retention(RetentionPolicy.CLASS) public @interface NonNullApi {}