@@ -43,32 +43,25 @@ open class StringCare : Plugin<Project> {
43
43
44
44
this .project.afterEvaluate {
45
45
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)
68
64
}
69
- }
70
- if (moduleMap.isEmpty()) {
71
- moduleMap[defaultMainModule] = defaultConfig().normalize()
72
65
}
73
66
this .project.registerTask()
74
67
}
@@ -95,13 +88,14 @@ open class StringCare : Plugin<Project> {
95
88
PrintUtils .print (module, " $variant :$key " )
96
89
PrintUtils .print (module, backupStringRes)
97
90
moduleMap[module]?.let { configuration ->
98
- backupFiles (absoluteProjectPath, configuration)
91
+ backupResourceFiles (absoluteProjectPath, configuration)
99
92
}
100
93
101
94
moduleMap[module]?.let { configuration ->
102
- val files = locateFiles (absoluteProjectPath, configuration)
95
+ val files = locateResourceFiles (absoluteProjectPath, configuration)
103
96
files.forEach { file ->
104
- modifyXML(file.file, extension.main_module, key, extension.debug,
97
+ modifyXML(
98
+ file.file, extension.main_module, key, extension.debug,
105
99
variantOrFlavor?.applicationId ? : " "
106
100
)
107
101
}
@@ -114,9 +108,9 @@ open class StringCare : Plugin<Project> {
114
108
}
115
109
PrintUtils .print (module, " $variant :$key " )
116
110
PrintUtils .print (module, backupStringRes)
117
- backupFiles (absoluteProjectPath, defaultConfiguration)
111
+ backupResourceFiles (absoluteProjectPath, defaultConfiguration)
118
112
PrintUtils .print (module, obfuscateStringRes)
119
- val files = locateFiles (absoluteProjectPath, defaultConfiguration)
113
+ val files = locateResourceFiles (absoluteProjectPath, defaultConfiguration)
120
114
files.forEach { file ->
121
115
modifyXML(file.file, extension.main_module, key, extension.debug)
122
116
}
@@ -126,14 +120,70 @@ open class StringCare : Plugin<Project> {
126
120
127
121
},
128
122
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)
129
178
val variantOrFlavor = extension.variants.find {
130
179
variant.toLowerCase().contains(it.name.toLowerCase())
131
180
}
132
181
if (variantOrFlavor != null && variantOrFlavor.skip) {
133
182
return @ExecutionListener
134
183
}
135
- restoreFiles (absoluteProjectPath, module)
184
+ restoreAssetsFiles (absoluteProjectPath, module)
136
185
}
186
+
137
187
))
138
188
}
139
189
@@ -155,6 +205,7 @@ open class StringCare : Plugin<Project> {
155
205
}
156
206
157
207
open class Configuration (var name : String ) {
208
+ var assetsFiles = mutableListOf<String >()
158
209
var stringFiles = mutableListOf<String >()
159
210
var srcFolders = mutableListOf<String >()
160
211
var debug = false
0 commit comments