Implement task to generate translator layout from a text file (#759)

Related to #669
This commit is contained in:
Quentin Hibon
2021-02-22 14:46:52 +01:00
committed by GitHub
parent bc623f044d
commit 96f87df052
7 changed files with 201 additions and 285 deletions

45
translators.gradle.kts Normal file
View File

@@ -0,0 +1,45 @@
import groovy.xml.MarkupBuilder
import java.io.StringWriter
task("updateTranslators") {
doLast {
fun updateTranslatorLayouts() {
val writer = StringWriter()
val indent = " "
val xml = MarkupBuilder(groovy.util.IndentPrinter(writer, indent))
xml.doubleQuotes = true
xml.withGroovyBuilder {
"LinearLayout"(
"style" to "@style/Card",
"android:gravity" to "center",
"xmlns:android" to "http://schemas.android.com/apk/res/android"
) {
"TextView"(
"style" to "@style/CardHeader",
"android:text" to "@string/translators",
"android:textColor" to "?aboutScreenColor"
)
xml.mkp.yield('\n' + indent)
xml.mkp.comment("This list is automatically generated, do not edit manually.")
val reader = file("translators").bufferedReader()
for (l in reader.lines()) {
"TextView"(
"style" to "@style/About.Item",
"android:text" to l
)
}
}
}
val newContent = writer.toString()
val path = "uhabits-android/src/main/res/layout/about_translators.xml"
val currentContent = file(path).readText()
if (currentContent != newContent) {
file(path).writeText(newContent)
}
}
updateTranslatorLayouts()
}
}