diff --git a/android/api_levels.go b/android/api_levels.go index aa55aa149..81638940c 100644 --- a/android/api_levels.go +++ b/android/api_levels.go @@ -54,14 +54,6 @@ type ApiLevel struct { isPreview bool } -func (this ApiLevel) FinalInt() int { - if this.IsPreview() { - panic("Requested a final int from a non-final ApiLevel") - } else { - return this.number - } -} - func (this ApiLevel) FinalOrFutureInt() int { if this.IsPreview() { return FutureApiLevelInt diff --git a/java/base.go b/java/base.go index 4932c4831..245ffbb3d 100644 --- a/java/base.go +++ b/java/base.go @@ -1478,30 +1478,11 @@ func (j *Module) compile(ctx android.ModuleContext, aaptSrcJar android.Path) { } if ctx.Device() { - lintSDKVersion := func(sdkSpec android.SdkSpec) int { + lintSDKVersion := func(sdkSpec android.SdkSpec) android.ApiLevel { if v := sdkSpec.ApiLevel; !v.IsPreview() { - return v.FinalInt() + return v } else { - // When running metalava, we pass --version-codename. When that value - // is not REL, metalava will add 1 to the --current-version argument. - // On old branches, PLATFORM_SDK_VERSION is the latest version (for that - // branch) and the codename is REL, except potentially on the most - // recent non-master branch. On that branch, it goes through two other - // phases before it gets to the phase previously described: - // - PLATFORM_SDK_VERSION has not been updated yet, and the codename - // is not rel. This happens for most of the internal branch's life - // while the branch has been cut but is still under active development. - // - PLATFORM_SDK_VERSION has been set, but the codename is still not - // REL. This happens briefly during the release process. During this - // state the code to add --current-version is commented out, and then - // that commenting out is reverted after the codename is set to REL. - // On the master branch, the PLATFORM_SDK_VERSION always represents a - // prior version and the codename is always non-REL. - // - // We need to add one here to match metalava adding 1. Technically - // this means that in the state described in the second bullet point - // above, this number is 1 higher than it should be. - return ctx.Config().PlatformSdkVersion().FinalInt() + 1 + return ctx.Config().DefaultAppTargetSdk(ctx) } } diff --git a/java/lint.go b/java/lint.go index f09db955d..426a2af25 100644 --- a/java/lint.go +++ b/java/lint.go @@ -17,7 +17,6 @@ package java import ( "fmt" "sort" - "strconv" "strings" "github.com/google/blueprint/proptools" @@ -76,9 +75,9 @@ type linter struct { extraLintCheckJars android.Paths test bool library bool - minSdkVersion int - targetSdkVersion int - compileSdkVersion int + minSdkVersion android.ApiLevel + targetSdkVersion android.ApiLevel + compileSdkVersion android.ApiLevel compileSdkKind android.SdkKind javaLanguageLevel string kotlinLanguageLevel string @@ -300,8 +299,8 @@ func (l *linter) generateManifest(ctx android.ModuleContext, rule *android.RuleB Text(`echo "" &&`). Text(`echo "" &&`). - Textf(`echo " " &&`, - l.minSdkVersion, l.targetSdkVersion). + Textf(`echo " " &&`, + l.minSdkVersion.String(), l.targetSdkVersion.String()). Text(`echo ""`). Text(") >").Output(manifestPath) @@ -326,7 +325,7 @@ func (l *linter) lint(ctx android.ModuleContext) { return } - if l.minSdkVersion != l.compileSdkVersion { + if l.minSdkVersion.CompareTo(l.compileSdkVersion) == -1 { l.extraMainlineLintErrors = append(l.extraMainlineLintErrors, updatabilityChecks...) _, filtered := android.FilterList(l.properties.Lint.Warning_checks, updatabilityChecks) if len(filtered) != 0 { @@ -428,7 +427,7 @@ func (l *linter) lint(ctx android.ModuleContext) { FlagWithOutput("--html ", html). FlagWithOutput("--text ", text). FlagWithOutput("--xml ", xml). - FlagWithArg("--compile-sdk-version ", strconv.Itoa(l.compileSdkVersion)). + FlagWithArg("--compile-sdk-version ", l.compileSdkVersion.String()). FlagWithArg("--java-language-level ", l.javaLanguageLevel). FlagWithArg("--kotlin-language-level ", l.kotlinLanguageLevel). FlagWithArg("--url ", fmt.Sprintf(".=.,%s=out", android.PathForOutput(ctx).String())).