@@ -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