Skip to content

Commit 9ca150e

Browse files
committed
refactor: collect dimens from sw dir
1 parent 0febc57 commit 9ca150e

File tree

1 file changed

+28
-25
lines changed

1 file changed

+28
-25
lines changed

build-logic/plugins/src/main/kotlin/app/lws/scaledimens/ScaleDimensTask.kt

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ abstract class ScaleDimensTask : DefaultTask() {
3838
return
3939
}
4040

41-
val baseValuesDirs = resourceDirectories.get()
42-
if (baseValuesDirs.isEmpty()) {
41+
val baseResDirs = resourceDirectories.get()
42+
if (baseResDirs.isEmpty()) {
4343
return
4444
}
4545

@@ -52,29 +52,9 @@ abstract class ScaleDimensTask : DefaultTask() {
5252

5353
// 获取原始dimens
5454
val originDimens = mutableMapOf<String, Node>()
55-
baseValuesDirs.forEach { it ->
56-
val dir = File(it, "values")
57-
if (dir.exists() && dir.isDirectory) {
58-
val dbf: DocumentBuilderFactory = DocumentBuilderFactory.newInstance()
59-
val db: DocumentBuilder = dbf.newDocumentBuilder()
60-
dir.listFiles()?.forEach { file ->
61-
val document: Document = db.parse(file)
62-
val nodeList: NodeList = document.getElementsByTagName("dimen")
63-
for (i in 0 until nodeList.length) {
64-
val node: Node = nodeList.item(i)
65-
val dimensName = node.attributes.item(0).nodeValue
66-
if (originDimens[dimensName] == null) {
67-
originDimens[dimensName] = node
68-
} else {
69-
logger.log(
70-
LogLevel.DEBUG,
71-
"已经添加过dimensName=${dimensName},忽略来自${it}的dimens"
72-
)
73-
}
74-
75-
}
76-
}
77-
}
55+
baseResDirs.forEach { it ->
56+
collectDimens(originDimens, File(it, "values-sw${baseSw}dp"))
57+
collectDimens(originDimens, File(it, "values"))
7858
}
7959

8060
val originDimensSet = originDimens.values
@@ -84,6 +64,29 @@ abstract class ScaleDimensTask : DefaultTask() {
8464
}
8565
}
8666

67+
private fun collectDimens(originDimens: MutableMap<String, Node>, dir: File) {
68+
if (dir.exists() && dir.isDirectory) {
69+
val dbf: DocumentBuilderFactory = DocumentBuilderFactory.newInstance()
70+
val db: DocumentBuilder = dbf.newDocumentBuilder()
71+
dir.listFiles()?.forEach { file ->
72+
val document: Document = db.parse(file)
73+
val nodeList: NodeList = document.getElementsByTagName("dimen")
74+
for (i in 0 until nodeList.length) {
75+
val node: Node = nodeList.item(i)
76+
val dimensName = node.attributes.item(0).nodeValue
77+
if (originDimens[dimensName] == null) {
78+
originDimens[dimensName] = node
79+
} else {
80+
logger.log(
81+
LogLevel.DEBUG,
82+
"已经添加过dimensName=${dimensName},忽略来自${dir}的dimens"
83+
)
84+
}
85+
}
86+
}
87+
}
88+
}
89+
8790

8891
private fun generateSwFile(baseSw: Int, originDimens: MutableCollection<Node>, targetSw: Int) {
8992

0 commit comments

Comments
 (0)