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
|
|
|
|
}
|
|
|
|
|
2019-07-11 17:49:06 +03:00
|
|
|
ext.versionMajor = 0
|
2019-07-11 18:44:58 +03:00
|
|
|
ext.versionMinor = 2
|
2019-07-11 17:49:06 +03:00
|
|
|
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() {
|
2019-01-30 14:55:35 +03:00
|
|
|
// It's unix timestamp divided by 10: It's incremented by one every 10 seconds.
|
2019-03-13 15:10:36 +03:00
|
|
|
return (getGitTimestamp() / 10).toInteger()
|
2019-01-30 14:55:35 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
def generateVersionCodeFromVersionName() {
|
|
|
|
return versionMajor * 10000 + versionMinor * 100 + versionPatch
|
|
|
|
}
|
|
|
|
|
2019-03-13 19:00:30 +03:00
|
|
|
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()
|
|
|
|
}
|
|
|
|
|
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
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2019-06-21 12:13:16 +03:00
|
|
|
def buildNumber = System.getenv("BUILDKITE_BUILD_NUMBER") as Integer ?: 0
|
2019-03-13 19:00:30 +03:00
|
|
|
|
2018-10-03 18:56:33 +03:00
|
|
|
android {
|
|
|
|
compileSdkVersion 28
|
|
|
|
defaultConfig {
|
2019-07-02 18:27:08 +03:00
|
|
|
applicationId "im.vector.riotx"
|
2019-06-28 11:06:36 +03:00
|
|
|
// Set to API 19 because motionLayout is min API 18.
|
|
|
|
// In the future we may consider using an alternative of MotionLayout to support API 16. But for security reason, maybe not.
|
|
|
|
minSdkVersion 19
|
2018-10-03 18:56:33 +03:00
|
|
|
targetSdkVersion 28
|
2019-01-24 18:30:05 +03:00
|
|
|
multiDexEnabled true
|
2019-07-11 17:49:06 +03:00
|
|
|
|
|
|
|
// For release, use generateVersionCodeFromVersionName()
|
2019-07-11 18:44:58 +03:00
|
|
|
versionCode generateVersionCodeFromTimestamp()
|
|
|
|
// versionCode generateVersionCodeFromVersionName()
|
2019-07-11 17:49:06 +03:00
|
|
|
|
2019-01-30 14:55:35 +03:00
|
|
|
versionName "${versionMajor}.${versionMinor}.${versionPatch}"
|
2019-03-13 19:00:30 +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"
|
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"
|
|
|
|
resValue "string", "app_name", "RiotX dbg"
|
|
|
|
|
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 {
|
2019-07-11 18:59:07 +03:00
|
|
|
resValue "string", "app_name", "RiotX"
|
|
|
|
|
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
|
|
|
|
2018-10-03 18:56:33 +03:00
|
|
|
minifyEnabled false
|
|
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
|
|
|
}
|
|
|
|
}
|
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"
|
|
|
|
|
|
|
|
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"
|
|
|
|
|
|
|
|
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")
|
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
|
|
|
|
}
|
2018-10-03 18:56:33 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
2018-10-19 15:26:38 +03:00
|
|
|
|
2019-03-19 21:45:32 +03:00
|
|
|
def epoxy_version = "3.3.0"
|
2019-01-16 21:25:43 +03:00
|
|
|
def arrow_version = "0.8.2"
|
2019-02-27 19:17:47 +03:00
|
|
|
def coroutines_version = "1.0.1"
|
2019-06-03 18:53:04 +03:00
|
|
|
def markwon_version = '3.0.0'
|
2019-03-12 10:29:49 +03:00
|
|
|
def big_image_viewer_version = '1.5.6'
|
2019-04-03 23:54:48 +03:00
|
|
|
def glide_version = '4.9.0'
|
2019-05-09 19:26:32 +03:00
|
|
|
def moshi_version = '1.8.0'
|
2019-06-18 21:00:20 +03:00
|
|
|
def daggerVersion = '2.23.1'
|
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-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
|
|
|
|
2019-07-02 10:39:45 +03:00
|
|
|
implementation 'androidx.appcompat:appcompat:1.1.0-beta01'
|
2019-07-03 00:06:40 +03:00
|
|
|
//Do not use beta2 at the moment, as it breaks things
|
|
|
|
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta1'
|
2019-07-02 10:39:45 +03:00
|
|
|
implementation 'androidx.core:core-ktx:1.0.2'
|
2019-01-24 20:04:55 +03:00
|
|
|
|
2018-10-31 18:11:59 +03:00
|
|
|
implementation 'com.jakewharton.threetenabp:threetenabp:1.1.1'
|
2019-05-09 19:26:32 +03:00
|
|
|
implementation "com.squareup.moshi:moshi-adapters:$moshi_version"
|
|
|
|
kapt "com.squareup.moshi:moshi-kotlin-codegen:$moshi_version"
|
2019-03-28 19:28:20 +03:00
|
|
|
|
2019-06-18 18:42:07 +03:00
|
|
|
// OSS License
|
|
|
|
implementation 'com.google.android.gms:play-services-oss-licenses:17.0.0'
|
|
|
|
|
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-02-19 19:40:38 +03:00
|
|
|
implementation 'com.facebook.stetho:stetho:1.5.0'
|
2018-10-16 16:52:30 +03:00
|
|
|
|
2018-12-29 21:57:38 +03:00
|
|
|
// rx
|
|
|
|
implementation 'io.reactivex.rxjava2:rxkotlin:2.3.0'
|
2019-01-17 20:20:01 +03:00
|
|
|
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
|
2019-01-12 12:20:46 +03:00
|
|
|
implementation 'com.jakewharton.rxrelay2:rxrelay:2.1.0'
|
2019-06-18 19:29:48 +03:00
|
|
|
// TODO RxBindings3 exists
|
2019-01-17 20:20:01 +03:00
|
|
|
implementation 'com.jakewharton.rxbinding2:rxbinding:2.2.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-05-22 17:36:31 +03:00
|
|
|
implementation 'com.airbnb.android:mvrx:1.0.1'
|
2018-10-19 16:30:40 +03:00
|
|
|
|
2019-04-02 19:08:43 +03:00
|
|
|
// Work
|
2019-07-02 10:39:45 +03:00
|
|
|
implementation "androidx.work:work-runtime-ktx:2.1.0-rc01"
|
2019-04-02 19:08:43 +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
|
|
|
|
implementation 'androidx.preference:preference:1.0.0'
|
|
|
|
|
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'
|
2019-07-02 10:39:45 +03:00
|
|
|
implementation 'com.google.android.material:material:1.1.0-alpha07'
|
2019-02-20 13:39:25 +03:00
|
|
|
implementation 'me.gujun.android:span:1.7'
|
2019-02-21 21:21:08 +03:00
|
|
|
implementation "ru.noties.markwon:core:$markwon_version"
|
|
|
|
implementation "ru.noties.markwon:html:$markwon_version"
|
2019-06-03 18:53:04 +03:00
|
|
|
implementation 'me.saket:better-link-movement-method:2.2.0'
|
2019-02-21 21:21:08 +03:00
|
|
|
|
2019-05-16 11:23:57 +03:00
|
|
|
// Passphrase strength helper
|
|
|
|
implementation 'com.nulab-inc:zxcvbn:1.2.5'
|
|
|
|
|
|
|
|
//Alerter
|
2019-06-12 17:30:30 +03:00
|
|
|
implementation 'com.tapadoo.android:alerter:4.0.3'
|
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
|
|
|
|
implementation 'com.jakewharton:butterknife:10.1.0'
|
|
|
|
kapt 'com.jakewharton:butterknife-compiler:10.1.0'
|
|
|
|
|
|
|
|
// 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"
|
|
|
|
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'
|
2018-10-29 19:20:08 +03:00
|
|
|
|
2019-04-02 19:08:43 +03:00
|
|
|
// Badge for compatibility
|
|
|
|
implementation 'me.leolin:ShortcutBadger:1.1.2@aar'
|
|
|
|
|
2019-04-11 14:21:51 +03:00
|
|
|
// File picker
|
|
|
|
implementation 'com.github.jaiselrahman:FilePicker:1.2.2'
|
2019-04-03 23:54:48 +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"
|
|
|
|
compileOnly 'com.squareup.inject:assisted-inject-annotations-dagger2:0.4.0'
|
|
|
|
kapt 'com.squareup.inject:assisted-inject-processor-dagger2:0.4.0'
|
2018-10-03 18:56:33 +03:00
|
|
|
|
2019-04-02 19:08:43 +03:00
|
|
|
// gplay flavor only
|
2019-06-27 11:42:22 +03:00
|
|
|
gplayImplementation('com.google.firebase:firebase-messaging:19.0.1') {
|
|
|
|
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
|
|
|
|
2019-07-15 15:26:13 +03:00
|
|
|
implementation 'diff_match_patch:diff_match_patch:current'
|
|
|
|
|
2018-12-29 21:57:38 +03:00
|
|
|
// TESTS
|
2018-10-03 18:56:33 +03:00
|
|
|
testImplementation 'junit:junit:4.12'
|
2019-07-02 10:39:45 +03:00
|
|
|
androidTestImplementation 'androidx.test:runner:1.2.0'
|
|
|
|
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
|
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'
|
|
|
|
}
|