buildSrc/src/main/kotlin/AndroidJavaVersion.kt
changeset 19 91a3ad3b1b9c
parent 10 9aad34f43f71
child 20 5d8a0555733d
--- a/buildSrc/src/main/kotlin/AndroidJavaVersion.kt	Wed Oct 06 16:05:47 2021 -0400
+++ b/buildSrc/src/main/kotlin/AndroidJavaVersion.kt	Tue Nov 29 14:05:44 2022 -0400
@@ -21,6 +21,8 @@
  */
 package com.geekorum.build
 
+import com.android.build.api.dsl.CommonExtension
+import com.android.build.api.dsl.DefaultConfig
 import com.android.build.gradle.BaseExtension
 import org.gradle.api.JavaVersion
 import org.gradle.api.Project
@@ -31,9 +33,15 @@
 /**
  * Configure java version compile options based on minSdkVersion value
  */
+@Suppress("UNCHECKED_CAST")
 fun BaseExtension.configureJavaVersion() {
-    val api = defaultConfig.minSdkVersion?.apiLevel ?: 0
+    (this as CommonExtension<*, *, DefaultConfig, *>).configureJavaVersion()
+}
+
+fun CommonExtension<*, *, DefaultConfig, *>.configureJavaVersion() {
+    val api = defaultConfig.minSdk ?: 1
     val version = when {
+        api >= 30 -> JavaVersion.VERSION_11
         api >= 24 -> JavaVersion.VERSION_1_8
         api >= 19 -> JavaVersion.VERSION_1_7
         else -> JavaVersion.VERSION_1_6
@@ -51,7 +59,7 @@
 }
 
 /**
- * Add missing annotation processord dependencies to build on Java 11
+ * Add missing annotation processor dependencies to build on Java 11
  */
 fun Project.configureAnnotationProcessorDeps() {
     dependencies {
@@ -62,11 +70,8 @@
                     add(name, "com.sun.xml.bind:jaxb-core:2.3.0.1")
                     add(name, "com.sun.xml.bind:jaxb-impl:2.3.2")
                 }
+
                 "annotationProcessor" -> add(name, "javax.xml.bind:jaxb-api:2.3.1")
-                // I guess that on AGP 4.x+ testAnnotationProcessor inherit from annotationProcessor
-                // not on 3.6.x
-                "testAnnotationProcessor" -> add(name, "javax.xml.bind:jaxb-api:2.3.1")
-                "androidTestAnnotationProcessor" -> add(name, "javax.xml.bind:jaxb-api:2.3.1")
             }
         }
     }