2023-02-05 05:58:53 +11:00
|
|
|
plugins {
|
|
|
|
alias(libs.plugins.android.application)
|
|
|
|
alias(libs.plugins.kotlin.android)
|
|
|
|
alias(libs.plugins.kotlin.kapt)
|
|
|
|
alias(libs.plugins.kotlin.parcelize)
|
2018-07-17 03:01:34 +10:00
|
|
|
}
|
|
|
|
|
2023-02-11 07:33:53 +11:00
|
|
|
// For constructing gitSha only
|
2023-02-11 07:22:32 +11:00
|
|
|
def getGitSha = {
|
2023-02-15 06:15:42 +11:00
|
|
|
try { // Try-catch is necessary for build to work on non-git distributions
|
2023-02-11 07:22:32 +11:00
|
|
|
providers.exec {
|
2023-02-11 07:33:53 +11:00
|
|
|
commandLine 'git', 'rev-parse', 'HEAD'
|
2023-02-15 06:15:42 +11:00
|
|
|
executionResult.rethrowFailure() // Without this, sometimes it just stops immediately instead of throwing
|
2023-02-11 07:22:32 +11:00
|
|
|
}.standardOutput.asText.get().trim()
|
|
|
|
} catch (Exception e) {
|
2023-02-15 06:15:42 +11:00
|
|
|
"unknown"
|
2023-02-11 07:22:32 +11:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
final def gitSha = getGitSha()
|
2023-02-05 05:58:53 +11:00
|
|
|
|
|
|
|
// The app name
|
|
|
|
final def APP_NAME = "Tusky"
|
|
|
|
// The application id. Must be unique, e.g. based on your domain
|
|
|
|
final def APP_ID = "com.keylesspalace.tusky"
|
|
|
|
// url of a custom app logo. Recommended size at least 600x600. Keep empty to use the Tusky elephant friend.
|
|
|
|
final def CUSTOM_LOGO_URL = ""
|
|
|
|
// e.g. mastodon.social. Keep empty to not suggest any instance on the signup screen
|
|
|
|
final def CUSTOM_INSTANCE = ""
|
|
|
|
// link to your support account. Will be linked on the about page when not empty.
|
|
|
|
final def SUPPORT_ACCOUNT_URL = "https://mastodon.social/@Tusky"
|
|
|
|
|
2017-01-03 10:30:27 +11:00
|
|
|
android {
|
2023-02-05 05:58:53 +11:00
|
|
|
compileSdk 33
|
|
|
|
namespace "com.keylesspalace.tusky"
|
2017-01-03 10:30:27 +11:00
|
|
|
defaultConfig {
|
2019-10-30 06:30:46 +11:00
|
|
|
applicationId APP_ID
|
2022-12-07 06:32:26 +11:00
|
|
|
namespace "com.keylesspalace.tusky"
|
2023-02-05 05:58:53 +11:00
|
|
|
minSdk 23
|
|
|
|
targetSdk 33
|
2023-02-04 06:10:46 +11:00
|
|
|
versionCode 100
|
|
|
|
versionName "21.0"
|
2018-12-18 01:25:35 +11:00
|
|
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
2018-09-26 03:04:57 +10:00
|
|
|
vectorDrawables.useSupportLibrary = true
|
2018-12-26 06:06:28 +11:00
|
|
|
|
2019-10-30 06:30:46 +11:00
|
|
|
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\"")
|
2017-01-03 10:30:27 +11:00
|
|
|
}
|
|
|
|
buildTypes {
|
|
|
|
release {
|
2017-04-08 08:08:51 +10:00
|
|
|
minifyEnabled true
|
|
|
|
shrinkResources true
|
2018-08-16 04:46:37 +10:00
|
|
|
proguardFiles 'proguard-rules.pro'
|
2017-01-03 10:30:27 +11:00
|
|
|
}
|
2018-07-17 03:01:34 +10:00
|
|
|
}
|
|
|
|
|
2023-02-05 05:58:53 +11:00
|
|
|
flavorDimensions += "color"
|
2018-07-17 03:01:34 +10:00
|
|
|
productFlavors {
|
2019-06-10 00:55:34 +10:00
|
|
|
blue {}
|
2018-07-17 03:01:34 +10:00
|
|
|
green {
|
2020-11-29 03:34:21 +11:00
|
|
|
resValue "string", "app_name", APP_NAME + " Test"
|
2017-12-08 22:15:46 +11:00
|
|
|
applicationIdSuffix ".test"
|
2023-02-05 05:58:53 +11:00
|
|
|
versionNameSuffix "-" + gitSha
|
2017-12-08 22:15:46 +11:00
|
|
|
}
|
2017-01-03 10:30:27 +11:00
|
|
|
}
|
2017-10-26 06:56:27 +11:00
|
|
|
|
2023-02-05 05:58:53 +11:00
|
|
|
lint {
|
2017-04-13 14:01:02 +10:00
|
|
|
disable 'MissingTranslation'
|
|
|
|
}
|
2021-01-22 04:57:09 +11:00
|
|
|
buildFeatures {
|
2023-02-05 05:58:53 +11:00
|
|
|
buildConfig true
|
|
|
|
resValues true
|
2021-01-22 04:57:09 +11:00
|
|
|
viewBinding true
|
|
|
|
}
|
2018-03-10 08:02:32 +11:00
|
|
|
testOptions {
|
|
|
|
unitTests {
|
2019-09-22 16:18:44 +10:00
|
|
|
returnDefaultValues = true
|
2018-03-10 08:02:32 +11:00
|
|
|
includeAndroidResources = true
|
|
|
|
}
|
2023-01-13 05:10:11 +11:00
|
|
|
unitTests.all {
|
|
|
|
systemProperty 'robolectric.logging.enabled', 'true'
|
2023-02-05 05:58:53 +11:00
|
|
|
}
|
2018-03-10 08:02:32 +11:00
|
|
|
}
|
2018-12-26 06:06:28 +11:00
|
|
|
sourceSets {
|
|
|
|
androidTest.assets.srcDirs += files("$projectDir/schemas".toString())
|
|
|
|
}
|
|
|
|
|
2023-02-05 05:58:53 +11:00
|
|
|
// Exclude unneeded files added by libraries
|
|
|
|
packagingOptions.resources.excludes += [
|
|
|
|
'LICENSE_OFL',
|
|
|
|
'LICENSE_UNICODE',
|
|
|
|
]
|
|
|
|
|
2019-03-30 05:56:53 +11:00
|
|
|
bundle {
|
|
|
|
language {
|
|
|
|
// bundle all languages in every apk so the dynamic language switching works
|
|
|
|
enableSplit = false
|
|
|
|
}
|
|
|
|
}
|
2022-12-06 05:13:15 +11:00
|
|
|
dependenciesInfo {
|
|
|
|
includeInApk false
|
|
|
|
includeInBundle false
|
|
|
|
}
|
2023-02-05 05:58:53 +11:00
|
|
|
compileOptions {
|
|
|
|
sourceCompatibility JavaVersion.VERSION_11
|
|
|
|
targetCompatibility JavaVersion.VERSION_11
|
|
|
|
}
|
|
|
|
kotlinOptions {
|
|
|
|
jvmTarget = JavaVersion.VERSION_11
|
|
|
|
}
|
|
|
|
applicationVariants.configureEach { variant ->
|
|
|
|
variant.outputs.configureEach {
|
|
|
|
outputFileName = "Tusky_${variant.versionName}_${variant.versionCode}_${gitSha}_" +
|
|
|
|
"${variant.flavorName}_${buildType.name}.apk"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
kapt {
|
|
|
|
arguments {
|
|
|
|
arg("room.schemaLocation", "$projectDir/schemas")
|
|
|
|
arg("room.incremental", "true")
|
|
|
|
}
|
2019-05-18 16:06:30 +10:00
|
|
|
}
|
|
|
|
|
2022-11-05 06:10:26 +11:00
|
|
|
// library versions are in PROJECT_ROOT/gradle/libs.versions.toml
|
2017-01-03 10:30:27 +11:00
|
|
|
dependencies {
|
2022-11-05 06:10:26 +11:00
|
|
|
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
|
2023-02-05 05:58:53 +11:00
|
|
|
implementation libs.material.typeface
|
2022-11-05 06:10:26 +11:00
|
|
|
|
|
|
|
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
|
2022-11-08 06:04:07 +11:00
|
|
|
testImplementation libs.androidx.work.testing
|
2022-11-05 06:10:26 +11:00
|
|
|
|
|
|
|
androidTestImplementation libs.espresso.core
|
|
|
|
androidTestImplementation libs.androidx.room.testing
|
|
|
|
androidTestImplementation libs.androidx.test.junit
|
2017-11-06 08:32:36 +11:00
|
|
|
}
|