Merge pull request #4017 from vector-im/feature/aris/optimize_global_gradle_variables

Optimize dependencies handling
This commit is contained in:
Benoit Marty 2021-09-17 15:28:49 +02:00 committed by GitHub
commit 744523b200
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 278 additions and 173 deletions

View file

@ -18,11 +18,12 @@ apply plugin: 'com.android.library'
apply plugin: 'kotlin-android' apply plugin: 'kotlin-android'
android { android {
compileSdk 30
compileSdk versions.compileSdk
defaultConfig { defaultConfig {
minSdk 21 minSdk versions.minSdk
targetSdk 30 targetSdk versions.targetSdk
} }
buildTypes { buildTypes {
@ -32,8 +33,8 @@ android {
} }
} }
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_11 sourceCompatibility versions.sourceCompat
targetCompatibility JavaVersion.VERSION_11 targetCompatibility versions.targetCompat
} }
kotlinOptions { kotlinOptions {
jvmTarget = "11" jvmTarget = "11"
@ -49,13 +50,13 @@ dependencies {
implementation 'com.github.chrisbanes:PhotoView:2.3.0' implementation 'com.github.chrisbanes:PhotoView:2.3.0'
implementation 'io.reactivex.rxjava2:rxkotlin:2.4.0' implementation libs.rx.rxKotlin
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1' implementation libs.rx.rxAndroid
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation libs.jetbrains.kotlinStdlib
implementation 'androidx.core:core-ktx:1.6.0' implementation libs.androidx.core
implementation 'androidx.appcompat:appcompat:1.3.1' implementation libs.androidx.appCompat
implementation "androidx.recyclerview:recyclerview:1.2.1" implementation libs.androidx.recyclerview
implementation 'com.google.android.material:material:1.4.0' implementation libs.google.material
} }

View file

@ -1,9 +1,9 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules. // Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript { buildscript {
// Ref: https://kotlinlang.org/releases.html
ext.kotlin_version = '1.5.30' apply from: 'dependencies.gradle'
ext.kotlin_coroutines_version = "1.5.1"
repositories { repositories {
google() google()
jcenter() jcenter()
@ -11,12 +11,13 @@ buildscript {
url "https://plugins.gradle.org/m2/" url "https://plugins.gradle.org/m2/"
} }
} }
dependencies { dependencies {
// Release notes of Android Gradle Plugin (AGP): // Release notes of Android Gradle Plugin (AGP):
// https://developer.android.com/studio/releases/gradle-plugin // https://developer.android.com/studio/releases/gradle-plugin
classpath 'com.android.tools.build:gradle:7.0.2' classpath libs.gradle.gradlePlugin
classpath libs.gradle.kotlinPlugin
classpath 'com.google.gms:google-services:4.3.10' classpath 'com.google.gms:google-services:4.3.10'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.3' classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.3'
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.4' classpath 'com.google.android.gms:oss-licenses-plugin:0.10.4'
classpath "com.likethesalad.android:string-reference:1.2.2" classpath "com.likethesalad.android:string-reference:1.2.2"

127
dependencies.gradle Normal file
View file

@ -0,0 +1,127 @@
ext.versions = [
'minSdk' : 21,
'compileSdk' : 30,
'targetSdk' : 30,
'sourceCompat' : JavaVersion.VERSION_11,
'targetCompat' : JavaVersion.VERSION_11,
]
// Ref: https://kotlinlang.org/releases.html
def gradle = "7.0.2"
def kotlin = "1.5.30"
def kotlinCoroutines = "1.5.1"
def dagger = "2.38.1"
def retrofit = "2.9.0"
def arrow = "0.8.2"
def markwon = "4.6.2"
def moshi = "1.12.0"
def lifecycle = "2.2.0"
def rxBinding = "3.1.0"
def epoxy = "4.6.2"
def glide = "4.12.0"
def bigImageViewer = "1.8.1"
def jjwt = "0.11.2"
// Testing
def mockk = "1.12.0"
def espresso = "3.4.0"
def androidxTest = "1.4.0"
ext.libs = [
gradle : [
'gradlePlugin' : "com.android.tools.build:gradle:$gradle",
'kotlinPlugin' : "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin"
],
jetbrains : [
'kotlinStdlibJdk7' : "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin",
'kotlinStdlib' : "org.jetbrains.kotlin:kotlin-stdlib:$kotlin",
'coroutinesCore' : "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinCoroutines",
'coroutinesAndroid' : "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlinCoroutines",
'coroutinesRx2' : "org.jetbrains.kotlinx:kotlinx-coroutines-rx2:$kotlinCoroutines"
],
androidx : [
'appCompat' : "androidx.appcompat:appcompat:1.3.1",
'core' : "androidx.core:core-ktx:1.6.0",
'recyclerview' : "androidx.recyclerview:recyclerview:1.2.1",
'exifinterface' : "androidx.exifinterface:exifinterface:1.3.3",
'fragmentKtx' : "androidx.fragment:fragment-ktx:1.3.6",
'constraintLayout' : "androidx.constraintlayout:constraintlayout:2.1.0",
'work' : "androidx.work:work-runtime-ktx:2.5.0",
'autoFill' : "androidx.autofill:autofill:1.1.0",
'preferenceKtx' : "androidx.preference:preference-ktx:1.1.1",
'junit' : "androidx.test.ext:junit:1.1.3",
'lifecycleExtensions' : "androidx.lifecycle:lifecycle-extensions:$lifecycle",
'lifecycleJava8' : "androidx.lifecycle:lifecycle-common-java8:$lifecycle",
'lifecycleLivedata' : "androidx.lifecycle:lifecycle-livedata-ktx:2.3.1",
'pagingRuntimeKtx' : "androidx.paging:paging-runtime-ktx:2.1.2",
'coreTesting' : "androidx.arch.core:core-testing:2.1.0",
'testCore' : "androidx.test:core:$androidxTest",
'testRunner' : "androidx.test:runner:$androidxTest",
'testRules' : "androidx.test:rules:$androidxTest",
'espressoCore' : "androidx.test.espresso:espresso-core:$espresso",
'espressoContrib' : "androidx.test.espresso:espresso-contrib:$espresso",
'espressoIntents' : "androidx.test.espresso:espresso-intents:$espresso"
],
google : [
'material' : "com.google.android.material:material:1.4.0"
],
dagger : [
'dagger' : "com.google.dagger:dagger:$dagger",
'daggerCompiler' : "com.google.dagger:dagger-compiler:$dagger"
],
squareup : [
'moshi' : "com.squareup.moshi:moshi-adapters:$moshi",
'moshiKotlin' : "com.squareup.moshi:moshi-kotlin-codegen:$moshi",
'retrofit' : "com.squareup.retrofit2:retrofit:$retrofit",
'retrofitMoshi' : "com.squareup.retrofit2:converter-moshi:$retrofit"
],
rx : [
'rxKotlin' : "io.reactivex.rxjava2:rxkotlin:2.4.0",
'rxAndroid' : "io.reactivex.rxjava2:rxandroid:2.1.1"
],
arrow : [
'core' : "io.arrow-kt:arrow-core:$arrow",
'instances' : "io.arrow-kt:arrow-instances-core:$arrow"
],
markwon : [
'core' : "io.noties.markwon:core:$markwon",
'html' : "io.noties.markwon:html:$markwon"
],
airbnb : [
'epoxy' : "com.airbnb.android:epoxy:$epoxy",
'epoxyGlide' : "com.airbnb.android:epoxy-glide-preloading:$epoxy",
'epoxyProcessor' : "com.airbnb.android:epoxy-processor:$epoxy",
'epoxyPaging' : "com.airbnb.android:epoxy-paging:$epoxy",
'mvrx' : "com.airbnb.android:mvrx:1.5.1"
],
mockk : [
'mockk' : "io.mockk:mockk:$mockk",
'mockkAndroid' : "io.mockk:mockk-android:$mockk"
],
github : [
'glide' : "com.github.bumptech.glide:glide:$glide",
'glideCompiler' : "com.github.bumptech.glide:compiler:$glide",
'bigImageViewer' : "com.github.piasy:BigImageViewer:$bigImageViewer",
'glideImageLoader' : "com.github.piasy:GlideImageLoader:$bigImageViewer",
'progressPieIndicator' : "com.github.piasy:ProgressPieIndicator:$bigImageViewer",
'glideImageViewFactory' : "com.github.piasy:GlideImageViewFactory:$bigImageViewer"
],
jakewharton : [
'timber' : "com.jakewharton.timber:timber:5.0.1",
'rxbinding' : "com.jakewharton.rxbinding3:rxbinding:$rxBinding",
'rxbindingAppcompat' : "com.jakewharton.rxbinding3:rxbinding-appcompat:$rxBinding",
'rxbindingMaterial' : "com.jakewharton.rxbinding3:rxbinding-material:$rxBinding"
],
jsonwebtoken: [
'jjwtApi' : "io.jsonwebtoken:jjwt-api:$jjwt",
'jjwtImpl' : "io.jsonwebtoken:jjwt-impl:$jjwt",
'jjwtOrgjson' : "io.jsonwebtoken:jjwt-orgjson:$jjwt"
],
tests : [
'kluent' : "org.amshove.kluent:kluent-android:1.68",
'timberJunitRule' : "net.lachlanmckee:timber-junit-rule:1.0.1",
'junit' : "junit:junit:4.13.2"
]
]

View file

@ -20,11 +20,11 @@ plugins {
} }
android { android {
compileSdk 30
compileSdk versions.compileSdk
defaultConfig { defaultConfig {
minSdk 21 minSdk versions.minSdk
targetSdk 30 targetSdk versions.targetSdk
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro" consumerProguardFiles "consumer-rules.pro"
@ -38,8 +38,8 @@ android {
} }
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_11 sourceCompatibility versions.sourceCompat
targetCompatibility JavaVersion.VERSION_11 targetCompatibility versions.targetCompat
} }
kotlinOptions { kotlinOptions {
@ -52,10 +52,10 @@ android {
} }
dependencies { dependencies {
implementation 'androidx.appcompat:appcompat:1.3.1' implementation libs.androidx.appCompat
implementation 'com.google.android.material:material:1.4.0' implementation libs.google.material
// Pref theme // Pref theme
implementation 'androidx.preference:preference-ktx:1.1.1' implementation libs.androidx.preferenceKtx
// PFLockScreen attrs // PFLockScreen attrs
implementation 'com.github.vector-im:PFLockScreen-Android:1.0.0-beta12' implementation 'com.github.vector-im:PFLockScreen-Android:1.0.0-beta12'
// dialpad dimen // dialpad dimen

View file

@ -3,11 +3,11 @@ apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt' apply plugin: 'kotlin-kapt'
android { android {
compileSdk 30 compileSdk versions.compileSdk
defaultConfig { defaultConfig {
minSdk 21 minSdk versions.minSdk
targetSdk 30 targetSdk versions.targetSdk
// Multidex is useful for tests // Multidex is useful for tests
multiDexEnabled true multiDexEnabled true
@ -22,8 +22,8 @@ android {
} }
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_11 sourceCompatibility versions.sourceCompat
targetCompatibility JavaVersion.VERSION_11 targetCompatibility versions.targetCompat
} }
kotlinOptions { kotlinOptions {
@ -32,15 +32,16 @@ android {
} }
dependencies { dependencies {
implementation project(":matrix-sdk-android") implementation project(":matrix-sdk-android")
implementation 'androidx.appcompat:appcompat:1.3.1' implementation libs.androidx.appCompat
implementation 'io.reactivex.rxjava2:rxkotlin:2.4.0' implementation libs.rx.rxKotlin
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1' implementation libs.rx.rxAndroid
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-rx2:$kotlin_coroutines_version" implementation libs.jetbrains.coroutinesRx2
// Paging // Paging
implementation "androidx.paging:paging-runtime-ktx:2.1.2" implementation libs.androidx.pagingRuntimeKtx
// Logging // Logging
implementation 'com.jakewharton.timber:timber:5.0.1' implementation libs.jakewharton.timber
} }

View file

@ -14,12 +14,13 @@ buildscript {
} }
android { android {
compileSdk 30
testOptions.unitTests.includeAndroidResources = true testOptions.unitTests.includeAndroidResources = true
compileSdk versions.compileSdk
defaultConfig { defaultConfig {
minSdk 21 minSdk versions.minSdk
targetSdk 30 targetSdk versions.targetSdk
// Multidex is useful for tests // Multidex is useful for tests
multiDexEnabled true multiDexEnabled true
@ -65,8 +66,8 @@ android {
} }
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_11 sourceCompatibility versions.sourceCompat
targetCompatibility JavaVersion.VERSION_11 targetCompatibility versions.targetCompat
} }
kotlinOptions { kotlinOptions {
@ -100,62 +101,53 @@ static def gitRevisionDate() {
dependencies { dependencies {
def arrow_version = "0.8.2" implementation libs.jetbrains.kotlinStdlibJdk7
def moshi_version = '1.12.0' implementation libs.jetbrains.coroutinesCore
def lifecycle_version = '2.2.0' implementation libs.jetbrains.coroutinesAndroid
def arch_version = '2.1.0'
def markwon_version = '3.1.0'
def daggerVersion = '2.38.1'
def work_version = '2.5.0'
def retrofit_version = '2.9.0'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation libs.androidx.appCompat
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_version" implementation libs.androidx.core
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutines_version"
implementation "androidx.appcompat:appcompat:1.3.1" implementation libs.androidx.lifecycleExtensions
implementation "androidx.core:core-ktx:1.6.0" implementation libs.androidx.lifecycleJava8
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
// Network // Network
implementation "com.squareup.retrofit2:retrofit:$retrofit_version" implementation libs.squareup.retrofit
implementation "com.squareup.retrofit2:converter-moshi:$retrofit_version" implementation libs.squareup.retrofitMoshi
implementation(platform("com.squareup.okhttp3:okhttp-bom:4.9.1")) implementation(platform("com.squareup.okhttp3:okhttp-bom:4.9.1"))
implementation 'com.squareup.okhttp3:okhttp' implementation 'com.squareup.okhttp3:okhttp'
implementation 'com.squareup.okhttp3:logging-interceptor' implementation 'com.squareup.okhttp3:logging-interceptor'
implementation 'com.squareup.okhttp3:okhttp-urlconnection' implementation 'com.squareup.okhttp3:okhttp-urlconnection'
implementation "com.squareup.moshi:moshi-adapters:$moshi_version" implementation libs.squareup.moshi
kapt "com.squareup.moshi:moshi-kotlin-codegen:$moshi_version" kapt libs.squareup.moshiKotlin
implementation "ru.noties.markwon:core:$markwon_version" implementation libs.markwon.core
// Image // Image
implementation 'androidx.exifinterface:exifinterface:1.3.3' implementation libs.androidx.exifinterface
// Database // Database
implementation 'com.github.Zhuinden:realm-monarchy:0.7.1' implementation 'com.github.Zhuinden:realm-monarchy:0.7.1'
kapt 'dk.ilios:realmfieldnameshelper:2.0.0' kapt 'dk.ilios:realmfieldnameshelper:2.0.0'
// Work // Work
implementation "androidx.work:work-runtime-ktx:$work_version" implementation libs.androidx.work
// FP // FP
implementation "io.arrow-kt:arrow-core:$arrow_version" implementation libs.arrow.core
implementation "io.arrow-kt:arrow-instances-core:$arrow_version" implementation libs.arrow.instances
// olm lib is now hosted by jitpack: https://jitpack.io/#org.matrix.gitlab.matrix-org/olm // olm lib is now hosted by jitpack: https://jitpack.io/#org.matrix.gitlab.matrix-org/olm
implementation 'org.matrix.gitlab.matrix-org:olm:3.2.4' implementation 'org.matrix.gitlab.matrix-org:olm:3.2.4'
// DI // DI
implementation "com.google.dagger:dagger:$daggerVersion" implementation libs.dagger.dagger
kapt "com.google.dagger:dagger-compiler:$daggerVersion" kapt libs.dagger.daggerCompiler
// Logging // Logging
implementation 'com.jakewharton.timber:timber:5.0.1' implementation libs.jakewharton.timber
implementation 'com.facebook.stetho:stetho-okhttp3:1.6.0' implementation 'com.facebook.stetho:stetho-okhttp3:1.6.0'
// Video compression // Video compression
@ -164,28 +156,28 @@ dependencies {
// Phone number https://github.com/google/libphonenumber // Phone number https://github.com/google/libphonenumber
implementation 'com.googlecode.libphonenumber:libphonenumber:8.12.32' implementation 'com.googlecode.libphonenumber:libphonenumber:8.12.32'
testImplementation 'junit:junit:4.13.2' testImplementation libs.tests.junit
testImplementation 'org.robolectric:robolectric:4.6.1' testImplementation 'org.robolectric:robolectric:4.6.1'
//testImplementation 'org.robolectric:shadows-support-v4:3.0' //testImplementation 'org.robolectric:shadows-support-v4:3.0'
// Note: version sticks to 1.9.2 due to https://github.com/mockk/mockk/issues/281 // Note: version sticks to 1.9.2 due to https://github.com/mockk/mockk/issues/281
testImplementation 'io.mockk:mockk:1.12.0' testImplementation libs.mockk.mockk
testImplementation 'org.amshove.kluent:kluent-android:1.68' testImplementation libs.tests.kluent
testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutines_version" implementation libs.jetbrains.coroutinesAndroid
// Plant Timber tree for test // Plant Timber tree for test
testImplementation 'net.lachlanmckee:timber-junit-rule:1.0.1' testImplementation 'net.lachlanmckee:timber-junit-rule:1.0.1'
kaptAndroidTest "com.google.dagger:dagger-compiler:$daggerVersion" kaptAndroidTest libs.dagger.daggerCompiler
androidTestImplementation 'androidx.test:core:1.4.0' androidTestImplementation libs.androidx.testCore
androidTestImplementation 'androidx.test:runner:1.4.0' androidTestImplementation libs.androidx.testRunner
androidTestImplementation 'androidx.test:rules:1.4.0' androidTestImplementation libs.androidx.testRules
androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation libs.androidx.junit
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' androidTestImplementation libs.androidx.espressoCore
androidTestImplementation 'org.amshove.kluent:kluent-android:1.68' androidTestImplementation libs.tests.kluent
androidTestImplementation 'io.mockk:mockk-android:1.12.0' androidTestImplementation libs.mockk.mockkAndroid
androidTestImplementation "androidx.arch.core:core-testing:$arch_version" androidTestImplementation libs.androidx.coreTesting
androidTestImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutines_version" androidTestImplementation libs.jetbrains.coroutinesAndroid
// Plant Timber tree for test // Plant Timber tree for test
androidTestImplementation 'net.lachlanmckee:timber-junit-rule:1.0.1' androidTestImplementation libs.tests.timberJunitRule
androidTestUtil 'androidx.test:orchestrator:1.4.0' androidTestUtil 'androidx.test:orchestrator:1.4.0'
} }

View file

@ -19,12 +19,11 @@ apply plugin: 'kotlin-android'
apply plugin: 'kotlin-parcelize' apply plugin: 'kotlin-parcelize'
android { android {
compileSdk 30 compileSdk versions.compileSdk
defaultConfig { defaultConfig {
minSdk 19 minSdk versions.minSdk
targetSdk 30 targetSdk versions.targetSdk
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles 'consumer-rules.pro' consumerProguardFiles 'consumer-rules.pro'
} }
@ -39,11 +38,11 @@ android {
} }
dependencies { dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation libs.jetbrains.kotlinStdlibJdk7
implementation 'androidx.appcompat:appcompat:1.3.1' implementation libs.androidx.appCompat
implementation "androidx.fragment:fragment-ktx:1.3.6" implementation libs.androidx.fragmentKtx
implementation 'androidx.exifinterface:exifinterface:1.3.3' implementation libs.androidx.exifinterface
// Log // Log
implementation 'com.jakewharton.timber:timber:5.0.1' implementation libs.jakewharton.timber
} }

View file

@ -102,17 +102,20 @@ ext.abiVersionCodes = ["armeabi-v7a": 1, "arm64-v8a": 2, "x86": 3, "x86_64": 4].
def buildNumber = System.env.BUILDKITE_BUILD_NUMBER as Integer ?: 0 def buildNumber = System.env.BUILDKITE_BUILD_NUMBER as Integer ?: 0
android { android {
compileSdk 30
// Due to a bug introduced in Android gradle plugin 3.6.0, we have to specify the ndk version to use // Due to a bug introduced in Android gradle plugin 3.6.0, we have to specify the ndk version to use
// Ref: https://issuetracker.google.com/issues/144111441 // Ref: https://issuetracker.google.com/issues/144111441
ndkVersion "21.3.6528147" ndkVersion "21.3.6528147"
compileSdk versions.compileSdk
defaultConfig { defaultConfig {
applicationId "im.vector.app" applicationId "im.vector.app"
// Set to API 21: see #405 // Set to API 21: see #405
minSdk 21 minSdk versions.minSdk
targetSdk 30 targetSdk versions.targetSdk
multiDexEnabled true multiDexEnabled true
renderscriptTargetApi 24 renderscriptTargetApi 24
@ -289,8 +292,8 @@ android {
} }
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_11 sourceCompatibility versions.sourceCompat
targetCompatibility JavaVersion.VERSION_11 targetCompatibility versions.targetCompat
} }
kotlinOptions { kotlinOptions {
@ -313,26 +316,6 @@ android {
dependencies { dependencies {
def epoxy_version = '4.6.2'
def fragment_version = '1.3.6'
def arrow_version = "0.8.2"
def markwon_version = '4.1.2'
def big_image_viewer_version = '1.8.1'
def glide_version = '4.12.0'
def moshi_version = '1.12.0'
def daggerVersion = '2.38.1'
def autofill_version = "1.1.0"
def work_version = '2.5.0'
def arch_version = '2.1.0'
def lifecycle_version = '2.2.0'
def rxbinding_version = '3.1.0'
def jjwt_version = '0.11.2'
// Tests
def kluent_version = '1.68'
def androidxTest_version = '1.4.0'
def espresso_version = '3.4.0'
implementation project(":matrix-sdk-android") implementation project(":matrix-sdk-android")
implementation project(":matrix-sdk-android-rx") implementation project(":matrix-sdk-android-rx")
implementation project(":diff-match-patch") implementation project(":diff-match-patch")
@ -341,29 +324,30 @@ dependencies {
implementation project(":library:ui-styles") implementation project(":library:ui-styles")
implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.multidex:multidex:2.0.1'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation libs.jetbrains.kotlinStdlibJdk7
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_version" implementation libs.jetbrains.coroutinesCore
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutines_version" implementation libs.jetbrains.coroutinesAndroid
implementation "androidx.recyclerview:recyclerview:1.2.1" implementation libs.androidx.recyclerview
implementation 'androidx.appcompat:appcompat:1.3.1' implementation libs.androidx.appCompat
implementation "androidx.fragment:fragment-ktx:$fragment_version" implementation libs.androidx.fragmentKtx
implementation 'androidx.constraintlayout:constraintlayout:2.1.0' implementation libs.androidx.constraintLayout
implementation "androidx.sharetarget:sharetarget:1.1.0" implementation "androidx.sharetarget:sharetarget:1.1.0"
implementation 'androidx.core:core-ktx:1.6.0' implementation libs.androidx.core
implementation "androidx.media:media:1.4.1" implementation "androidx.media:media:1.4.1"
implementation "androidx.transition:transition:1.4.1" implementation "androidx.transition:transition:1.4.1"
implementation "org.threeten:threetenbp:1.4.0:no-tzdb" implementation "org.threeten:threetenbp:1.4.0:no-tzdb"
implementation "com.gabrielittner.threetenbp:lazythreetenbp:0.9.0" implementation "com.gabrielittner.threetenbp:lazythreetenbp:0.9.0"
implementation "com.squareup.moshi:moshi-adapters:$moshi_version" implementation libs.squareup.moshi
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version" kapt libs.squareup.moshiKotlin
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.3.1" implementation libs.androidx.lifecycleExtensions
kapt "com.squareup.moshi:moshi-kotlin-codegen:$moshi_version" implementation libs.androidx.lifecycleLivedata
// Log // Log
implementation 'com.jakewharton.timber:timber:5.0.1' implementation libs.jakewharton.timber
// Debug // Debug
implementation 'com.facebook.stetho:stetho:1.6.0' implementation 'com.facebook.stetho:stetho:1.6.0'
@ -372,42 +356,42 @@ dependencies {
implementation 'com.googlecode.libphonenumber:libphonenumber:8.12.32' implementation 'com.googlecode.libphonenumber:libphonenumber:8.12.32'
// rx // rx
implementation 'io.reactivex.rxjava2:rxkotlin:2.4.0' implementation libs.rx.rxKotlin
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1' implementation libs.rx.rxAndroid
implementation 'com.jakewharton.rxrelay2:rxrelay:2.1.1' implementation 'com.jakewharton.rxrelay2:rxrelay:2.1.1'
// RXBinding // RXBinding
implementation "com.jakewharton.rxbinding3:rxbinding:$rxbinding_version" implementation libs.jakewharton.rxbinding
implementation "com.jakewharton.rxbinding3:rxbinding-appcompat:$rxbinding_version" implementation libs.jakewharton.rxbindingAppcompat
implementation "com.jakewharton.rxbinding3:rxbinding-material:$rxbinding_version" implementation libs.jakewharton.rxbindingMaterial
implementation("com.airbnb.android:epoxy:$epoxy_version") implementation libs.airbnb.epoxy
implementation "com.airbnb.android:epoxy-glide-preloading:$epoxy_version" implementation libs.airbnb.epoxyGlide
kapt "com.airbnb.android:epoxy-processor:$epoxy_version" kapt libs.airbnb.epoxyProcessor
implementation "com.airbnb.android:epoxy-paging:$epoxy_version" implementation libs.airbnb.epoxyPaging
implementation 'com.airbnb.android:mvrx:1.5.1' implementation libs.airbnb.mvrx
// Work // Work
implementation "androidx.work:work-runtime-ktx:$work_version" implementation libs.androidx.work
// Paging // Paging
implementation "androidx.paging:paging-runtime-ktx:2.1.2" implementation libs.androidx.pagingRuntimeKtx
// Functional Programming // Functional Programming
implementation "io.arrow-kt:arrow-core:$arrow_version" implementation libs.arrow.core
// Pref // Pref
implementation 'androidx.preference:preference-ktx:1.1.1' implementation libs.androidx.preferenceKtx
// UI // UI
implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1' implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
implementation 'com.google.android.material:material:1.4.0' implementation libs.google.material
implementation 'me.gujun.android:span:1.7' implementation 'me.gujun.android:span:1.7'
implementation "io.noties.markwon:core:$markwon_version" implementation libs.markwon.core
implementation "io.noties.markwon:html:$markwon_version" implementation libs.markwon.html
implementation 'com.googlecode.htmlcompressor:htmlcompressor:1.5.2' implementation 'com.googlecode.htmlcompressor:htmlcompressor:1.5.2'
implementation 'me.saket:better-link-movement-method:2.2.0' implementation 'me.saket:better-link-movement-method:2.2.0'
implementation 'com.google.android:flexbox:2.0.1' implementation 'com.google.android:flexbox:2.0.1'
implementation "androidx.autofill:autofill:$autofill_version" implementation libs.androidx.autoFill
implementation 'jp.wasabeef:glide-transformations:4.3.0' implementation 'jp.wasabeef:glide-transformations:4.3.0'
implementation 'com.github.vector-im:PFLockScreen-Android:1.0.0-beta12' implementation 'com.github.vector-im:PFLockScreen-Android:1.0.0-beta12'
implementation 'com.github.hyuwah:DraggableView:1.0.0' implementation 'com.github.hyuwah:DraggableView:1.0.0'
@ -431,16 +415,16 @@ dependencies {
implementation 'com.squareup:seismic:1.0.2' implementation 'com.squareup:seismic:1.0.2'
// Image Loading // Image Loading
implementation "com.github.piasy:BigImageViewer:$big_image_viewer_version" implementation libs.github.bigImageViewer
implementation "com.github.piasy:GlideImageLoader:$big_image_viewer_version" implementation libs.github.glideImageLoader
implementation "com.github.piasy:ProgressPieIndicator:$big_image_viewer_version" implementation libs.github.progressPieIndicator
implementation "com.github.piasy:GlideImageViewFactory:$big_image_viewer_version" implementation libs.github.glideImageViewFactory
// implementation 'com.github.MikeOrtiz:TouchImageView:3.0.2' // implementation 'com.github.MikeOrtiz:TouchImageView:3.0.2'
implementation 'com.github.chrisbanes:PhotoView:2.3.0' implementation 'com.github.chrisbanes:PhotoView:2.3.0'
implementation "com.github.bumptech.glide:glide:$glide_version" implementation libs.github.glide
kapt "com.github.bumptech.glide:compiler:$glide_version" kapt libs.github.glideCompiler
implementation 'com.danikula:videocache:2.7.1' implementation 'com.danikula:videocache:2.7.1'
implementation 'com.github.yalantis:ucrop:2.2.7' implementation 'com.github.yalantis:ucrop:2.2.7'
@ -451,8 +435,8 @@ dependencies {
implementation 'nl.dionsegijn:konfetti:1.3.2' implementation 'nl.dionsegijn:konfetti:1.3.2'
implementation 'com.github.jetradarmobile:android-snowfall:1.2.1' implementation 'com.github.jetradarmobile:android-snowfall:1.2.1'
// DI // DI
implementation "com.google.dagger:dagger:$daggerVersion" implementation libs.dagger.dagger
kapt "com.google.dagger:dagger-compiler:$daggerVersion" kapt libs.dagger.daggerCompiler
// gplay flavor only // gplay flavor only
gplayImplementation('com.google.firebase:firebase-messaging:22.0.0') { gplayImplementation('com.google.firebase:firebase-messaging:22.0.0') {
@ -492,34 +476,34 @@ dependencies {
implementation 'im.dlg:android-dialer:1.2.5' implementation 'im.dlg:android-dialer:1.2.5'
// JWT // JWT
api "io.jsonwebtoken:jjwt-api:$jjwt_version" api libs.jsonwebtoken.jjwtApi
runtimeOnly "io.jsonwebtoken:jjwt-impl:$jjwt_version" runtimeOnly libs.jsonwebtoken.jjwtImpl
runtimeOnly("io.jsonwebtoken:jjwt-orgjson:$jjwt_version") { runtimeOnly(libs.jsonwebtoken.jjwtOrgjson) {
exclude group: 'org.json', module: 'json' //provided by Android natively exclude group: 'org.json', module: 'json' //provided by Android natively
} }
implementation 'commons-codec:commons-codec:1.15' implementation 'commons-codec:commons-codec:1.15'
// TESTS // TESTS
testImplementation 'junit:junit:4.13.2' testImplementation libs.tests.junit
testImplementation "org.amshove.kluent:kluent-android:$kluent_version" testImplementation libs.tests.kluent
// Plant Timber tree for test // Plant Timber tree for test
testImplementation 'net.lachlanmckee:timber-junit-rule:1.0.1' testImplementation libs.tests.timberJunitRule
// Activate when you want to check for leaks, from time to time. // Activate when you want to check for leaks, from time to time.
//debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.3' //debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.3'
androidTestImplementation "androidx.test:core:$androidxTest_version" androidTestImplementation libs.androidx.testCore
androidTestImplementation "androidx.test:runner:$androidxTest_version" androidTestImplementation libs.androidx.testRunner
androidTestImplementation "androidx.test:rules:$androidxTest_version" androidTestImplementation libs.androidx.testRules
androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation libs.androidx.junit
androidTestImplementation "androidx.test.espresso:espresso-core:$espresso_version" androidTestImplementation libs.androidx.espressoCore
androidTestImplementation "androidx.test.espresso:espresso-contrib:$espresso_version" androidTestImplementation libs.androidx.espressoContrib
androidTestImplementation "androidx.test.espresso:espresso-intents:$espresso_version" androidTestImplementation libs.androidx.espressoIntents
androidTestImplementation "org.amshove.kluent:kluent-android:$kluent_version" androidTestImplementation libs.tests.kluent
androidTestImplementation "androidx.arch.core:core-testing:$arch_version" androidTestImplementation libs.androidx.coreTesting
// Plant Timber tree for test // Plant Timber tree for test
androidTestImplementation 'net.lachlanmckee:timber-junit-rule:1.0.1' androidTestImplementation libs.tests.timberJunitRule
// "The one who serves a great Espresso" // "The one who serves a great Espresso"
androidTestImplementation('com.adevinta.android:barista:4.1.0') { androidTestImplementation('com.adevinta.android:barista:4.1.0') {
exclude group: 'org.jetbrains.kotlin' exclude group: 'org.jetbrains.kotlin'