From 68a7023436c9b9c9c6fb3ab2e2cfb6a5e4f71612 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 4 Jan 2018 14:50:13 -0800 Subject: [PATCH] Fix ordering of overlays Device overlays are passed to Soong in highest priority to lowest priority order, but aapt2 keeps the last value provided on the command line. Reverse the order that overlayGlobResults are collected. Bug: 71595164 Test: app_test.go Change-Id: Ibc6b8297f1548766c5c92f3be969b89736dc8dff --- java/app.go | 6 +++++- java/app_test.go | 6 +++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/java/app.go b/java/app.go index 234dcb754..05cd8b31d 100644 --- a/java/app.go +++ b/java/app.go @@ -412,7 +412,11 @@ func (overlaySingleton) GenerateBuildActions(ctx android.SingletonContext) { } var overlayData []overlayGlobResult - for _, overlay := range ctx.Config().ResourceOverlays() { + overlayDirs := ctx.Config().ResourceOverlays() + for i := range overlayDirs { + // Iterate backwards through the list of overlay directories so that the later, lower-priority + // directories in the list show up earlier in the command line to aapt2. + overlay := overlayDirs[len(overlayDirs)-1-i] var result overlayGlobResult result.dir = overlay diff --git a/java/app_test.go b/java/app_test.go index 73ac3f78e..d3216bfd2 100644 --- a/java/app_test.go +++ b/java/app_test.go @@ -111,13 +111,13 @@ var testEnforceRROTests = []struct { enforceRROTargets: nil, enforceRROExcludedOverlays: nil, fooOverlayFiles: []string{ - "device/vendor/blah/overlay/foo/res/values/strings.xml", "device/vendor/blah/static_overlay/foo/res/values/strings.xml", + "device/vendor/blah/overlay/foo/res/values/strings.xml", }, fooRRODirs: nil, barOverlayFiles: []string{ - "device/vendor/blah/overlay/bar/res/values/strings.xml", "device/vendor/blah/static_overlay/bar/res/values/strings.xml", + "device/vendor/blah/overlay/bar/res/values/strings.xml", }, barRRODirs: nil, }, @@ -132,8 +132,8 @@ var testEnforceRROTests = []struct { "device/vendor/blah/overlay/foo/res", }, barOverlayFiles: []string{ - "device/vendor/blah/overlay/bar/res/values/strings.xml", "device/vendor/blah/static_overlay/bar/res/values/strings.xml", + "device/vendor/blah/overlay/bar/res/values/strings.xml", }, barRRODirs: nil, },