11group = " tools"
2- version = " 1.1.2 "
2+ version = " 1.2.0 "
33
44task dimens_auto (type : ConvertDimensTask ) {
55
66 /* 参数配置 */
77 config = [
88 " dimens_path" : " src${ File.separator} main${ File.separator} res${ File.separator} values${ File.separator} dimens_auto.xml" ,
9- " convert_rules" : [" xhdpi " : 1 , " sw600dp-xhdpi" : 3 / 2 ],
10- " to_convert_unit " : [" dp" , " dip" , " sp" ],
9+ " convert_rules" : [" xxhdpi " : 1 , " sw600dp-xhdpi" : 3 / 2 ],
10+ " convert_unit " : [" dp" , " dip" , " sp" ],
1111 " decimal" : 2 ,
12- " help_url" : " https://wiki.n.miui.com/x/54XaDw" ,
12+ " init_hint" : " 可在此处写入默认dimens,编译时即可自动转换为相应配置的dimens." ,
13+ " help_url" : " https://github.com/developer-wgl/DimensAuto" ,
1314 " debug" : false
1415 ]
1516
@@ -27,17 +28,18 @@ class ConvertDimensTask extends DefaultTask {
2728
2829 @Optional
2930 def config = [
30- " dimens_path" : " " , // 要转换的文件路径
31- " convert_rules" : [], // 转换规则,可自定义扩展。 如 :["sw600dp-xhdpi": 3/2,"nxhdpi": 3/2.75]
32- " to_convert_unit" : [], // 处理转换的单位。 如 ["dp", "dip", "sp"]
33- " help_url" : " " , // 帮助文档
34- " decimal" : 2 , // 转换后小数点保留个数
35- " debug" : false
31+ " dimens_path" : " " , // 要转换的 `dimens_auto.xml` 相对、`module`的路径.
32+ " convert_rules" : [], // 转换规则,可自定义扩展。 如 :["hdpi": 3/1.5,"xhdpi": 3/2,"sw600dp-xhdpi": 3/2,"nxhdpi": 3/2.75,"xxxhdpi": 3/4]
33+ " convert_unit" : [], // 要转换的单位。 如 ["dp", "dip", "sp"]
34+ " decimal" : 2 , // 转换后小数点保留位数
35+ " init_hint" : " " , // 文件初次创建时的提示语句
36+ " help_url" : " " , // 帮助文档
37+ " debug" : false // 输出更多调试日志,便于排查问题
3638 ]
3739
3840 def analyze () {
39- if (! config. dimens_path || ! config. convert_rules || ! config. to_convert_unit ) {
40- getLogger(). log(LogLevel . ERROR , " ${ TAG} 规则没有被使用 !" )
41+ if (! config. dimens_path || ! config. convert_rules || ! config. convert_unit ) {
42+ getLogger(). log(LogLevel . ERROR , " ${ TAG} 没有转换配置可用,请检查转换配置 !" )
4143 return
4244 }
4345
@@ -47,17 +49,15 @@ class ConvertDimensTask extends DefaultTask {
4749 if (config. debug) {
4850 println TAG + defaultXmlFile. isDirectory()
4951 }
50- if (! newDimensFile . isDirectory()) {
51- newDimensFile . getParentFile(). mkdirs()
52+ if (! defaultXmlFile . isDirectory()) {
53+ defaultXmlFile . getParentFile(). mkdirs()
5254 }
5355 if (! defaultXmlFile. createNewFile()) {
5456 throw new Exception (" ERROR: dimens文件创建失败,未进行dimens转换: " +
5557 defaultXmlFile. getAbsolutePath() + " ${ getIdentityPath()} :dimens_auto." )
5658 } else {
5759 def init = " <?xml version=\" 1.0\" encoding=\" utf-8\" ?>\n " +
58- " <resources>\n " +
59- " <!-- 可在此处写入默认dimens,编译时即可自动转换为相应配置的dimens. -->\n " +
60- " </resources>"
60+ " <resources>\n\t <!-- ${ config.init_hint} -->\n </resources>"
6161 defaultXmlFile. text = init
6262 }
6363 }
@@ -68,7 +68,7 @@ class ConvertDimensTask extends DefaultTask {
6868
6969 // edit regex to get dimens value and unit
7070 def unit = ' '
71- config. to_convert_unit . each {
71+ config. convert_unit . each {
7272 unit + = it + " |"
7373 }
7474 def unitRegex = ~" ([-0-9.]{1,10})(${unit[0..-2]})"
@@ -78,7 +78,7 @@ class ConvertDimensTask extends DefaultTask {
7878
7979 // real convert by rules
8080 for (def rule in config. convert_rules) {
81- println " ${ TAG} convert unit:${ config.to_convert_unit } , rule:default(1) -> ${ rule.key} (${ rule.value} )"
81+ println " ${ TAG} convert unit:${ config.convert_unit } , rule:default(1) -> ${ rule.key} (${ rule.value} )"
8282
8383 File newDimensFile = copyDimensFile(defaultXmlFile, rule)
8484 if (config. debug) {
@@ -170,7 +170,7 @@ class ConvertDimensTask extends DefaultTask {
170170 def append = " ${ '\n'} \t 此文件由默认 ${ newDimensFile.getName()} 文件自动转换处理,除合并代码外勿编辑!"
171171 if (config. debug) {
172172 append + = ' \n '
173- append + = " ${ '\n'} \t 转换处理单位有:${ config.to_convert_unit } "
173+ append + = " ${ '\n'} \t 转换处理单位有:${ config.convert_unit } "
174174 append + = " ${ '\n'} \t 此处转换逻辑为:default(1) -> ${ rule.key} (${ rule.value} )"
175175 append + = " ${ '\n'} \t 共找到节点数量:${ xml.children().size()} , 共转换节点数量:${ convert_count} "
176176 }
0 commit comments