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