xref: /aosp_15_r20/external/robolectric/buildSrc/src/main/java/AndroidSdk.kt (revision e6ba16074e6af37d123cb567d575f496bf0a58ee)
1 class AndroidSdk(
2   val apiLevel: Int,
3   val androidVersion: String,
4   private val frameworkSdkBuildVersion: String,
5 ) : Comparable<AndroidSdk> {
6   val groupId: String
7     get() = "org.robolectric"
8 
9   val artifactId: String
10     get() = "android-all"
11 
12   val preinstrumentedArtifactId: String
13     get() = "android-all-instrumented"
14 
15   val version: String
16     get() = "$androidVersion-robolectric-$frameworkSdkBuildVersion"
17 
18   val preinstrumentedVersion: String
19     get() = "$version-i$PREINSTRUMENTED_VERSION"
20 
21   val coordinates: String
22     get() = "$groupId:$artifactId:$version"
23 
24   val preinstrumentedCoordinates: String
25     get() = "$groupId:$preinstrumentedArtifactId:$preinstrumentedVersion"
26 
27   val jarFileName: String
28     get() = "android-all-$version.jar"
29 
30   val preinstrumentedJarFileName: String
31     get() = "android-all-instrumented-$preinstrumentedVersion.jar"
32 
compareTonull33   override fun compareTo(other: AndroidSdk): Int {
34     return apiLevel - other.apiLevel
35   }
36 
equalsnull37   override fun equals(other: Any?): Boolean {
38     return when {
39       this === other -> true
40       other !is AndroidSdk -> false
41       apiLevel != other.apiLevel -> false
42       else -> true
43     }
44   }
45 
hashCodenull46   override fun hashCode(): Int {
47     return apiLevel
48   }
49 
50   companion object {
51     private const val PREINSTRUMENTED_VERSION = 7
52 
53     val LOLLIPOP = AndroidSdk(21, "5.0.2_r3", "r0")
54     val LOLLIPOP_MR1 = AndroidSdk(22, "5.1.1_r9", "r2")
55     val M = AndroidSdk(23, "6.0.1_r3", "r1")
56     val N = AndroidSdk(24, "7.0.0_r1", "r1")
57     val N_MR1 = AndroidSdk(25, "7.1.0_r7", "r1")
58     val O = AndroidSdk(26, "8.0.0_r4", "r1")
59     val O_MR1 = AndroidSdk(27, "8.1.0", "4611349")
60     val P = AndroidSdk(28, "9", "4913185-2")
61     val Q = AndroidSdk(29, "10", "5803371")
62     val R = AndroidSdk(30, "11", "6757853")
63     val S = AndroidSdk(31, "12", "7732740")
64     val S_V2 = AndroidSdk(32, "12.1", "8229987")
65     val TIRAMISU = AndroidSdk(33, "13", "9030017")
66     val U = AndroidSdk(34, "14", "10818077")
67     val V = AndroidSdk(35, "15", "12650502")
68 
69     val ALL_SDKS =
70       listOf(LOLLIPOP, LOLLIPOP_MR1, M, N, N_MR1, O, O_MR1, P, Q, R, S, S_V2, TIRAMISU, U, V)
71 
<lambda>null72     val MAX_SDK = ALL_SDKS.maxBy { it.apiLevel }
73   }
74 }
75