Merge "Support two active sdks in EffectiveVersionString"
This commit is contained in:
@@ -211,7 +211,29 @@ func (s SdkSpec) EffectiveVersionString(ctx EarlyModuleContext) (string, error)
|
||||
if !s.ApiLevel.IsPreview() {
|
||||
return s.ApiLevel.String(), nil
|
||||
}
|
||||
return ctx.Config().DefaultAppTargetSdk(ctx).String(), nil
|
||||
// Determine the default sdk
|
||||
ret := ctx.Config().DefaultAppTargetSdk(ctx)
|
||||
if !ret.IsPreview() {
|
||||
// If the default sdk has been finalized, return that
|
||||
return ret.String(), nil
|
||||
}
|
||||
// There can be more than one active in-development sdks
|
||||
// If an app is targeting an active sdk, but not the default one, return the requested active sdk.
|
||||
// e.g.
|
||||
// SETUP
|
||||
// In-development: UpsideDownCake, VanillaIceCream
|
||||
// Default: VanillaIceCream
|
||||
// Android.bp
|
||||
// min_sdk_version: `UpsideDownCake`
|
||||
// RETURN
|
||||
// UpsideDownCake and not VanillaIceCream
|
||||
for _, preview := range ctx.Config().PreviewApiLevels() {
|
||||
if s.ApiLevel.String() == preview.String() {
|
||||
return preview.String(), nil
|
||||
}
|
||||
}
|
||||
// Otherwise return the default one
|
||||
return ret.String(), nil
|
||||
}
|
||||
|
||||
var (
|
||||
|
@@ -1005,6 +1005,7 @@ func TestAppSdkVersion(t *testing.T) {
|
||||
platformSdkInt int
|
||||
platformSdkCodename string
|
||||
platformSdkFinal bool
|
||||
minSdkVersionBp string
|
||||
expectedMinSdkVersion string
|
||||
platformApis bool
|
||||
activeCodenames []string
|
||||
@@ -1052,6 +1053,14 @@ func TestAppSdkVersion(t *testing.T) {
|
||||
platformSdkCodename: "S",
|
||||
activeCodenames: []string{"S"},
|
||||
},
|
||||
{
|
||||
name: "two active SDKs",
|
||||
sdkVersion: "module_current",
|
||||
minSdkVersionBp: "UpsideDownCake",
|
||||
expectedMinSdkVersion: "UpsideDownCake", // And not VanillaIceCream
|
||||
platformSdkCodename: "VanillaIceCream",
|
||||
activeCodenames: []string{"UpsideDownCake", "VanillaIceCream"},
|
||||
},
|
||||
}
|
||||
|
||||
for _, moduleType := range []string{"android_app", "android_library"} {
|
||||
@@ -1061,12 +1070,17 @@ func TestAppSdkVersion(t *testing.T) {
|
||||
if test.platformApis {
|
||||
platformApiProp = "platform_apis: true,"
|
||||
}
|
||||
minSdkVersionProp := ""
|
||||
if test.minSdkVersionBp != "" {
|
||||
minSdkVersionProp = fmt.Sprintf(` min_sdk_version: "%s",`, test.minSdkVersionBp)
|
||||
}
|
||||
bp := fmt.Sprintf(`%s {
|
||||
name: "foo",
|
||||
srcs: ["a.java"],
|
||||
sdk_version: "%s",
|
||||
%s
|
||||
}`, moduleType, test.sdkVersion, platformApiProp)
|
||||
%s
|
||||
}`, moduleType, test.sdkVersion, platformApiProp, minSdkVersionProp)
|
||||
|
||||
result := android.GroupFixturePreparers(
|
||||
prepareForJavaTest,
|
||||
|
Reference in New Issue
Block a user