2014-10-22 18:38:44 +02:00
// Top-level build file where you can add configuration options common to all
// sub-projects/modules.
buildscript {
2016-08-25 22:53:27 +02:00
repositories {
2020-04-29 12:40:31 +02:00
google ( )
2020-04-29 20:25:31 +02:00
jcenter ( )
2016-08-25 22:53:27 +02:00
}
dependencies {
2021-04-12 21:14:58 +02:00
classpath 'com.android.tools.build:gradle:4.1.3'
2016-08-25 22:53:27 +02:00
}
2014-10-22 18:38:44 +02:00
}
2014-10-26 15:14:38 +01:00
apply plugin: 'com.android.application'
2014-10-22 21:39:53 +02:00
2020-04-29 12:40:31 +02:00
allprojects {
repositories {
google ( )
jcenter ( )
mavenCentral ( )
2020-06-07 10:26:58 +02:00
maven { url "https://jitpack.io" }
maven { url "https://raw.github.com/abdularis/libwebrtc-android/repo/" }
2020-04-29 12:40:31 +02:00
}
}
2014-10-22 21:39:53 +02:00
repositories {
2018-06-10 19:51:41 +02:00
google ( )
2016-08-25 22:53:27 +02:00
jcenter ( )
mavenCentral ( )
2020-06-07 10:26:58 +02:00
maven { url "https://jitpack.io" }
maven { url "https://raw.github.com/abdularis/libwebrtc-android/repo/" }
2014-10-22 21:39:53 +02:00
}
2016-02-12 11:39:27 +01:00
configurations {
2017-12-09 16:19:56 +01:00
playstoreImplementation
2020-04-29 12:40:31 +02:00
gitImplementation
compile . exclude group: 'org.jetbrains' , module: 'annotations'
2017-09-29 13:28:30 +02:00
}
2014-10-23 00:17:49 +02:00
dependencies {
2021-04-24 17:59:15 +02:00
implementation 'org.webrtc:google-webrtc:1.0.+'
2020-04-29 12:40:31 +02:00
implementation project ( ':libs:android-transcoder' )
2021-04-13 20:06:38 +02:00
playstoreImplementation ( 'com.google.firebase:firebase-messaging:21.1.0' ) { ///higher versions are causing crashes due to missing project IDs
2018-05-20 21:13:53 +02:00
exclude group: 'com.google.firebase' , module: 'firebase-core'
2018-12-13 19:29:46 +01:00
exclude group: 'com.google.firebase' , module: 'firebase-analytics'
exclude group: 'com.google.firebase' , module: 'firebase-measurement-connector'
2018-05-20 21:13:53 +02:00
}
2020-07-10 10:11:48 +02:00
playstoreImplementation 'com.android.installreferrer:installreferrer:2.1'
2021-04-19 15:28:30 +02:00
playstoreImplementation 'com.google.gms:google-services:4.3.5'
2017-12-09 16:19:56 +01:00
implementation 'org.sufficientlysecure:openpgp-api:10.0'
2020-04-29 12:40:31 +02:00
implementation ( 'com.theartofdev.edmodo:android-image-cropper:2.8.0' ) {
2018-10-19 20:59:47 +02:00
exclude group: 'com.android.support' , module: 'appcompat-v7'
exclude group: 'com.android.support' , module: 'exifinterface'
}
2020-03-09 19:12:30 +01:00
implementation 'org.bouncycastle:bcmail-jdk15on:1.64'
2020-04-29 12:40:31 +02:00
implementation 'org.gnu.inet:libidn:1.15'
implementation 'com.google.zxing:core:3.3.3' // > 3.3.x not working below SDK 24
2017-12-09 16:19:56 +01:00
implementation 'de.measite.minidns:minidns-hla:0.2.4'
2018-09-13 18:47:30 +02:00
implementation 'me.leolin:ShortcutBadger:1.1.22@aar'
2017-12-09 16:19:56 +01:00
implementation 'org.whispersystems:signal-protocol-java:2.6.2'
implementation 'com.makeramen:roundedimageview:2.3.0'
2020-04-29 12:40:31 +02:00
implementation 'jetty:javax.servlet:5.1.12'
implementation 'com.google.code.gson:gson:2.8.6'
implementation 'androidx.multidex:multidex:2.0.1'
implementation 'androidx.legacy:legacy-support-v13:1.0.0'
2021-02-01 16:35:39 +01:00
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.exifinterface:exifinterface:1.3.2'
2020-04-29 12:40:31 +02:00
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
2020-07-10 10:11:48 +02:00
implementation 'androidx.emoji:emoji:1.1.0'
gitImplementation 'androidx.emoji:emoji-appcompat:1.1.0'
gitImplementation 'androidx.emoji:emoji-bundled:1.1.0'
2021-02-01 16:35:39 +01:00
implementation 'com.google.android.material:material:1.0.0' // higher versions than 1.0.0 cause strange fab design
2020-04-29 12:40:31 +02:00
implementation 'androidx.cardview:cardview:1.0.0' // for compatibility
implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.10.0'
2020-11-21 07:37:32 +01:00
implementation 'com.google.android.exoplayer:exoplayer-core:2.12.1'
implementation 'com.google.android.exoplayer:exoplayer-ui:2.12.1'
2020-04-29 12:40:31 +02:00
implementation 'pub.devrel:easypermissions:3.0.0' // version >= 3.0.0 needs android X libraries
implementation 'com.wefika:flowlayout:0.4.1'
implementation 'com.googlecode.ez-vcard:ez-vcard:0.10.5'
2020-05-15 17:06:16 +02:00
implementation 'org.jxmpp:jxmpp-jid:0.6.4'
2018-08-19 22:33:20 +02:00
implementation 'org.hsluv:hsluv:0.2'
2019-09-25 21:12:12 +02:00
implementation 'org.conscrypt:conscrypt-android:2.2.1'
2020-04-29 12:40:31 +02:00
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.15' // 1.2.15 is last working version for minSDK 16
2018-11-20 17:25:31 +01:00
implementation 'me.drakeet.support:toastcompat:1.1.0'
2020-04-29 12:40:31 +02:00
implementation 'org.osmdroid:osmdroid-android:6.1.5'
2021-04-12 21:14:58 +02:00
implementation 'com.leinardi.android:speed-dial:3.1.1'
2020-04-29 12:40:31 +02:00
implementation 'com.squareup.picasso:picasso:2.71828'
2021-03-06 21:36:40 +01:00
implementation 'com.squareup.okhttp3:okhttp:3.12.12' // versions > 3.12.x don't support API level < 21 anymore
2021-04-12 21:14:58 +02:00
implementation 'com.squareup.retrofit2:retrofit:2.6.4' //retrofit needs to stick with 2.6.x for SDK < 21 (https://github.com/square/retrofit/blob/master/CHANGELOG.md)
2021-03-06 21:36:40 +01:00
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.google.guava:guava:30.1-android'
2021-03-06 20:13:17 +01:00
implementation 'com.github.AppIntro:AppIntro:6.1.0'
2021-01-19 21:30:23 +01:00
implementation "androidx.browser:browser:1.3.0"
2020-09-26 14:45:24 +02:00
implementation fileTree ( include: [ 'libwebrtc-m85.aar' ] , dir: 'libs' )
2014-10-23 00:17:49 +02:00
}
2016-04-04 21:25:44 +02:00
ext {
2016-08-25 22:53:27 +02:00
travisBuild = System . getenv ( "TRAVIS" ) = = "true"
2017-08-02 17:42:21 +02:00
preDexEnabled = System . getProperty ( "pre-dex" , "true" )
2016-04-04 21:25:44 +02:00
}
2014-10-22 21:39:53 +02:00
android {
2020-04-29 12:40:31 +02:00
2020-01-18 14:14:40 +01:00
compileSdkVersion 29
2016-08-25 22:53:27 +02:00
defaultConfig {
2021-04-24 17:59:15 +02:00
minSdkVersion 21
2020-04-29 12:40:31 +02:00
targetSdkVersion 29
2021-04-12 21:14:58 +02:00
//versionNameSuffix " beta_(2021-04-10)" // " beta_(XXXX-XX-XX)" // activate for beta versions
2021-04-24 22:39:56 +02:00
versionCode 100
versionName "1.0"
2020-04-29 12:40:31 +02:00
//resConfigs "en"
2016-08-25 22:53:27 +02:00
archivesBaseName + = "-$versionName"
2021-03-07 18:05:17 +01:00
//archivesBaseName += "$versionNameSuffix" // activate for beta versions
2021-04-24 22:39:56 +02:00
applicationId "de.monocles.chat"
2020-04-29 12:40:31 +02:00
multiDexEnabled true
2021-04-24 22:39:56 +02:00
buildConfigField ( "String" , "LOGTAG" , '"monocles_chat"' )
2020-04-29 12:40:31 +02:00
buildConfigField ( "String" , "DOMAIN_LOCK" , 'null' )
2021-04-24 17:59:15 +02:00
buildConfigField ( "String" , "MAGIC_CREATE_DOMAIN" , '"monocles.de"' )
2020-04-29 12:40:31 +02:00
buildConfigField ( "boolean" , "SHOW_INTRO" , 'true' )
2021-04-24 22:39:56 +02:00
buildConfigField ( "String" , "UPDATE_URL" , '"https://monocles.de/chat/update/"' )
2018-02-21 10:30:38 +01:00
resValue "string" , "applicationId" , applicationId
2021-04-24 22:39:56 +02:00
resValue "string" , "app_name" , "monocles chat"
2021-04-25 13:31:44 +02:00
signingConfig signingConfigs . 'monocles chat'
2020-04-19 20:21:31 +02:00
}
2018-02-17 18:58:56 +01:00
dataBinding {
enabled true
}
2020-04-29 12:40:31 +02:00
packagingOptions {
//X86
2021-04-12 21:20:19 +02:00
exclude "lib/x86/**"
2020-04-29 12:40:31 +02:00
//X86_64
2021-04-12 21:20:19 +02:00
exclude "lib/x86_64/**"
2020-04-29 12:40:31 +02:00
//armeabi
2020-06-07 10:26:58 +02:00
//exclude "lib/armeabi/**"
2020-04-29 12:40:31 +02:00
}
2016-08-25 22:53:27 +02:00
dexOptions {
// Skip pre-dexing when running on Travis CI or when disabled via -Dpre-dex=false.
preDexLibraries = preDexEnabled & & ! travisBuild
2020-04-29 12:40:31 +02:00
javaMaxHeapSize "4g"
2017-08-02 17:42:21 +02:00
jumboMode true
2016-08-25 22:53:27 +02:00
}
compileOptions {
2017-12-09 16:19:56 +01:00
sourceCompatibility JavaVersion . VERSION_1_8
targetCompatibility JavaVersion . VERSION_1_8
2016-08-25 22:53:27 +02:00
}
2020-04-29 12:40:31 +02:00
flavorDimensions ( "distribution" )
2017-12-09 16:19:56 +01:00
2016-08-25 22:53:27 +02:00
productFlavors {
2017-12-09 16:19:56 +01:00
playstore {
dimension "distribution"
2020-04-29 12:40:31 +02:00
versionNameSuffix "-playstore"
2021-04-25 18:07:04 +02:00
applicationId "de.monocles.chat"
2020-11-07 08:27:43 +01:00
buildConfigField ( "boolean" , "SHOW_MIGRATION_INFO" , 'false' )
resValue "string" , "applicationId" , applicationId
2021-04-26 09:26:54 +02:00
signingConfig signingConfigs . 'monocles chat'
2017-12-09 16:19:56 +01:00
}
2020-04-29 12:40:31 +02:00
git {
2017-12-09 16:19:56 +01:00
dimension "distribution"
2020-11-07 08:27:43 +01:00
buildConfigField ( "boolean" , "SHOW_MIGRATION_INFO" , 'true' )
2021-04-26 09:26:54 +02:00
applicationId 'de.monocles.chat'
signingConfig signingConfigs . 'monocles chat'
2018-06-21 14:26:25 +02:00
}
2016-08-25 22:53:27 +02:00
}
2020-04-29 12:40:31 +02:00
if ( project . hasProperty ( 'mStoreFile' ) & &
project . hasProperty ( 'mStorePassword' ) & &
project . hasProperty ( 'mKeyAlias' ) & &
project . hasProperty ( 'mKeyPassword' ) ) {
signingConfigs {
release {
storeFile file ( mStoreFile )
storePassword mStorePassword
keyAlias mKeyAlias
keyPassword mKeyPassword
2018-11-03 16:14:30 +01:00
}
}
2020-04-29 12:40:31 +02:00
buildTypes {
release {
debuggable false
signingConfig = signingConfigs . release
minifyEnabled true
shrinkResources true
runProguard true
proguardFiles getDefaultProguardFile ( 'proguard-android-optimize.txt' ) , 'proguard-rules.pro'
2018-10-08 14:26:12 +02:00
}
2017-12-14 14:25:49 +01:00
2020-04-29 12:40:31 +02:00
debug {
debuggable true
buildTypes . release . signingConfig = null
minifyEnabled true
shrinkResources true
runProguard true
proguardFiles getDefaultProguardFile ( 'proguard-android-optimize.txt' ) , 'proguard-rules.pro'
2016-08-25 22:53:27 +02:00
}
2020-04-29 12:40:31 +02:00
2016-08-25 22:53:27 +02:00
}
}
lintOptions {
2021-04-18 21:58:40 +02:00
error 'StringFormatInvalid' , 'StringFormatMatches'
2020-04-29 12:40:31 +02:00
disable 'ExtraTranslation' , 'MissingTranslation' , 'InvalidPackage' , 'MissingQuantity' , 'AppCompatResource' , 'RestrictedApi'
2021-04-18 21:58:40 +02:00
abortOnError true
2016-08-25 22:53:27 +02:00
}
subprojects {
afterEvaluate {
if ( getPlugins ( ) . hasPlugin ( 'android' ) | |
getPlugins ( ) . hasPlugin ( 'android-library' ) ) {
configure ( android . lintOptions ) {
disable 'AndroidGradlePluginVersion' , 'MissingTranslation'
}
}
}
}
2021-02-05 19:57:44 +01:00
buildToolsVersion '29.0.2'
2016-08-25 22:53:27 +02:00
packagingOptions {
exclude 'META-INF/BCKEY.DSA'
exclude 'META-INF/BCKEY.SF'
}
2020-04-29 12:40:31 +02:00
}