diff options
author | 2017-05-22 17:32:10 +0200 | |
---|---|---|
committer | 2017-05-22 18:05:38 +0200 | |
commit | 512d56280adc6ef7639fcd4801e31fc513a26bb7 (patch) | |
tree | 3782ea7136c0e6e4a1b7fdedf410c7606f706b6c /src/main/java/com | |
parent | 64e952ca564acc149969cc20256c10d0e3fff7f8 (diff) |
Extract determining which manifest merger to use (legacy v android) to a separate method. This is so that android_local_test won't need access to the AndroidConfiguration fragment.
RELNOTES: None
PiperOrigin-RevId: 156740056
Diffstat (limited to 'src/main/java/com')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java b/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java index 1821c4b4b4..a4b33738ef 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java @@ -205,18 +205,13 @@ public final class ApplicationManifest { } public ApplicationManifest mergeWith(RuleContext ruleContext, ResourceDependencies resourceDeps) { - Map<Artifact, Label> mergeeManifests = getMergeeManifests(resourceDeps.getResources()); + boolean legacy = useLegacyMerging(ruleContext); + return mergeWith(ruleContext, resourceDeps, legacy); + } - boolean legacy = true; - if (ruleContext.isLegalFragment(AndroidConfiguration.class) - && ruleContext.getRule().isAttrDefined("manifest_merger", STRING)) { - AndroidManifestMerger merger = AndroidManifestMerger.fromString( - ruleContext.attributes().get("manifest_merger", STRING)); - if (merger == null) { - merger = ruleContext.getFragment(AndroidConfiguration.class).getManifestMerger(); - } - legacy = merger == AndroidManifestMerger.LEGACY; - } + public ApplicationManifest mergeWith( + RuleContext ruleContext, ResourceDependencies resourceDeps, boolean legacy) { + Map<Artifact, Label> mergeeManifests = getMergeeManifests(resourceDeps.getResources()); if (legacy) { if (!mergeeManifests.isEmpty()) { @@ -250,6 +245,20 @@ public final class ApplicationManifest { return this; } + private boolean useLegacyMerging(RuleContext ruleContext) { + boolean legacy = true; + if (ruleContext.isLegalFragment(AndroidConfiguration.class) + && ruleContext.getRule().isAttrDefined("manifest_merger", STRING)) { + AndroidManifestMerger merger = AndroidManifestMerger.fromString( + ruleContext.attributes().get("manifest_merger", STRING)); + if (merger == null) { + merger = ruleContext.getFragment(AndroidConfiguration.class).getManifestMerger(); + } + legacy = merger == AndroidManifestMerger.LEGACY; + } + return legacy; + } + private static Map<Artifact, Label> getMergeeManifests( Iterable<ResourceContainer> resourceContainers) { ImmutableSortedMap.Builder<Artifact, Label> builder = |