@@ -43,32 +43,25 @@ open class StringCare : Plugin<Project> {
4343
4444 this .project.afterEvaluate {
4545 extension.modules.forEach { module ->
46- when {
47- module.stringFiles.isNotEmpty() && module.srcFolders.isNotEmpty() -> {
48- moduleMap[module.name] = Configuration (module.name).apply {
49- stringFiles.addAll(module.stringFiles)
50- srcFolders.addAll(module.srcFolders)
51- debug = extension.debug
52- }
53- }
54- module.srcFolders.isNotEmpty() -> {
55- moduleMap[module.name] = Configuration (module.name).apply {
56- stringFiles.addAll(defaultConfig().stringFiles)
57- srcFolders.addAll(module.srcFolders)
58- debug = extension.debug
59- }
60- }
61- module.stringFiles.isNotEmpty() -> {
62- moduleMap[module.name] = Configuration (module.name).apply {
63- stringFiles.addAll(module.stringFiles)
64- srcFolders.addAll(defaultConfig().srcFolders)
65- debug = extension.debug
66- }
67- }
46+ moduleMap[module.name] = Configuration (module.name).apply {
47+ debug = extension.debug
48+ }
49+ if (module.srcFolders.isNotEmpty()) {
50+ moduleMap[module.name]!! .srcFolders.addAll(module.srcFolders)
51+ }
52+ if (module.stringFiles.isNotEmpty()) {
53+ moduleMap[module.name]!! .stringFiles.addAll(module.stringFiles)
54+ }
55+ if (module.assetsFiles.isNotEmpty()) {
56+ moduleMap[module.name]!! .assetsFiles.addAll(module.assetsFiles)
57+ }
58+
59+ if (moduleMap[module.name]!! .srcFolders.isEmpty()) {
60+ moduleMap[module.name]!! .srcFolders.addAll(defaultConfig().srcFolders)
61+ }
62+ if (moduleMap[module.name]!! .stringFiles.isEmpty()) {
63+ moduleMap[module.name]!! .stringFiles.addAll(defaultConfig().stringFiles)
6864 }
69- }
70- if (moduleMap.isEmpty()) {
71- moduleMap[defaultMainModule] = defaultConfig().normalize()
7265 }
7366 this .project.registerTask()
7467 }
@@ -95,13 +88,14 @@ open class StringCare : Plugin<Project> {
9588 PrintUtils .print (module, " $variant :$key " )
9689 PrintUtils .print (module, backupStringRes)
9790 moduleMap[module]?.let { configuration ->
98- backupFiles (absoluteProjectPath, configuration)
91+ backupResourceFiles (absoluteProjectPath, configuration)
9992 }
10093
10194 moduleMap[module]?.let { configuration ->
102- val files = locateFiles (absoluteProjectPath, configuration)
95+ val files = locateResourceFiles (absoluteProjectPath, configuration)
10396 files.forEach { file ->
104- modifyXML(file.file, extension.main_module, key, extension.debug,
97+ modifyXML(
98+ file.file, extension.main_module, key, extension.debug,
10599 variantOrFlavor?.applicationId ? : " "
106100 )
107101 }
@@ -114,9 +108,9 @@ open class StringCare : Plugin<Project> {
114108 }
115109 PrintUtils .print (module, " $variant :$key " )
116110 PrintUtils .print (module, backupStringRes)
117- backupFiles (absoluteProjectPath, defaultConfiguration)
111+ backupResourceFiles (absoluteProjectPath, defaultConfiguration)
118112 PrintUtils .print (module, obfuscateStringRes)
119- val files = locateFiles (absoluteProjectPath, defaultConfiguration)
113+ val files = locateResourceFiles (absoluteProjectPath, defaultConfiguration)
120114 files.forEach { file ->
121115 modifyXML(file.file, extension.main_module, key, extension.debug)
122116 }
@@ -126,14 +120,70 @@ open class StringCare : Plugin<Project> {
126120
127121 },
128122 mergeResourcesFinish = { module, variant ->
123+ PrintUtils .print (module, restoreStringRes)
124+ val variantOrFlavor = extension.variants.find {
125+ variant.toLowerCase().contains(it.name.toLowerCase())
126+ }
127+ if (variantOrFlavor != null && variantOrFlavor.skip) {
128+ return @ExecutionListener
129+ }
130+ restoreResourceFiles(absoluteProjectPath, module)
131+ },
132+ mergeAssetsStart = { module, variant ->
133+ fingerPrint(module, variant, extension.debug) { key ->
134+ if (" none" == key) {
135+ return @fingerPrint
136+ }
137+ when {
138+ moduleMap.containsKey(module) -> {
139+ val variantOrFlavor = extension.variants.find {
140+ variant.toLowerCase().contains(it.name.toLowerCase())
141+ }
142+ if (variantOrFlavor != null && variantOrFlavor.skip) {
143+ PrintUtils .print (module, " Skipping $variant " )
144+ return @fingerPrint
145+ }
146+
147+ PrintUtils .print (module, " $variant :$key " )
148+ PrintUtils .print (module, backupAssets)
149+ moduleMap[module]?.let { configuration ->
150+ backupAssetsFiles(absoluteProjectPath, configuration)
151+ }
152+
153+ moduleMap[module]?.let { configuration ->
154+ val files = locateAssetsFiles(absoluteProjectPath, configuration)
155+ files.forEach { file ->
156+ if (extension.debug) {
157+ PrintUtils .print (null , file.file.getContent())
158+ }
159+ obfuscateFile(
160+ extension.main_module,
161+ key,
162+ file.file,
163+ variantOrFlavor?.applicationId ? : " "
164+ )
165+ if (extension.debug) {
166+ PrintUtils .print (null , file.file.getContent())
167+ }
168+ }
169+ }
170+ PrintUtils .print (module, obfuscateAssets)
171+ }
172+ }
173+ }
174+
175+ },
176+ mergeAssetsFinish = { module, variant ->
177+ PrintUtils .print (module, restoreAssets)
129178 val variantOrFlavor = extension.variants.find {
130179 variant.toLowerCase().contains(it.name.toLowerCase())
131180 }
132181 if (variantOrFlavor != null && variantOrFlavor.skip) {
133182 return @ExecutionListener
134183 }
135- restoreFiles (absoluteProjectPath, module)
184+ restoreAssetsFiles (absoluteProjectPath, module)
136185 }
186+
137187 ))
138188 }
139189
@@ -155,6 +205,7 @@ open class StringCare : Plugin<Project> {
155205 }
156206
157207 open class Configuration (var name : String ) {
208+ var assetsFiles = mutableListOf<String >()
158209 var stringFiles = mutableListOf<String >()
159210 var srcFolders = mutableListOf<String >()
160211 var debug = false
0 commit comments