blob: 29e5cf616e4a2dc9cbd1118e95c9895d4ce7e92a [file] [log] [blame]
class AndroidSdk implements Comparable<AndroidSdk> {
static final PREINSTRUMENTED_VERSION = 4
static final KITKAT = new AndroidSdk(19, "4.4_r1", "r2")
static final LOLLIPOP = new AndroidSdk(21, "5.0.2_r3", "r0")
static final LOLLIPOP_MR1 = new AndroidSdk(22, "5.1.1_r9", "r2")
static final M = new AndroidSdk(23, "6.0.1_r3", "r1")
static final N = new AndroidSdk(24, "7.0.0_r1", "r1")
static final N_MR1 = new AndroidSdk(25, "7.1.0_r7", "r1")
static final O = new AndroidSdk(26, "8.0.0_r4", "r1")
static final O_MR1 = new AndroidSdk(27, "8.1.0", "4611349")
static final P = new AndroidSdk(28, "9", "4913185-2");
static final Q = new AndroidSdk(29, "10", "5803371");
static final R = new AndroidSdk(30, "11", "6757853");
static final S = new AndroidSdk(31, "12", "7732740");
static final S_V2 = new AndroidSdk(32, "12.1", "8229987");
static final TIRAMISU = new AndroidSdk(33, "13", "9030017");
static final U = new AndroidSdk(34, "14", "10818077");
static final List<AndroidSdk> ALL_SDKS = [
KITKAT,
LOLLIPOP, LOLLIPOP_MR1, M, N, N_MR1, O, O_MR1, P, Q, R, S, S_V2,
TIRAMISU, U
]
static final MAX_SDK = Collections.max(ALL_SDKS)
public final int apiLevel
private final String androidVersion
private final String frameworkSdkBuildVersion
AndroidSdk(int apiLevel, String androidVersion, String frameworkSdkBuildVersion) {
this.apiLevel = apiLevel
this.androidVersion = androidVersion
this.frameworkSdkBuildVersion = frameworkSdkBuildVersion
}
String getGroupId() {
return "org.robolectric"
}
String getArtifactId() {
return "android-all"
}
String getPreinstrumentedArtifactId() {
return "android-all-instrumented"
}
String getVersion() {
return "${androidVersion}-robolectric-${frameworkSdkBuildVersion}"
}
String getPreinstrumentedVersion() {
return "${androidVersion}-robolectric-${frameworkSdkBuildVersion}-i${PREINSTRUMENTED_VERSION}"
}
String getCoordinates() {
return "${groupId}:${artifactId}:${version}"
}
String getPreinstrumentedCoordinates() {
return "${groupId}:${preinstrumentedArtifactId}:${preinstrumentedVersion}"
}
String getJarFileName() {
return "android-all-${androidVersion}-robolectric-${frameworkSdkBuildVersion}.jar"
}
String getPreinstrumentedJarFileName() {
return "android-all-instrumented-${preinstrumentedVersion}.jar"
}
@Override
int compareTo(AndroidSdk other) {
return apiLevel - other.apiLevel
}
boolean equals(o) {
if (this.is(o)) return true
if (getClass() != o.class) return false
AndroidSdk that = (AndroidSdk) o
if (apiLevel != that.apiLevel) return false
return true
}
int hashCode() {
return apiLevel
}
}