2019-08-07 12:46:38 +03:00
|
|
|
import com.android.build.OutputFile
|
|
|
|
|
2018-10-03 18:56:33 +03:00
|
|
|
apply plugin: 'com.android.application'
|
2019-06-18 18:42:07 +03:00
|
|
|
apply plugin: 'com.google.android.gms.oss-licenses-plugin'
|
2018-10-03 18:56:33 +03:00
|
|
|
apply plugin: 'kotlin-android'
|
|
|
|
apply plugin: 'kotlin-android-extensions'
|
2018-10-19 15:26:38 +03:00
|
|
|
apply plugin: 'kotlin-kapt'
|
|
|
|
|
|
|
|
kapt {
|
|
|
|
correctErrorTypes = true
|
|
|
|
}
|
2018-10-03 18:56:33 +03:00
|
|
|
|
2018-12-29 19:54:03 +03:00
|
|
|
androidExtensions {
|
|
|
|
experimental = true
|
|
|
|
}
|
|
|
|
|
2020-06-18 16:00:12 +03:00
|
|
|
// Note: 2 digits max for each value
|
2020-06-30 14:34:02 +03:00
|
|
|
ext.versionMajor = 1
|
|
|
|
ext.versionMinor = 0
|
|
|
|
ext.versionPatch = 0
|
2019-01-30 14:55:35 +03:00
|
|
|
|
2019-03-18 20:53:14 +03:00
|
|
|
static def getGitTimestamp() {
|
2019-03-13 15:10:36 +03:00
|
|
|
def cmd = 'git show -s --format=%ct'
|
|
|
|
return cmd.execute().text.trim() as Long
|
|
|
|
}
|
|
|
|
|
2019-03-13 19:00:30 +03:00
|
|
|
static def generateVersionCodeFromTimestamp() {
|
2020-01-10 19:29:34 +03:00
|
|
|
// It's unix timestamp, minus timestamp of October 3rd 2018 (first commit date) divided by 100: It's incremented by one every 100 seconds.
|
2020-01-13 17:12:39 +03:00
|
|
|
// plus 20_000_000 for compatibility reason with the previous way the Version Code was computed
|
2020-01-10 19:29:34 +03:00
|
|
|
// Note that the result will be multiplied by 10 when adding the digit for the arch
|
2020-01-20 17:58:12 +03:00
|
|
|
return ((getGitTimestamp() - 1_538_524_800) / 100).toInteger() + 20_000_000
|
2019-01-30 14:55:35 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
def generateVersionCodeFromVersionName() {
|
2020-01-13 17:12:39 +03:00
|
|
|
// plus 4_000_000 for compatibility reason with the previous way the Version Code was computed
|
2020-01-10 19:29:34 +03:00
|
|
|
// Note that the result will be multiplied by 10 when adding the digit for the arch
|
|
|
|
return (versionMajor * 1_00_00 + versionMinor * 1_00 + versionPatch) + 4_000_000
|
2019-08-14 11:43:47 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
def getVersionCode() {
|
|
|
|
if (gitBranchName() == "develop") {
|
|
|
|
return generateVersionCodeFromTimestamp()
|
|
|
|
} else {
|
|
|
|
return generateVersionCodeFromVersionName()
|
|
|
|
}
|
2019-01-30 14:55:35 +03:00
|
|
|
}
|
|
|
|
|
2019-03-13 19:00:30 +03:00
|
|
|
static def gitRevision() {
|
2020-01-17 18:06:58 +03:00
|
|
|
def cmd = "git rev-parse --short=8 HEAD"
|
2019-03-13 19:00:30 +03:00
|
|
|
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() {
|
2019-09-12 17:05:04 +03:00
|
|
|
def fromEnv = System.env.BUILDKITE_BRANCH as String ?: ""
|
|
|
|
|
|
|
|
if (!fromEnv.isEmpty()) {
|
|
|
|
return fromEnv
|
|
|
|
} else {
|
|
|
|
// Note: this command return "HEAD" on Buildkite, so use the system env 'BUILDKITE_BRANCH' content first
|
|
|
|
def cmd = "git rev-parse --abbrev-ref HEAD"
|
|
|
|
return cmd.execute().text.trim()
|
|
|
|
}
|
2019-03-13 19:00:30 +03:00
|
|
|
}
|
|
|
|
|
2020-01-20 17:58:12 +03:00
|
|
|
// For Google Play build, build on any other branch than master will have a "-dev" suffix
|
|
|
|
static def getGplayVersionSuffix() {
|
2019-08-08 17:57:03 +03:00
|
|
|
if (gitBranchName() == "master") {
|
|
|
|
return ""
|
|
|
|
} else {
|
2020-07-13 22:50:26 +03:00
|
|
|
return "-dev"
|
2019-08-08 17:57:03 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-01-20 17:58:12 +03:00
|
|
|
static def gitTag() {
|
|
|
|
def cmd = "git describe --exact-match --tags"
|
|
|
|
return cmd.execute().text.trim()
|
|
|
|
}
|
|
|
|
|
|
|
|
// For F-Droid build, build on a not tagged commit will have a "-dev" suffix
|
|
|
|
static def getFdroidVersionSuffix() {
|
|
|
|
if (gitTag() == "") {
|
|
|
|
return "-dev"
|
|
|
|
} else {
|
|
|
|
return ""
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-02-11 15:47:47 +03:00
|
|
|
project.android.buildTypes.all { buildType ->
|
|
|
|
buildType.javaCompileOptions.annotationProcessorOptions.arguments =
|
|
|
|
[
|
2019-03-12 10:29:49 +03:00
|
|
|
validateEpoxyModelUsage: String.valueOf(buildType.name == 'debug')
|
2019-02-11 15:47:47 +03:00
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2020-01-10 19:29:34 +03:00
|
|
|
// map for the version codes last digit
|
|
|
|
// x86 must have greater values than arm
|
2019-08-07 12:46:38 +03:00
|
|
|
// 64 bits have greater value than 32 bits
|
|
|
|
ext.abiVersionCodes = ["armeabi-v7a": 1, "arm64-v8a": 2, "x86": 3, "x86_64": 4].withDefault { 0 }
|
|
|
|
|
2019-09-12 17:05:04 +03:00
|
|
|
def buildNumber = System.env.BUILDKITE_BUILD_NUMBER as Integer ?: 0
|
2019-03-13 19:00:30 +03:00
|
|
|
|
2018-10-03 18:56:33 +03:00
|
|
|
android {
|
2020-03-26 12:06:50 +03:00
|
|
|
compileSdkVersion 29
|
2020-07-03 00:39:42 +03:00
|
|
|
|
|
|
|
// 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
|
|
|
|
ndkVersion "21.3.6528147"
|
|
|
|
|
2018-10-03 18:56:33 +03:00
|
|
|
defaultConfig {
|
2020-06-18 17:11:07 +03:00
|
|
|
applicationId "im.vector.app"
|
2020-06-18 15:18:40 +03:00
|
|
|
// Set to API 21: see #405
|
|
|
|
minSdkVersion 21
|
2020-03-26 12:06:50 +03:00
|
|
|
targetSdkVersion 29
|
2019-01-24 18:30:05 +03:00
|
|
|
multiDexEnabled true
|
2019-07-11 17:49:06 +03:00
|
|
|
|
2019-08-14 11:43:47 +03:00
|
|
|
// `develop` branch will have version code from timestamp, to ensure each build from CI has a incremented versionCode.
|
|
|
|
// Other branches (master, features, etc.) will have version code based on application version.
|
|
|
|
versionCode project.getVersionCode()
|
2019-07-11 17:49:06 +03:00
|
|
|
|
2019-06-21 12:13:16 +03:00
|
|
|
buildConfigField "String", "GIT_REVISION", "\"${gitRevision()}\""
|
2019-03-13 19:00:30 +03:00
|
|
|
resValue "string", "git_revision", "\"${gitRevision()}\""
|
2019-06-21 12:13:16 +03:00
|
|
|
|
|
|
|
buildConfigField "String", "GIT_REVISION_DATE", "\"${gitRevisionDate()}\""
|
2019-03-13 19:00:30 +03:00
|
|
|
resValue "string", "git_revision_date", "\"${gitRevisionDate()}\""
|
2019-06-21 12:13:16 +03:00
|
|
|
|
|
|
|
buildConfigField "String", "GIT_BRANCH_NAME", "\"${gitBranchName()}\""
|
2019-03-13 19:00:30 +03:00
|
|
|
resValue "string", "git_branch_name", "\"${gitBranchName()}\""
|
2019-06-21 12:13:16 +03:00
|
|
|
|
|
|
|
buildConfigField "String", "BUILD_NUMBER", "\"${buildNumber}\""
|
2019-03-13 19:00:30 +03:00
|
|
|
resValue "string", "build_number", "\"${buildNumber}\""
|
|
|
|
|
2019-01-16 21:25:43 +03:00
|
|
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
2019-08-07 12:46:38 +03:00
|
|
|
|
|
|
|
// Keep abiFilter for the universalApk
|
|
|
|
ndk {
|
|
|
|
abiFilters "armeabi-v7a", "x86", 'arm64-v8a', 'x86_64'
|
|
|
|
}
|
|
|
|
|
|
|
|
// Ref: https://developer.android.com/studio/build/configure-apk-splits.html
|
|
|
|
splits {
|
|
|
|
// Configures multiple APKs based on ABI.
|
|
|
|
abi {
|
|
|
|
// Enables building multiple APKs per ABI.
|
|
|
|
enable true
|
|
|
|
|
|
|
|
// By default all ABIs are included, so use reset() and include to specify that we only
|
|
|
|
// want APKs for armeabi-v7a, x86, arm64-v8a and x86_64.
|
|
|
|
|
|
|
|
// Resets the list of ABIs that Gradle should create APKs for to none.
|
|
|
|
reset()
|
|
|
|
|
|
|
|
// Specifies a list of ABIs that Gradle should create APKs for.
|
|
|
|
include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
|
|
|
|
|
|
|
|
// Generate a universal APK that includes all ABIs, so user who install from CI tool can use this one by default.
|
|
|
|
universalApk true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-08-07 17:51:39 +03:00
|
|
|
applicationVariants.all { variant ->
|
2019-08-07 12:46:38 +03:00
|
|
|
variant.outputs.each { output ->
|
|
|
|
def baseAbiVersionCode = project.ext.abiVersionCodes.get(output.getFilter(OutputFile.ABI))
|
2019-08-07 17:51:39 +03:00
|
|
|
// Known limitation: it does not modify the value in the BuildConfig.java generated file
|
2020-01-10 19:29:34 +03:00
|
|
|
output.versionCodeOverride = variant.versionCode * 10 + baseAbiVersionCode
|
2019-08-07 12:46:38 +03:00
|
|
|
}
|
|
|
|
}
|
2018-10-03 18:56:33 +03:00
|
|
|
}
|
2019-03-13 19:00:30 +03:00
|
|
|
|
2019-06-07 11:17:14 +03:00
|
|
|
signingConfigs {
|
|
|
|
debug {
|
|
|
|
keyAlias 'androiddebugkey'
|
|
|
|
keyPassword 'android'
|
|
|
|
storeFile file('./signature/debug.keystore')
|
|
|
|
storePassword 'android'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-10-03 18:56:33 +03:00
|
|
|
buildTypes {
|
2019-03-13 17:11:02 +03:00
|
|
|
debug {
|
2019-07-11 18:59:07 +03:00
|
|
|
applicationIdSuffix ".debug"
|
2020-06-30 14:52:50 +03:00
|
|
|
resValue "string", "app_name", "Element dbg"
|
2019-07-11 18:59:07 +03:00
|
|
|
|
2019-03-13 17:11:02 +03:00
|
|
|
resValue "bool", "debug_mode", "true"
|
2019-04-02 19:08:43 +03:00
|
|
|
buildConfigField "boolean", "LOW_PRIVACY_LOG_ENABLE", "false"
|
2019-06-07 11:17:14 +03:00
|
|
|
|
|
|
|
signingConfig signingConfigs.debug
|
2019-03-13 17:11:02 +03:00
|
|
|
}
|
|
|
|
|
2018-10-03 18:56:33 +03:00
|
|
|
release {
|
2020-06-30 14:52:50 +03:00
|
|
|
resValue "string", "app_name", "Element (Riot.im)"
|
2019-07-11 18:59:07 +03:00
|
|
|
|
2019-03-13 17:11:02 +03:00
|
|
|
resValue "bool", "debug_mode", "false"
|
2019-04-02 19:08:43 +03:00
|
|
|
buildConfigField "boolean", "LOW_PRIVACY_LOG_ENABLE", "false"
|
2019-03-13 17:11:02 +03:00
|
|
|
|
2020-06-11 20:37:20 +03:00
|
|
|
postprocessing {
|
|
|
|
removeUnusedCode true
|
|
|
|
removeUnusedResources true
|
2020-06-16 12:18:33 +03:00
|
|
|
// We do not activate obfuscation as it makes it hard then to read crash reports, and it's a bit useless on an open source project :)
|
2020-06-11 20:37:20 +03:00
|
|
|
obfuscate false
|
|
|
|
optimizeCode true
|
|
|
|
proguardFiles 'proguard-rules.pro'
|
|
|
|
}
|
2018-10-03 18:56:33 +03:00
|
|
|
}
|
|
|
|
}
|
2018-12-13 13:00:50 +03:00
|
|
|
|
2019-03-13 19:00:30 +03:00
|
|
|
flavorDimensions "store"
|
|
|
|
|
|
|
|
productFlavors {
|
2019-03-19 16:38:15 +03:00
|
|
|
gplay {
|
2019-03-13 19:00:30 +03:00
|
|
|
dimension "store"
|
|
|
|
|
2020-01-20 17:58:12 +03:00
|
|
|
versionName "${versionMajor}.${versionMinor}.${versionPatch}${getGplayVersionSuffix()}"
|
|
|
|
|
2020-01-08 17:57:35 +03:00
|
|
|
resValue "bool", "isGplay", "true"
|
2019-03-13 19:00:30 +03:00
|
|
|
buildConfigField "boolean", "ALLOW_FCM_USE", "true"
|
|
|
|
buildConfigField "String", "SHORT_FLAVOR_DESCRIPTION", "\"G\""
|
|
|
|
buildConfigField "String", "FLAVOR_DESCRIPTION", "\"GooglePlay\""
|
|
|
|
}
|
|
|
|
|
2019-03-19 16:38:15 +03:00
|
|
|
fdroid {
|
2019-03-13 19:00:30 +03:00
|
|
|
dimension "store"
|
|
|
|
|
2020-01-20 17:58:12 +03:00
|
|
|
versionName "${versionMajor}.${versionMinor}.${versionPatch}${getFdroidVersionSuffix()}"
|
|
|
|
|
2020-01-08 17:57:35 +03:00
|
|
|
resValue "bool", "isGplay", "false"
|
2019-03-13 19:00:30 +03:00
|
|
|
buildConfigField "boolean", "ALLOW_FCM_USE", "false"
|
|
|
|
buildConfigField "String", "SHORT_FLAVOR_DESCRIPTION", "\"F\""
|
|
|
|
buildConfigField "String", "FLAVOR_DESCRIPTION", "\"FDroid\""
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
lintOptions {
|
2019-04-03 13:04:24 +03:00
|
|
|
lintConfig file("lint.xml")
|
2020-06-26 22:08:41 +03:00
|
|
|
|
2020-07-02 12:29:00 +03:00
|
|
|
abortOnError true
|
2019-03-13 19:00:30 +03:00
|
|
|
}
|
|
|
|
|
2018-12-13 13:00:50 +03:00
|
|
|
compileOptions {
|
|
|
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
|
|
}
|
2019-09-27 12:42:46 +03:00
|
|
|
|
|
|
|
kotlinOptions {
|
|
|
|
jvmTarget = "1.8"
|
|
|
|
}
|
2020-04-28 15:15:23 +03:00
|
|
|
|
|
|
|
sourceSets {
|
|
|
|
androidTest {
|
|
|
|
java.srcDirs += "src/sharedTest/java"
|
|
|
|
}
|
|
|
|
test {
|
|
|
|
java.srcDirs += "src/sharedTest/java"
|
|
|
|
}
|
|
|
|
}
|
2018-10-03 18:56:33 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
2018-10-19 15:26:38 +03:00
|
|
|
|
2020-06-05 21:14:36 +03:00
|
|
|
def epoxy_version = '3.11.0'
|
2020-07-06 16:59:49 +03:00
|
|
|
def fragment_version = '1.2.5'
|
2019-01-16 21:25:43 +03:00
|
|
|
def arrow_version = "0.8.2"
|
2019-10-07 15:13:30 +03:00
|
|
|
def coroutines_version = "1.3.2"
|
2019-10-29 21:08:48 +03:00
|
|
|
def markwon_version = '4.1.2'
|
2019-11-28 11:39:04 +03:00
|
|
|
def big_image_viewer_version = '1.6.2'
|
2020-07-06 16:59:49 +03:00
|
|
|
def glide_version = '4.11.0'
|
2019-05-09 19:26:32 +03:00
|
|
|
def moshi_version = '1.8.0'
|
2020-01-29 23:14:38 +03:00
|
|
|
def daggerVersion = '2.25.4'
|
2019-12-30 12:46:25 +03:00
|
|
|
def autofill_version = "1.0.0"
|
2020-07-06 16:59:49 +03:00
|
|
|
def work_version = '2.3.4'
|
2020-04-28 15:15:23 +03:00
|
|
|
def arch_version = '2.1.0'
|
2020-05-20 15:27:10 +03:00
|
|
|
def lifecycle_version = '2.2.0'
|
2018-10-19 15:26:38 +03:00
|
|
|
|
2018-10-04 16:19:03 +03:00
|
|
|
implementation project(":matrix-sdk-android")
|
2018-10-28 21:18:14 +03:00
|
|
|
implementation project(":matrix-sdk-android-rx")
|
2019-12-11 12:44:51 +03:00
|
|
|
implementation project(":diff-match-patch")
|
2020-03-20 12:12:59 +03:00
|
|
|
implementation project(":multipicker")
|
2020-07-05 22:47:38 +03:00
|
|
|
implementation project(":attachment-viewer")
|
2019-01-24 18:30:05 +03:00
|
|
|
implementation 'com.android.support:multidex:1.0.3'
|
2018-10-03 18:56:33 +03:00
|
|
|
|
|
|
|
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
2019-02-27 19:17:47 +03:00
|
|
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version"
|
|
|
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version"
|
2019-01-17 17:04:57 +03:00
|
|
|
|
2020-07-06 16:59:49 +03:00
|
|
|
implementation "androidx.recyclerview:recyclerview:1.2.0-alpha04"
|
2019-09-27 12:42:46 +03:00
|
|
|
implementation 'androidx.appcompat:appcompat:1.1.0'
|
2019-11-04 21:33:56 +03:00
|
|
|
implementation "androidx.fragment:fragment:$fragment_version"
|
|
|
|
implementation "androidx.fragment:fragment-ktx:$fragment_version"
|
2020-07-07 23:14:11 +03:00
|
|
|
// Keep at 2.0.0-beta4 at the moment, as updating is breaking some UI
|
|
|
|
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta4'
|
2020-07-06 16:59:49 +03:00
|
|
|
implementation 'androidx.core:core-ktx:1.3.0'
|
2019-01-24 20:04:55 +03:00
|
|
|
|
2019-10-01 21:11:15 +03:00
|
|
|
implementation "org.threeten:threetenbp:1.4.0:no-tzdb"
|
|
|
|
implementation "com.gabrielittner.threetenbp:lazythreetenbp:0.7.0"
|
|
|
|
|
2019-05-09 19:26:32 +03:00
|
|
|
implementation "com.squareup.moshi:moshi-adapters:$moshi_version"
|
2020-05-20 15:27:10 +03:00
|
|
|
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
|
2019-05-09 19:26:32 +03:00
|
|
|
kapt "com.squareup.moshi:moshi-kotlin-codegen:$moshi_version"
|
2019-03-28 19:28:20 +03:00
|
|
|
|
|
|
|
// Log
|
2018-10-16 16:52:30 +03:00
|
|
|
implementation 'com.jakewharton.timber:timber:4.7.1'
|
2019-03-28 19:28:20 +03:00
|
|
|
|
|
|
|
// Debug
|
2019-09-27 14:49:55 +03:00
|
|
|
implementation 'com.facebook.stetho:stetho:1.5.1'
|
2018-10-16 16:52:30 +03:00
|
|
|
|
2019-11-21 14:11:58 +03:00
|
|
|
// Phone number https://github.com/google/libphonenumber
|
|
|
|
implementation 'com.googlecode.libphonenumber:libphonenumber:8.10.23'
|
|
|
|
|
2018-12-29 21:57:38 +03:00
|
|
|
// rx
|
|
|
|
implementation 'io.reactivex.rxjava2:rxkotlin:2.3.0'
|
2019-09-27 12:42:46 +03:00
|
|
|
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
|
2019-09-27 14:49:55 +03:00
|
|
|
implementation 'com.jakewharton.rxrelay2:rxrelay:2.1.1'
|
2019-07-16 16:01:14 +03:00
|
|
|
// RXBinding
|
2019-09-12 16:14:17 +03:00
|
|
|
implementation 'com.jakewharton.rxbinding3:rxbinding:3.0.0'
|
|
|
|
implementation 'com.jakewharton.rxbinding3:rxbinding-appcompat:3.0.0'
|
|
|
|
implementation 'com.jakewharton.rxbinding3:rxbinding-material:3.0.0'
|
2018-12-29 21:57:38 +03:00
|
|
|
|
2018-10-19 15:26:38 +03:00
|
|
|
implementation("com.airbnb.android:epoxy:$epoxy_version")
|
|
|
|
kapt "com.airbnb.android:epoxy-processor:$epoxy_version"
|
2019-07-30 15:51:14 +03:00
|
|
|
implementation "com.airbnb.android:epoxy-paging:$epoxy_version"
|
2019-11-12 17:11:52 +03:00
|
|
|
implementation 'com.airbnb.android:mvrx:1.3.0'
|
2018-10-19 16:30:40 +03:00
|
|
|
|
2019-04-02 19:08:43 +03:00
|
|
|
// Work
|
2020-03-06 20:29:15 +03:00
|
|
|
implementation "androidx.work:work-runtime-ktx:$work_version"
|
2019-04-02 19:08:43 +03:00
|
|
|
|
2019-07-30 15:51:14 +03:00
|
|
|
// Paging
|
2020-07-06 16:59:49 +03:00
|
|
|
implementation "androidx.paging:paging-runtime-ktx:2.1.2"
|
2019-07-30 15:51:14 +03:00
|
|
|
|
2019-06-18 19:29:48 +03:00
|
|
|
// Functional Programming
|
2018-12-29 21:57:38 +03:00
|
|
|
implementation "io.arrow-kt:arrow-core:$arrow_version"
|
|
|
|
|
2019-03-28 13:53:28 +03:00
|
|
|
// Pref
|
2020-07-06 16:59:49 +03:00
|
|
|
implementation 'androidx.preference:preference:1.1.1'
|
2019-03-28 13:53:28 +03:00
|
|
|
|
2018-12-29 21:57:38 +03:00
|
|
|
// UI
|
2018-10-29 19:20:08 +03:00
|
|
|
implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
|
2020-07-06 16:59:49 +03:00
|
|
|
implementation 'com.google.android.material:material:1.3.0-alpha01'
|
2019-02-20 13:39:25 +03:00
|
|
|
implementation 'me.gujun.android:span:1.7'
|
2019-10-29 21:08:48 +03:00
|
|
|
implementation "io.noties.markwon:core:$markwon_version"
|
|
|
|
implementation "io.noties.markwon:html:$markwon_version"
|
2019-12-18 12:57:00 +03:00
|
|
|
implementation 'com.googlecode.htmlcompressor:htmlcompressor:1.4'
|
2019-06-03 18:53:04 +03:00
|
|
|
implementation 'me.saket:better-link-movement-method:2.2.0'
|
2019-10-03 20:15:11 +03:00
|
|
|
implementation 'com.google.android:flexbox:1.1.1'
|
2019-11-21 13:02:12 +03:00
|
|
|
implementation "androidx.autofill:autofill:$autofill_version"
|
2019-02-21 21:21:08 +03:00
|
|
|
|
2020-06-05 02:06:52 +03:00
|
|
|
// Custom Tab
|
|
|
|
implementation 'androidx.browser:browser:1.2.0'
|
|
|
|
|
2019-05-16 11:23:57 +03:00
|
|
|
// Passphrase strength helper
|
2019-09-27 14:49:55 +03:00
|
|
|
implementation 'com.nulab-inc:zxcvbn:1.2.7'
|
2019-05-16 11:23:57 +03:00
|
|
|
|
|
|
|
//Alerter
|
2020-03-24 16:56:57 +03:00
|
|
|
implementation 'com.tapadoo.android:alerter:5.1.2'
|
2019-05-16 11:23:57 +03:00
|
|
|
|
2019-04-08 16:51:35 +03:00
|
|
|
implementation 'com.otaliastudios:autocomplete:1.1.0'
|
|
|
|
|
2019-03-28 13:53:28 +03:00
|
|
|
// Butterknife
|
2019-09-27 14:49:55 +03:00
|
|
|
implementation 'com.jakewharton:butterknife:10.2.0'
|
|
|
|
kapt 'com.jakewharton:butterknife-compiler:10.2.0'
|
2019-03-28 13:53:28 +03:00
|
|
|
|
|
|
|
// Shake detection
|
|
|
|
implementation 'com.squareup:seismic:1.0.2'
|
|
|
|
|
2019-03-12 10:29:49 +03:00
|
|
|
// 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"
|
2020-07-05 22:47:38 +03:00
|
|
|
|
|
|
|
// implementation 'com.github.MikeOrtiz:TouchImageView:3.0.2'
|
|
|
|
implementation 'com.github.chrisbanes:PhotoView:2.0.0'
|
|
|
|
|
2019-03-12 10:29:49 +03:00
|
|
|
implementation "com.github.bumptech.glide:glide:$glide_version"
|
|
|
|
kapt "com.github.bumptech.glide:compiler:$glide_version"
|
2019-04-12 14:46:59 +03:00
|
|
|
implementation 'com.danikula:videocache:2.7.1'
|
2020-02-04 18:35:04 +03:00
|
|
|
implementation 'com.github.yalantis:ucrop:2.2.4'
|
2018-10-29 19:20:08 +03:00
|
|
|
|
2019-04-02 19:08:43 +03:00
|
|
|
// Badge for compatibility
|
2019-09-27 14:49:55 +03:00
|
|
|
implementation 'me.leolin:ShortcutBadger:1.1.22@aar'
|
2019-04-02 19:08:43 +03:00
|
|
|
|
2018-12-29 21:57:38 +03:00
|
|
|
// DI
|
2019-06-18 21:00:20 +03:00
|
|
|
implementation "com.google.dagger:dagger:$daggerVersion"
|
|
|
|
kapt "com.google.dagger:dagger-compiler:$daggerVersion"
|
2019-09-27 14:49:55 +03:00
|
|
|
compileOnly 'com.squareup.inject:assisted-inject-annotations-dagger2:0.5.0'
|
|
|
|
kapt 'com.squareup.inject:assisted-inject-processor-dagger2:0.5.0'
|
2018-10-03 18:56:33 +03:00
|
|
|
|
2019-04-02 19:08:43 +03:00
|
|
|
// gplay flavor only
|
2019-09-27 12:42:46 +03:00
|
|
|
// Warning: due to the exclude, Android Studio does not propose to upgrade. Uncomment next line to be proposed to upgrade
|
|
|
|
// implementation 'com.google.firebase:firebase-messaging:20.0.0'
|
2020-07-06 16:59:49 +03:00
|
|
|
gplayImplementation('com.google.firebase:firebase-messaging:20.2.1') {
|
2019-06-27 11:42:22 +03:00
|
|
|
exclude group: 'com.google.firebase', module: 'firebase-core'
|
|
|
|
exclude group: 'com.google.firebase', module: 'firebase-analytics'
|
|
|
|
exclude group: 'com.google.firebase', module: 'firebase-measurement-connector'
|
|
|
|
}
|
2019-04-02 19:08:43 +03:00
|
|
|
|
2020-01-08 17:57:35 +03:00
|
|
|
// OSS License, gplay flavor only
|
|
|
|
gplayImplementation 'com.google.android.gms:play-services-oss-licenses:17.0.0'
|
|
|
|
|
2020-07-06 16:59:49 +03:00
|
|
|
implementation "androidx.emoji:emoji-appcompat:1.1.0"
|
2019-08-18 21:26:53 +03:00
|
|
|
|
2020-04-03 11:15:00 +03:00
|
|
|
implementation 'com.github.BillCarsonFr:JsonViewer:0.5'
|
2020-02-12 18:48:11 +03:00
|
|
|
|
2020-05-05 12:46:21 +03:00
|
|
|
// TODO meant for development purposes only
|
|
|
|
implementation 'org.webrtc:google-webrtc:1.0.+'
|
|
|
|
|
2020-01-22 16:19:04 +03:00
|
|
|
// QR-code
|
2020-02-01 15:52:33 +03:00
|
|
|
// Stick to 3.3.3 because of https://github.com/zxing/zxing/issues/1170
|
|
|
|
implementation 'com.google.zxing:core:3.3.3'
|
2020-01-22 16:19:04 +03:00
|
|
|
implementation 'me.dm7.barcodescanner:zxing:1.9.13'
|
|
|
|
|
2018-12-29 21:57:38 +03:00
|
|
|
// TESTS
|
2018-10-03 18:56:33 +03:00
|
|
|
testImplementation 'junit:junit:4.12'
|
2020-02-07 01:22:07 +03:00
|
|
|
testImplementation 'org.amshove.kluent:kluent-android:1.44'
|
2020-04-28 15:15:23 +03:00
|
|
|
// Plant Timber tree for test
|
|
|
|
testImplementation 'net.lachlanmckee:timber-junit-rule:1.0.1'
|
2020-02-07 01:22:07 +03:00
|
|
|
|
2020-06-11 20:40:46 +03:00
|
|
|
// Activate when you want to check for leaks, from time to time.
|
|
|
|
//debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.3'
|
2020-06-08 20:46:55 +03:00
|
|
|
|
2020-04-28 15:15:23 +03:00
|
|
|
androidTestImplementation 'androidx.test:core:1.2.0'
|
2019-07-02 10:39:45 +03:00
|
|
|
androidTestImplementation 'androidx.test:runner:1.2.0'
|
2020-04-28 15:15:23 +03:00
|
|
|
androidTestImplementation 'androidx.test:rules:1.2.0'
|
|
|
|
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
|
2019-07-02 10:39:45 +03:00
|
|
|
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
|
2020-02-07 01:22:07 +03:00
|
|
|
androidTestImplementation 'org.amshove.kluent:kluent-android:1.44'
|
2020-04-28 15:15:23 +03:00
|
|
|
androidTestImplementation "androidx.arch.core:core-testing:$arch_version"
|
|
|
|
// Plant Timber tree for test
|
|
|
|
androidTestImplementation 'net.lachlanmckee:timber-junit-rule:1.0.1'
|
2018-10-03 18:56:33 +03:00
|
|
|
}
|
2018-10-19 15:26:38 +03:00
|
|
|
|
2019-07-03 19:18:07 +03:00
|
|
|
if (getGradle().getStartParameter().getTaskRequests().toString().contains("Gplay")) {
|
2019-04-02 19:08:43 +03:00
|
|
|
apply plugin: 'com.google.gms.google-services'
|
|
|
|
}
|