@@ -2,6 +2,7 @@ package dev.vyp.stringcare.plugin.internal
22
33import com.android.build.api.variant.ApplicationAndroidComponentsExtension
44import dev.vyp.stringcare.plugin.StringCareConfiguration
5+ import dev.vyp.stringcare.plugin.StringCareExtension
56import dev.vyp.stringcare.plugin.services.StringCareBuildService
67import dev.vyp.stringcare.plugin.tasks.ObfuscateAssetsTask
78import dev.vyp.stringcare.plugin.tasks.ObfuscateStringsTask
@@ -16,23 +17,21 @@ import org.gradle.api.tasks.TaskCollection
1617private fun String.variantTaskSuffix (): String = replaceFirstChar { it.uppercase() }
1718
1819fun Project.registerVariantObfuscationTasks (
19- config : StringCareConfiguration ,
20+ bookkeeping : StringCareConfiguration ,
21+ extension : StringCareExtension ,
2022 buildService : Provider <StringCareBuildService >,
2123) {
2224 val androidComponents =
2325 extensions.findByType(ApplicationAndroidComponentsExtension ::class .java)
2426 ? : return
2527
2628 val absoluteProjectPath = buildService.get().absoluteProjectPath()
27- val moduleNameValue = config.name
28- val srcJson = toJsonStringList(config.srcFolders)
29- val strJson = toJsonStringList(config.stringFiles)
30- val assetsJson = toJsonStringList(config.assetsFiles)
29+ val moduleNameValue = bookkeeping.name
3130 androidComponents.onVariants(androidComponents.selector().all()) { variant ->
3231 val variantName: String = variant.name
3332 val applicationId = variant.applicationId.get()
3433 buildService.get().putVariantApplicationId(variantName, applicationId)
35- if (config .applicationId.isEmpty()) config .applicationId = applicationId
34+ if (bookkeeping .applicationId.isEmpty()) bookkeeping .applicationId = applicationId
3635 val variantCapitalized = variantName.variantTaskSuffix()
3736
3837 tasks.register(
@@ -45,24 +44,26 @@ fun Project.registerVariantObfuscationTasks(
4544 t.moduleName.set(moduleNameValue)
4645 t.variantName.set(variantName)
4746 t.applicationId.set(applicationId)
48- t.skip.set(config.skip)
49- t.debug.set(config.debug)
50- t.mockedFingerprint.set(config.mockedFingerprint)
51- t.srcFoldersJson.set(srcJson)
52- t.stringFilesJson.set(strJson)
53- t.assetsFilesJson.set(assetsJson)
54- val includes =
55- config.srcFolders
56- .ifEmpty { listOf (" src/main/res" ) }
57- .flatMap { src ->
58- config.stringFiles
59- .ifEmpty { listOf (" strings.xml" ) }
60- .map { name -> " $src /**/$name " }
61- }
47+ t.skip.set(provider { extension.skip })
48+ t.debug.set(provider { extension.debug })
49+ t.mockedFingerprint.set(provider { extension.mockedFingerprint })
50+ t.srcFoldersJson.set(provider { toJsonStringList(extension.srcFolders) })
51+ t.stringFilesJson.set(provider { toJsonStringList(extension.stringFiles) })
52+ t.assetsFilesJson.set(provider { toJsonStringList(extension.assetsFiles) })
6253 t.xmlInputFiles.from(
63- fileTree(absoluteProjectPath).matching { pattern ->
64- pattern.include(includes)
65- pattern.exclude(" **/build/**" , " **/.git/**" , " **/.gradle/**" , " **/node_modules/**" )
54+ provider {
55+ val includes =
56+ extension.srcFolders
57+ .ifEmpty { listOf (" src/main/res" ) }
58+ .flatMap { src ->
59+ extension.stringFiles
60+ .ifEmpty { listOf (" strings.xml" ) }
61+ .map { name -> " $src /**/$name " }
62+ }
63+ fileTree(absoluteProjectPath).matching { pattern ->
64+ includes.forEach { pattern.include(it) }
65+ pattern.exclude(" **/build/**" , " **/.git/**" , " **/.gradle/**" , " **/node_modules/**" )
66+ }
6667 },
6768 )
6869 t.outputDirectory.set(layout.buildDirectory.dir(" stringcare/obfuscate-strings/$variantName " ))
@@ -75,7 +76,7 @@ fun Project.registerVariantObfuscationTasks(
7576 t.stringCareService.set(buildService)
7677 t.projectPath.set(absoluteProjectPath)
7778 t.moduleName.set(moduleNameValue)
78- t.skip.set(config .skip)
79+ t.skip.set(provider { extension .skip } )
7980 }
8081
8182 tasks.register(
@@ -88,12 +89,12 @@ fun Project.registerVariantObfuscationTasks(
8889 t.moduleName.set(moduleNameValue)
8990 t.variantName.set(variantName)
9091 t.applicationId.set(applicationId)
91- t.skip.set(config .skip)
92- t.debug.set(config .debug)
93- t.mockedFingerprint.set(config .mockedFingerprint)
94- t.srcFoldersJson.set(srcJson )
95- t.stringFilesJson.set(strJson )
96- t.assetsFilesJson.set(assetsJson )
92+ t.skip.set(provider { extension .skip } )
93+ t.debug.set(provider { extension .debug } )
94+ t.mockedFingerprint.set(provider { extension .mockedFingerprint } )
95+ t.srcFoldersJson.set(provider { toJsonStringList(extension.srcFolders) } )
96+ t.stringFilesJson.set(provider { toJsonStringList(extension.stringFiles) } )
97+ t.assetsFilesJson.set(provider { toJsonStringList(extension.assetsFiles) } )
9798 }
9899 tasks.register(
99100 " stringcareAfterMergeAssets$variantCapitalized " ,
@@ -103,7 +104,7 @@ fun Project.registerVariantObfuscationTasks(
103104 t.stringCareService.set(buildService)
104105 t.projectPath.set(absoluteProjectPath)
105106 t.moduleName.set(moduleNameValue)
106- t.skip.set(config .skip)
107+ t.skip.set(provider { extension .skip } )
107108 }
108109
109110 val mergeRes =
0 commit comments