restructure multisrc overrides (#5701)

This commit is contained in:
Aria Moradi
2021-02-08 09:01:24 -08:00
committed by GitHub
parent 042a762839
commit f1a7a5aac2
174 changed files with 16 additions and 15 deletions

View File

@ -68,10 +68,10 @@ interface ThemeSourceGenerator {
""".trimIndent())
}
private fun writeAndroidManifest(androidManifestFile: File, manifestOverridesPath: String, source: ThemeSourceData, projectRootPath: String) {
val androidManifestOverride = File("$manifestOverridesPath/${source.pkgName}")
private fun writeAndroidManifest(androidManifestFile: File, manifestOverridesPath: String) {
val androidManifestOverride = File(manifestOverridesPath)
if (androidManifestOverride.exists())
androidManifestOverride.copyRecursively(File(projectRootPath))
androidManifestOverride.copyTo(androidManifestFile)
else
androidManifestFile.writeText("""
<?xml version="1.0" encoding="utf-8"?>
@ -83,10 +83,11 @@ interface ThemeSourceGenerator {
private fun createGradleProject(source: ThemeSourceData, themePkg: String, themeClass: String, baseVersionCode: Int, userDir: String) {
val projectRootPath = "$userDir/generated-src/${pkgNameSuffix(source, "/")}"
val projectSrcPath = "$projectRootPath/src/eu/kanade/tachiyomi/extension/${pkgNameSuffix(source, "/")}"
val overridesPath = "$userDir/multisrc/overrides" // userDir = tachiyomi-extensions project root path
val resOverridesPath = "$overridesPath/res/$themePkg"
val srcOverridesPath = "$overridesPath/src/$themePkg"
val manifestOverridesPath = "$overridesPath/manifest/$themePkg"
val overridesPath = "$userDir/multisrc/overrides/$themePkg/${source.pkgName}" // userDir = tachiyomi-extensions project root path
val defaultResPath = "$userDir/multisrc/overrides/$themePkg/default_res"
val resOverridesPath = "$overridesPath/res"
val srcOverridesPath = "$overridesPath/src"
val manifestOverridesPath = "$overridesPath/AndroidManifest.xml"
val projectGradleFile = File("$projectRootPath/build.gradle")
val projectAndroidManifestFile = File("$projectRootPath/AndroidManifest.xml")
@ -98,12 +99,12 @@ interface ThemeSourceGenerator {
cleanDirectory(projectRootFile)
writeGradle(projectGradleFile, source, baseVersionCode)
writeAndroidManifest(projectAndroidManifestFile, manifestOverridesPath, source, projectRootPath)
writeAndroidManifest(projectAndroidManifestFile, manifestOverridesPath)
writeSourceFiles(projectSrcPath, srcOverridesPath, source, themePkg, themeClass)
writeSourceClasses(projectSrcPath, srcOverridesPath, source, themePkg, themeClass)
copyThemeClasses(userDir, themePkg, projectRootPath)
copyResFiles(resOverridesPath, source, projectRootPath)
copyResFiles(overridesPath, defaultResPath, source, projectRootPath)
}
}
@ -120,18 +121,18 @@ interface ThemeSourceGenerator {
.forEach { Files.copy(File("$themeSrcPath/$it").toPath(), File("$themeDestPath/$it").toPath(), StandardCopyOption.REPLACE_EXISTING) }
}
private fun copyResFiles(resOverridesPath: String, source: ThemeSourceData, projectRootPath: String): Any {
private fun copyResFiles(overridesPath: String, defaultResPath: String, source: ThemeSourceData, projectRootPath: String): Any {
// check if res override exists if not copy default res
val resOverride = File("$resOverridesPath/${source.pkgName}")
val resOverride = File("$overridesPath/res")
return if (resOverride.exists())
resOverride.copyRecursively(File("$projectRootPath/res"))
else
File("$resOverridesPath/default").let { res ->
if (res.exists()) res.copyRecursively(File("$projectRootPath/res"))
File(defaultResPath).let { defaultResFile ->
if (defaultResFile.exists()) defaultResFile.copyRecursively(File("$projectRootPath/res"))
}
}
private fun writeSourceFiles(projectSrcPath: String, srcOverridePath: String, source: ThemeSourceData, themePkg: String, themeClass: String) {
private fun writeSourceClasses(projectSrcPath: String, srcOverridePath: String, source: ThemeSourceData, themePkg: String, themeClass: String) {
val projectSrcFile = File(projectSrcPath)
projectSrcFile.mkdirs()
val srcOverride = File("$srcOverridePath/${source.pkgName}")