mirror of
https://github.com/vector-im/element-android.git
synced 2024-11-16 02:05:06 +08:00
212 lines
6.4 KiB
Groovy
212 lines
6.4 KiB
Groovy
apply plugin: 'com.android.application'
|
|
apply plugin: 'kotlin-android'
|
|
apply plugin: 'kotlin-android-extensions'
|
|
apply plugin: 'kotlin-kapt'
|
|
|
|
kapt {
|
|
correctErrorTypes = true
|
|
}
|
|
|
|
androidExtensions {
|
|
experimental = true
|
|
}
|
|
|
|
def versionMajor = 0
|
|
def versionMinor = 1
|
|
def versionPatch = 0
|
|
|
|
def getGitTimestamp() {
|
|
def cmd = 'git show -s --format=%ct'
|
|
return cmd.execute().text.trim() as Long
|
|
}
|
|
|
|
static def generateVersionCodeFromTimestamp() {
|
|
// It's unix timestamp divided by 10: It's incremented by one every 10 seconds.
|
|
return (getGitTimestamp() / 10).toInteger()
|
|
}
|
|
|
|
def generateVersionCodeFromVersionName() {
|
|
return versionMajor * 10000 + versionMinor * 100 + versionPatch
|
|
}
|
|
|
|
static def gitRevision() {
|
|
def cmd = "git rev-parse --short HEAD"
|
|
return cmd.execute().text.trim()
|
|
}
|
|
|
|
static def gitRevisionDate() {
|
|
def cmd = "git show -s --format=%ci HEAD^{commit}"
|
|
return cmd.execute().text.trim()
|
|
}
|
|
|
|
static def gitBranchName() {
|
|
def cmd = "git name-rev --name-only HEAD"
|
|
return cmd.execute().text.trim()
|
|
}
|
|
|
|
project.android.buildTypes.all { buildType ->
|
|
buildType.javaCompileOptions.annotationProcessorOptions.arguments =
|
|
[
|
|
validateEpoxyModelUsage: String.valueOf(buildType.name == 'debug')
|
|
]
|
|
}
|
|
|
|
def buildNumber = System.getenv("BUILD_NUMBER") as Integer ?: 0
|
|
|
|
android {
|
|
compileSdkVersion 28
|
|
defaultConfig {
|
|
applicationId "im.vector.riotredesign"
|
|
minSdkVersion 16
|
|
targetSdkVersion 28
|
|
multiDexEnabled true
|
|
versionCode generateVersionCodeFromTimestamp()
|
|
versionName "${versionMajor}.${versionMinor}.${versionPatch}"
|
|
|
|
resValue "string", "git_revision", "\"${gitRevision()}\""
|
|
resValue "string", "git_revision_date", "\"${gitRevisionDate()}\""
|
|
resValue "string", "git_branch_name", "\"${gitBranchName()}\""
|
|
resValue "string", "build_number", "\"${buildNumber}\""
|
|
|
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
|
}
|
|
|
|
buildTypes {
|
|
debug {
|
|
resValue "bool", "debug_mode", "true"
|
|
}
|
|
|
|
release {
|
|
resValue "bool", "debug_mode", "false"
|
|
|
|
minifyEnabled false
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
|
}
|
|
}
|
|
|
|
flavorDimensions "store"
|
|
|
|
productFlavors {
|
|
appgplay {
|
|
dimension "store"
|
|
|
|
buildConfigField "boolean", "ALLOW_FCM_USE", "true"
|
|
buildConfigField "String", "SHORT_FLAVOR_DESCRIPTION", "\"G\""
|
|
buildConfigField "String", "FLAVOR_DESCRIPTION", "\"GooglePlay\""
|
|
}
|
|
|
|
appfdroid {
|
|
dimension "store"
|
|
|
|
buildConfigField "boolean", "ALLOW_FCM_USE", "false"
|
|
buildConfigField "String", "SHORT_FLAVOR_DESCRIPTION", "\"F\""
|
|
buildConfigField "String", "FLAVOR_DESCRIPTION", "\"FDroid\""
|
|
}
|
|
}
|
|
|
|
lintOptions {
|
|
warning 'MissingTranslation'
|
|
|
|
// Treat some warnings as errors
|
|
// Resources
|
|
error 'TypographyEllipsis'
|
|
warning 'ImpliedQuantity'
|
|
|
|
// UX
|
|
error 'ButtonOrder'
|
|
|
|
// Layout
|
|
error 'UnknownIdInLayout'
|
|
error 'StringFormatCount'
|
|
error 'HardcodedText'
|
|
error 'SpUsage'
|
|
error 'ObsoleteLayoutParam'
|
|
error 'InefficientWeight'
|
|
error 'DisableBaselineAlignment'
|
|
error 'ScrollViewSize'
|
|
|
|
// RTL
|
|
error 'RtlEnabled'
|
|
error 'RtlHardcoded'
|
|
error 'RtlSymmetry'
|
|
|
|
// Code
|
|
error 'SetTextI18n'
|
|
error 'ViewConstructor'
|
|
error 'UseValueOf'
|
|
}
|
|
|
|
compileOptions {
|
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
|
|
def epoxy_version = "3.0.0"
|
|
def arrow_version = "0.8.2"
|
|
def coroutines_version = "1.0.1"
|
|
def markwon_version = '3.0.0-SNAPSHOT'
|
|
def big_image_viewer_version = '1.5.6'
|
|
def glide_version = '4.8.0'
|
|
|
|
implementation project(":matrix-sdk-android")
|
|
implementation project(":matrix-sdk-android-rx")
|
|
implementation 'com.android.support:multidex:1.0.3'
|
|
|
|
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version"
|
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version"
|
|
|
|
implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
|
|
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
|
implementation 'androidx.core:core-ktx:1.0.1'
|
|
|
|
// Paging
|
|
implementation 'androidx.paging:paging-runtime:2.0.0'
|
|
|
|
implementation 'com.jakewharton.threetenabp:threetenabp:1.1.1'
|
|
implementation 'com.jakewharton.timber:timber:4.7.1'
|
|
implementation 'com.facebook.stetho:stetho:1.5.0'
|
|
|
|
// rx
|
|
implementation 'io.reactivex.rxjava2:rxkotlin:2.3.0'
|
|
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
|
|
implementation 'com.jakewharton.rxrelay2:rxrelay:2.1.0'
|
|
implementation 'com.jakewharton.rxbinding2:rxbinding:2.2.0'
|
|
|
|
implementation("com.airbnb.android:epoxy:$epoxy_version")
|
|
kapt "com.airbnb.android:epoxy-processor:$epoxy_version"
|
|
implementation 'com.airbnb.android:mvrx:0.7.0'
|
|
|
|
// FP
|
|
implementation "io.arrow-kt:arrow-core:$arrow_version"
|
|
|
|
// UI
|
|
implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
|
|
implementation 'com.google.android.material:material:1.1.0-alpha02'
|
|
implementation 'me.gujun.android:span:1.7'
|
|
implementation "ru.noties.markwon:core:$markwon_version"
|
|
implementation "ru.noties.markwon:html:$markwon_version"
|
|
|
|
// Image Loading
|
|
implementation "com.github.piasy:BigImageViewer:$big_image_viewer_version"
|
|
implementation "com.github.piasy:GlideImageLoader:$big_image_viewer_version"
|
|
implementation "com.github.piasy:ProgressPieIndicator:$big_image_viewer_version"
|
|
implementation "com.github.piasy:GlideImageViewFactory:$big_image_viewer_version"
|
|
implementation "com.github.bumptech.glide:glide:$glide_version"
|
|
kapt "com.github.bumptech.glide:compiler:$glide_version"
|
|
|
|
// DI
|
|
implementation "org.koin:koin-android:$koin_version"
|
|
implementation "org.koin:koin-android-scope:$koin_version"
|
|
|
|
// TESTS
|
|
testImplementation 'junit:junit:4.12'
|
|
androidTestImplementation 'androidx.test:runner:1.1.1'
|
|
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
|
|
}
|
|
|
|
|