Skip to content

Commit c46b753

Browse files
committed
support buildType
1 parent 64441d4 commit c46b753

File tree

1 file changed

+30
-13
lines changed

1 file changed

+30
-13
lines changed

plugin/src/main/groovy/top/niunaijun/blackobfuscator/ObfPlugin.groovy

Lines changed: 30 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package top.niunaijun.blackobfuscator
22

33
import com.android.build.gradle.AppExtension
4+
import com.android.build.gradle.internal.dsl.BuildType
45
import com.android.build.gradle.internal.dsl.ProductFlavor
56
import com.android.build.gradle.internal.tasks.DexMergingTask
67
import org.gradle.api.*
@@ -49,23 +50,23 @@ public class ObfPlugin implements Plugin<Project> {
4950
addTask("minifyDebugWithR8", tasks)
5051

5152
if (android != null) {
53+
android.buildTypes.all(new Action<BuildType>() {
54+
@Override
55+
void execute(BuildType buildType) {
56+
def name = upperCaseFirst(buildType.name)
57+
def names = [buildType.name, name]
58+
for (String p : names) {
59+
addOtherTask(p)
60+
}
61+
}
62+
})
5263
android.productFlavors.all(new Action<ProductFlavor>() {
5364
@Override
5465
void execute(ProductFlavor productFlavor) {
55-
println("ProductFlavor: " + name)
5666
def name = upperCaseFirst(productFlavor.name)
5767
def names = [productFlavor.name, name]
5868
for (String p : names) {
59-
addTask("mergeDex${p}Release", tasks)
60-
addTask("mergeDex${p}Debug", tasks)
61-
addTask("mergeLibDex${p}Debug", tasks)
62-
addTask("mergeProjectDex${p}Debug", tasks)
63-
64-
addTask("transformDexArchiveWithDexMergerFor${p}Debug", tasks)
65-
addTask("transformDexArchiveWithDexMergerFor${p}Release", tasks)
66-
67-
addTask("minify${p}ReleaseWithR8", tasks)
68-
addTask("minify${p}DebugWithR8", tasks)
69+
addOtherTask(p)
6970
}
7071
}
7172
})
@@ -80,6 +81,19 @@ public class ObfPlugin implements Plugin<Project> {
8081
}
8182
}
8283

84+
private void addOtherTask(String name) {
85+
addTask("mergeDex${name}Release", tasks)
86+
addTask("mergeDex${name}Debug", tasks)
87+
addTask("mergeLibDex${name}Debug", tasks)
88+
addTask("mergeProjectDex${name}Debug", tasks)
89+
90+
addTask("transformDexArchiveWithDexMergerFor${name}Debug", tasks)
91+
addTask("transformDexArchiveWithDexMergerFor${name}Release", tasks)
92+
93+
addTask("minify${name}ReleaseWithR8", tasks)
94+
addTask("minify${name}DebugWithR8", tasks)
95+
}
96+
8397
private String upperCaseFirst(String val) {
8498
char[] arr = val.toCharArray();
8599
arr[0] = Character.toUpperCase(arr[0]);
@@ -89,8 +103,11 @@ public class ObfPlugin implements Plugin<Project> {
89103
private void addTask(String name, List<Task> tasks) {
90104
try {
91105
//Protected code
92-
tasks.add(mProject.tasks.getByName(name))
93-
println("add Task $name")
106+
Task task = mProject.tasks.getByName(name)
107+
if (!tasks.contains(task)) {
108+
tasks.add(task)
109+
println("add Task $name")
110+
}
94111
} catch(UnknownTaskException e1) {
95112
//Catch block
96113
}

0 commit comments

Comments
 (0)