Skip to content

Commit

Permalink
fix the wrong usage of buildType and flavor, now we use dimension for…
Browse files Browse the repository at this point in the history
… the combination name
  • Loading branch information
2BAB committed Sep 27, 2018
1 parent 9780ff1 commit ddd6e43
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 23 deletions.
14 changes: 14 additions & 0 deletions sample/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,20 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}

flavorDimensions "version"
productFlavors {
demo {
dimension "version"
applicationIdSuffix ".demo"
versionNameSuffix "-demo"
}
full {
dimension "version"
applicationIdSuffix ".full"
versionNameSuffix "-full"
}
}
}

dependencies {
Expand Down
6 changes: 3 additions & 3 deletions src/main/kotlin/me/xx2bab/scratchpaper/BuildInfoGenerator.kt
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ class BuildInfoGenerator(private val params: GeneratorParams) {
private val buildInfoFileName = "scratch-paper.json"

fun process() {
val buildInfoDir = File(CacheUtils.getCacheDir(params.project, params.buildName), "assets")
val buildInfoDir = File(CacheUtils.getCacheDir(params.project, params.dimension), "assets")
params.android.sourceSets.getByName(params.variant.name).assets.srcDirs(buildInfoDir)

params.project.tasks.getByName("pre${params.variantCapedName}Build").doLast { _ ->
params.project.tasks.getByName("pre${params.dimension}Build").doLast { _ ->
val root = JSONObject()

val base = generateBasicInfo()
Expand Down Expand Up @@ -45,7 +45,7 @@ class BuildInfoGenerator(private val params: GeneratorParams) {

private fun generateBasicInfo(): Pair<String, JSONObject> {
val base = JSONObject()
base["buildType"] = params.buildName
base["buildType"] = params.dimension
base["versionName"] = params.variant.mergedFlavor.versionName
base["buildTime"] = LocalDateTime.now().toString()
return Pair("base", base)
Expand Down
3 changes: 1 addition & 2 deletions src/main/kotlin/me/xx2bab/scratchpaper/GeneratorParams.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import org.gradle.api.Project

data class GeneratorParams(val project: Project,
val variant: BaseVariant,
val variantCapedName: String,
val buildName: String,
val dimension: String,
val config: ScratchPaperExtension,
val android: AppExtension)
20 changes: 10 additions & 10 deletions src/main/kotlin/me/xx2bab/scratchpaper/IconOverlayGenerator.kt
Original file line number Diff line number Diff line change
Expand Up @@ -33,20 +33,20 @@ class IconOverlayGenerator(private val params: GeneratorParams) {
params.variant.outputs.forEach { output ->
val processManifestTask: MergeManifests = output.processManifest as MergeManifests

output.processResources.doFirst("process${params.variantCapedName}IconsByScratchPaper") {
output.processResources.doFirst("process${params.dimension}IconsByScratchPaper") {
val processedIcons = arrayListOf<File>()
val mergedManifestFile = File(processManifestTask.manifestOutputDirectory,
"AndroidManifest.xml")
val resDirs = params.variant.sourceSets[0].resDirectories
val version = "@" + params.variant.mergedFlavor.versionName
val iconName = getIconName(mergedManifestFile)
findIcons(resDirs, iconName).forEach { icon ->
val processedIcon = addTextToIcon(params.project, params.buildName,
icon, params.config, params.buildName, version, params.config.extraInfo)
val processedIcon = addTextToIcon(params.project, params.dimension,
icon, params.config, params.dimension, version, params.config.extraInfo)
processedIcons.add(processedIcon)
}

val mergeResTaskName = "merge${params.variantCapedName}Resources"
val mergeResTaskName = "merge${params.dimension}Resources"
val mergeResTask = params.project.tasks.getByName(mergeResTaskName) as MergeResources
val mergedResDir = mergeResTask.outputDir
Aapt2Utils.compileResDir(params.project, mergedResDir, processedIcons)
Expand Down Expand Up @@ -124,16 +124,16 @@ class IconOverlayGenerator(private val params: GeneratorParams) {
* Draws the given background and text over an image
*
* @param project The Instance of org.gradle.api.Project
* @param buildName The Instance of org.gradle.api.Project
* @param dimension The dimension contains buildType and flavor
* @param image The icon file that will be decorated
* @param config The configuration which controls how the overlay will appear
* @param lines The lines of text to be displayed
*/
private fun addTextToIcon(project: Project,
buildName: String,
image: File,
config: ScratchPaperExtension = ScratchPaperExtension.DEFAULT_CONFIG,
vararg lines: String): File {
dimension: String,
image: File,
config: ScratchPaperExtension = ScratchPaperExtension.DEFAULT_CONFIG,
vararg lines: String): File {
val bufferedImage: BufferedImage = ImageIO.read(image)
val backgroundOverlayColor: Color = config.getBackgroundColor()
val textColor: Color = config.getTextColor()
Expand Down Expand Up @@ -170,7 +170,7 @@ class IconOverlayGenerator(private val params: GeneratorParams) {
this.drawString(line, x, y)
}
}
val destDir = File(CacheUtils.getCacheDir(project, buildName), image.parentFile.name)
val destDir = File(CacheUtils.getCacheDir(project, dimension), image.parentFile.name)
if (!destDir.exists() && !destDir.mkdirs()) {
Logger.e("Can not create cache directory for ScratchPaper.")
}
Expand Down
7 changes: 3 additions & 4 deletions src/main/kotlin/me/xx2bab/scratchpaper/ScratchPaperPlugin.kt
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,10 @@ class ScratchPaperPlugin : Plugin<Project> {
val config = project.extensions.create(extensionName, ScratchPaperExtension::class.java)

variants.all { variant ->
val variantCapedName = variant.buildType.name.capitalize()
val buildName = variant.flavorName + variantCapedName
CacheUtils.mkdir(project, variant, buildName)
val dimension = variant.assemble.name.replace("assemble", "")
CacheUtils.mkdir(project, variant, dimension)

val params = GeneratorParams(project, variant, variantCapedName, buildName,
val params = GeneratorParams(project, variant, dimension,
config, android)
if (config.enableGenerateIconOverlay ?: variant.buildType.isDebuggable) {
IconOverlayGenerator(params).process()
Expand Down
8 changes: 4 additions & 4 deletions src/main/kotlin/me/xx2bab/scratchpaper/utils/CacheUtils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,18 @@ class CacheUtils {

companion object {

fun mkdir(project: Project, variant: BaseVariant, buildName: String) {
fun mkdir(project: Project, variant: BaseVariant, dimension: String) {
variant.preBuild.doLast {
val cacheDir = getCacheDir(project, buildName)
val cacheDir = getCacheDir(project, dimension)
if (!cacheDir.exists() && !cacheDir.mkdirs()) {
Logger.e("Can not create cache directory for ScratchPaper.")
}
}
}

fun getCacheDir(project: Project, buildName: String): File {
fun getCacheDir(project: Project, dimension: String): File {
return File(project.buildDir, "intermediates" + File.separator + "scratch-paper"
+ File.separator + buildName.trim())
+ File.separator + dimension.trim())
}

}
Expand Down

0 comments on commit ddd6e43

Please sign in to comment.