• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1class AndroidSdk implements Comparable<AndroidSdk> {
2    static final PREINSTRUMENTED_VERSION = 6
3
4    static final LOLLIPOP = new AndroidSdk(21, "5.0.2_r3", "r0")
5    static final LOLLIPOP_MR1 = new AndroidSdk(22, "5.1.1_r9", "r2")
6    static final M = new AndroidSdk(23, "6.0.1_r3", "r1")
7    static final N = new AndroidSdk(24, "7.0.0_r1", "r1")
8    static final N_MR1 = new AndroidSdk(25, "7.1.0_r7", "r1")
9    static final O = new AndroidSdk(26, "8.0.0_r4", "r1")
10    static final O_MR1 = new AndroidSdk(27, "8.1.0", "4611349")
11    static final P = new AndroidSdk(28, "9", "4913185-2")
12    static final Q = new AndroidSdk(29, "10", "5803371")
13    static final R = new AndroidSdk(30, "11", "6757853")
14    static final S = new AndroidSdk(31, "12", "7732740")
15    static final S_V2 = new AndroidSdk(32, "12.1", "8229987")
16    static final TIRAMISU = new AndroidSdk(33, "13", "9030017")
17    static final U = new AndroidSdk(34, "14", "10818077")
18
19    static final List<AndroidSdk> ALL_SDKS = [
20            LOLLIPOP, LOLLIPOP_MR1, M, N, N_MR1, O, O_MR1, P, Q, R, S, S_V2,
21            TIRAMISU, U
22    ]
23
24    static final MAX_SDK = Collections.max(ALL_SDKS)
25
26    public final int apiLevel
27    public final String androidVersion
28    private final String frameworkSdkBuildVersion
29
30    AndroidSdk(int apiLevel, String androidVersion, String frameworkSdkBuildVersion) {
31        this.apiLevel = apiLevel
32        this.androidVersion = androidVersion
33        this.frameworkSdkBuildVersion = frameworkSdkBuildVersion
34    }
35
36    static String getGroupId() {
37        return "org.robolectric"
38    }
39
40    static String getArtifactId() {
41        return "android-all"
42    }
43
44    static String getPreinstrumentedArtifactId() {
45        return "android-all-instrumented"
46    }
47
48    String getVersion() {
49        return "${androidVersion}-robolectric-${frameworkSdkBuildVersion}"
50    }
51
52    String getPreinstrumentedVersion() {
53        return "${androidVersion}-robolectric-${frameworkSdkBuildVersion}-i${PREINSTRUMENTED_VERSION}"
54    }
55
56    String getCoordinates() {
57        return "${groupId}:${artifactId}:${version}"
58    }
59
60    String getPreinstrumentedCoordinates() {
61        return "${groupId}:${preinstrumentedArtifactId}:${preinstrumentedVersion}"
62    }
63
64    String getJarFileName() {
65        return "android-all-${androidVersion}-robolectric-${frameworkSdkBuildVersion}.jar"
66    }
67
68    String getPreinstrumentedJarFileName() {
69        return "android-all-instrumented-${preinstrumentedVersion}.jar"
70    }
71
72    @Override
73    int compareTo(AndroidSdk other) {
74        return apiLevel - other.apiLevel
75    }
76
77    @Override
78    boolean equals(o) {
79        if (this.is(o)) return true
80        if (getClass() != o.class) return false
81
82        AndroidSdk that = (AndroidSdk) o
83
84        if (apiLevel != that.apiLevel) return false
85
86        return true
87    }
88
89    @Override
90    int hashCode() {
91        return apiLevel
92    }
93}
94