160 lines
4.0 KiB
Groovy
160 lines
4.0 KiB
Groovy
apply plugin: 'com.android.application'
|
|
apply plugin: 'kotlin-android'
|
|
apply plugin: 'kotlin-kapt'
|
|
apply plugin: 'kotlin-parcelize'
|
|
|
|
apply from: "../instance-build.gradle"
|
|
|
|
def getGitSha = {
|
|
def stdout = new ByteArrayOutputStream()
|
|
try {
|
|
exec {
|
|
commandLine 'git', 'rev-parse', '--short', 'HEAD'
|
|
standardOutput = stdout
|
|
}
|
|
} catch (Exception e) {
|
|
return "unknown"
|
|
}
|
|
return stdout.toString().trim()
|
|
}
|
|
|
|
android {
|
|
compileSdkVersion 33
|
|
defaultConfig {
|
|
applicationId APP_ID
|
|
minSdkVersion 23
|
|
targetSdkVersion 33
|
|
versionCode 97
|
|
versionName "20.0"
|
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
|
vectorDrawables.useSupportLibrary = true
|
|
|
|
resValue "string", "app_name", APP_NAME
|
|
|
|
buildConfigField("String", "CUSTOM_LOGO_URL", "\"$CUSTOM_LOGO_URL\"")
|
|
buildConfigField("String", "CUSTOM_INSTANCE", "\"$CUSTOM_INSTANCE\"")
|
|
buildConfigField("String", "SUPPORT_ACCOUNT_URL", "\"$SUPPORT_ACCOUNT_URL\"")
|
|
|
|
kapt {
|
|
arguments {
|
|
arg("room.schemaLocation", "$projectDir/schemas")
|
|
}
|
|
}
|
|
}
|
|
buildTypes {
|
|
release {
|
|
minifyEnabled true
|
|
shrinkResources true
|
|
proguardFiles 'proguard-rules.pro'
|
|
}
|
|
debug {}
|
|
}
|
|
|
|
flavorDimensions "color"
|
|
productFlavors {
|
|
blue {}
|
|
green {
|
|
resValue "string", "app_name", APP_NAME + " Test"
|
|
applicationIdSuffix ".test"
|
|
versionNameSuffix "-" + getGitSha()
|
|
}
|
|
}
|
|
|
|
lintOptions {
|
|
disable 'MissingTranslation'
|
|
}
|
|
buildFeatures {
|
|
viewBinding true
|
|
}
|
|
testOptions {
|
|
unitTests {
|
|
returnDefaultValues = true
|
|
includeAndroidResources = true
|
|
}
|
|
}
|
|
sourceSets {
|
|
androidTest.assets.srcDirs += files("$projectDir/schemas".toString())
|
|
}
|
|
|
|
packagingOptions {
|
|
// Exclude unneeded files added by libraries
|
|
exclude 'LICENSE_OFL'
|
|
exclude 'LICENSE_UNICODE'
|
|
}
|
|
bundle {
|
|
language {
|
|
// bundle all languages in every apk so the dynamic language switching works
|
|
enableSplit = false
|
|
}
|
|
}
|
|
kotlinOptions {
|
|
freeCompilerArgs += "-opt-in=kotlin.RequiresOptIn"
|
|
}
|
|
dependenciesInfo {
|
|
includeInApk false
|
|
includeInBundle false
|
|
}
|
|
}
|
|
|
|
// library versions are in PROJECT_ROOT/gradle/libs.versions.toml
|
|
dependencies {
|
|
implementation libs.kotlinx.coroutines.android
|
|
implementation libs.kotlinx.coroutines.rx3
|
|
|
|
implementation libs.bundles.androidx
|
|
implementation libs.bundles.room
|
|
kapt libs.androidx.room.compiler
|
|
|
|
implementation libs.android.material
|
|
|
|
implementation libs.gson
|
|
|
|
implementation libs.bundles.retrofit
|
|
implementation libs.networkresult.calladapter
|
|
|
|
implementation libs.bundles.okhttp
|
|
|
|
implementation libs.conscrypt.android
|
|
|
|
implementation libs.bundles.glide
|
|
kapt libs.glide.compiler
|
|
|
|
implementation libs.bundles.rxjava3
|
|
|
|
implementation libs.bundles.autodispose
|
|
|
|
implementation libs.bundles.dagger
|
|
kapt libs.bundles.dagger.processors
|
|
|
|
implementation libs.sparkbutton
|
|
|
|
implementation libs.photoview
|
|
|
|
implementation libs.bundles.material.drawer
|
|
implementation libs.material.typeface, {
|
|
artifact {
|
|
type = "aar"
|
|
}
|
|
}
|
|
|
|
implementation libs.image.cropper
|
|
|
|
implementation libs.bundles.filemojicompat
|
|
|
|
implementation libs.bouncycastle
|
|
implementation libs.unified.push
|
|
|
|
testImplementation libs.androidx.test.junit
|
|
testImplementation libs.robolectric
|
|
testImplementation libs.bundles.mockito
|
|
testImplementation libs.mockwebserver
|
|
testImplementation libs.androidx.core.testing
|
|
testImplementation libs.kotlinx.coroutines.test
|
|
testImplementation libs.androidx.work.testing
|
|
|
|
androidTestImplementation libs.espresso.core
|
|
androidTestImplementation libs.androidx.room.testing
|
|
androidTestImplementation libs.androidx.test.junit
|
|
|
|
}
|