Updated on 2026-08-14

This commit is contained in:
Tangem 2024-08-15 17:45:09 +03:00
parent 026b4ec33c
commit 5352dfcb6d

View file

@ -1,7 +1,6 @@
package com.tangem.plugin.configuration.configurations.extension
import com.android.build.gradle.AppExtension
import com.android.build.gradle.internal.dsl.DefaultConfig
import com.tangem.plugin.configuration.model.AppConfig
import com.tangem.plugin.configuration.model.BuildType
import com.tangem.plugin.configuration.utils.BuildConfigFieldFactory
@ -10,15 +9,15 @@ import com.android.build.gradle.internal.dsl.BuildType as AndroidBuildType
internal fun AppExtension.configure(project: Project) {
configureCompileSdk()
val defaultConfig = configureDefaultConfig(project)
configureDefaultConfig(project)
configureBuildFeatures()
configureBuildTypes(defaultConfig)
configureBuildTypes()
configurePackagingOptions()
configureCompose(project)
configureCompilerOptions()
}
private fun AppExtension.configureDefaultConfig(project: Project): DefaultConfig {
private fun AppExtension.configureDefaultConfig(project: Project) {
defaultConfig {
applicationId = AppConfig.packageName
minSdk = AppConfig.minSdkVersion
@ -41,7 +40,6 @@ private fun AppExtension.configureDefaultConfig(project: Project): DefaultConfig
testInstrumentationRunner = "com.tangem.common.HiltTestRunner"
}
return defaultConfig
}
// TODO: [REDACTED_JIRA]
@ -51,14 +49,13 @@ private fun AppExtension.configureBuildFeatures() {
}
}
private fun AppExtension.configureBuildTypes(defaultConfig: DefaultConfig) {
private fun AppExtension.configureBuildTypes() {
buildTypes {
BuildType.values().forEach { buildType ->
maybeCreate(buildType.id).apply {
configureBuildVariant(
appExtension = this@configureBuildTypes,
buildType = buildType,
defaultConfig = defaultConfig
)
BuildConfigFieldFactory(
@ -71,11 +68,7 @@ private fun AppExtension.configureBuildTypes(defaultConfig: DefaultConfig) {
testBuildType = BuildType.Mocked.id
}
private fun AndroidBuildType.configureBuildVariant(
appExtension: AppExtension,
buildType: BuildType,
defaultConfig: DefaultConfig,
) {
private fun AndroidBuildType.configureBuildVariant(appExtension: AppExtension, buildType: BuildType) {
when (buildType) {
BuildType.Release -> {
isDebuggable = false
@ -91,19 +84,13 @@ private fun AndroidBuildType.configureBuildVariant(
matchingFallbacks.add(BuildType.Release.id)
signingConfig = appExtension.signingConfigs.getByName(BuildType.Debug.id)
}
BuildType.Internal -> {
BuildType.Internal,
BuildType.Mocked -> {
initWith(appExtension.buildTypes.getByName(BuildType.Release.id))
matchingFallbacks.add(BuildType.Release.id)
signingConfig = appExtension.signingConfigs.getByName(BuildType.Debug.id)
isDebuggable = true
}
BuildType.Mocked -> {
defaultConfig.versionName = LARGE_VERSION_NAME
initWith(appExtension.buildTypes.getByName(BuildType.Release.id))
matchingFallbacks.add(BuildType.Mocked.id)
signingConfig = appExtension.signingConfigs.getByName(BuildType.Debug.id)
isDebuggable = true
}
}
versionNameSuffix = buildType.versionSuffix?.let { "-$it" }
@ -119,6 +106,4 @@ private fun AppExtension.configurePackagingOptions() {
excludes += "META-INF/gradle/incremental.annotation.processors"
}
}
}
private const val LARGE_VERSION_NAME = "100.0.0"
}