Skip to content

Commit

Permalink
Merge pull request #37 from kanyun-inc/feature/customVariant
Browse files Browse the repository at this point in the history
Improve 'customVariant' api
  • Loading branch information
RicardoJiang authored May 9, 2023
2 parents a8e31e2 + b1de3e3 commit f2e33ff
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 2 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ kotlin.code.style=official
android.nonTransitiveRClass=true

KOTLIN_PLUGIN_ID=com.kanyun.kace
VERSION_NAME=1.8.20-1.0.4
VERSION_NAME=1.8.20-1.0.5-SNAPSHOT

GROUP=com.kanyun.kace

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,15 @@

package com.kanyun.kace.gradle

import com.android.build.gradle.api.BaseVariant

open class KaceExtension {
var whiteList: List<String> = listOf()
var blackList: List<String> = listOf()
var customVariant: Map<String, List<String>> = emptyMap()
internal val customVariantCallbacks: ArrayList<(BaseVariant) -> Map<String, List<String>>> = ArrayList()

fun customVariant(block: (BaseVariant) -> Map<String, List<String>>) {
customVariantCallbacks += block
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,16 @@ class KaceGradlePlugin : Plugin<Project> {
if (buildTypeName != variantName && buildTypeName != flavorName) {
addSourceSetLayoutDir(extension, variantName, layoutDirList)
}
addCustomVariantLayoutDir(kaceExtension.customVariant, layoutDirList)

val customVariant = kaceExtension.customVariantCallbacks.map { it.invoke(variant) }
.fold(HashMap<String, List<String>>(kaceExtension.customVariant)) { acc, customVariant ->
customVariant.forEach {
acc.merge(it.key, it.value, List<String>::plus)
}
acc
}

addCustomVariantLayoutDir(customVariant, layoutDirList)
return layoutDirList
}

Expand Down
23 changes: 23 additions & 0 deletions kace-sample/app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -74,3 +74,26 @@ android {
implementation(project(":sample-lib"))
}
}

kace {
customVariant = mapOf("debug" to listOf(file("src/debug/res000").absolutePath))
customVariant {
when {
"debug" in it.buildType.name -> mapOf(
"debug" to listOf(
file("src/debug/res1").absolutePath,
file("src/debug/res2").absolutePath
)
)

"release" in it.buildType.name -> mapOf(
"release" to listOf(
file("src/release/res1").absolutePath,
file("src/release/res2").absolutePath
)
)

else -> emptyMap()
}
}
}

0 comments on commit f2e33ff

Please sign in to comment.