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