Skip to content

Commit 0ab800a

Browse files
author
yuan.cheng
committed
feat(plugin): support flavor dimensions
1 parent ce17502 commit 0ab800a

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

AndResGuard-gradle-plugin/src/main/groovy/com/tencent/gradle/AndResGuardTask.groovy

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,15 @@ class AndResGuardTask extends DefaultTask {
3232
android.applicationVariants.all { variant ->
3333
variant.outputs.each { output ->
3434
// remove "resguard"
35-
String variantName = this.name["resguard".length()..-1]
36-
if (variantName.equalsIgnoreCase(variant.buildType.name as String) || isTargetFlavor(variantName,
37-
variant.productFlavors, variant.buildType.name) ||
38-
variantName.equalsIgnoreCase(AndResGuardPlugin.USE_APK_TASK_NAME)) {
35+
String taskVariantName = this.name["resguard".length()..-1]
36+
if (taskVariantName.equalsIgnoreCase(variant.buildType.name as String) || isTargetFlavor(taskVariantName, variant) ||
37+
taskVariantName.equalsIgnoreCase(AndResGuardPlugin.USE_APK_TASK_NAME)) {
3938
buildConfigs << new BuildInfo(output.outputFile,
4039
variant.variantData.variantConfiguration.signingConfig,
4140
variant.variantData.variantConfiguration.applicationId,
4241
variant.buildType.name,
4342
variant.productFlavors,
44-
variantName,
43+
taskVariantName,
4544
variant.mergedFlavor.minSdkVersion.apiLevel)
4645

4746
}
@@ -52,12 +51,18 @@ class AndResGuardTask extends DefaultTask {
5251
}
5352
}
5453

55-
static isTargetFlavor(variantName, flavors, buildType) {
56-
if (flavors.size() > 0) {
57-
String flavor = flavors.get(0).name
58-
return variantName.equalsIgnoreCase(flavor) || variantName.equalsIgnoreCase([flavor, buildType].join(""))
54+
static isTargetFlavor(taskVariantName, variant) {
55+
def isTarget = true
56+
def variantName = variant.name.capitalize()
57+
String[] taskVariantNames = taskVariantName.split("(?=\\p{Upper})")
58+
59+
taskVariantNames.each { name ->
60+
if (!variantName.contains(name)) {
61+
isTarget = false
62+
}
5963
}
60-
return false
64+
65+
return isTarget
6166
}
6267

6368
static useFolder(file) {

0 commit comments

Comments
 (0)