e217551a82
OkHttp gives us more fine grained control over the HTTP library and frees us from any platform bugs
285 lines
8.8 KiB
Groovy
285 lines
8.8 KiB
Groovy
import com.android.build.OutputFile
|
|
|
|
// Top-level build file where you can add configuration options common to all
|
|
// sub-projects/modules.
|
|
buildscript {
|
|
repositories {
|
|
google()
|
|
jcenter()
|
|
}
|
|
dependencies {
|
|
classpath 'com.android.tools.build:gradle:4.1.2'
|
|
}
|
|
}
|
|
|
|
apply plugin: 'com.android.application'
|
|
|
|
repositories {
|
|
google()
|
|
jcenter()
|
|
mavenCentral()
|
|
}
|
|
|
|
configurations {
|
|
playstoreImplementation
|
|
compatImplementation
|
|
conversationsFreeCompatImplementation
|
|
conversationsPlaystoreCompatImplementation
|
|
conversationsPlaystoreSystemImplementation
|
|
quicksyPlaystoreCompatImplementation
|
|
quicksyPlaystoreSystemImplementation
|
|
quicksyFreeCompatImplementation
|
|
quicksyImplementation
|
|
}
|
|
|
|
dependencies {
|
|
implementation 'androidx.viewpager:viewpager:1.0.0'
|
|
|
|
playstoreImplementation('com.google.firebase:firebase-messaging:21.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'
|
|
}
|
|
conversationsPlaystoreCompatImplementation("com.android.installreferrer:installreferrer:2.2")
|
|
conversationsPlaystoreSystemImplementation("com.android.installreferrer:installreferrer:2.2")
|
|
quicksyPlaystoreCompatImplementation 'com.google.android.gms:play-services-auth-api-phone:17.5.0'
|
|
quicksyPlaystoreSystemImplementation 'com.google.android.gms:play-services-auth-api-phone:17.5.0'
|
|
implementation 'org.sufficientlysecure:openpgp-api:10.0'
|
|
implementation 'com.theartofdev.edmodo:android-image-cropper:2.8.0'
|
|
implementation 'androidx.appcompat:appcompat:1.2.0'
|
|
implementation 'androidx.exifinterface:exifinterface:1.3.2'
|
|
implementation 'androidx.cardview:cardview:1.0.0'
|
|
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
|
|
implementation 'androidx.emoji:emoji:1.1.0'
|
|
implementation 'com.google.android.material:material:1.3.0'
|
|
compatImplementation 'androidx.emoji:emoji-appcompat:1.1.0'
|
|
conversationsFreeCompatImplementation 'androidx.emoji:emoji-bundled:1.1.0'
|
|
quicksyFreeCompatImplementation 'androidx.emoji:emoji-bundled:1.1.0'
|
|
implementation 'org.bouncycastle:bcmail-jdk15on:1.64'
|
|
//zxing stopped supporting Java 7 so we have to stick with 3.3.3
|
|
//https://github.com/zxing/zxing/issues/1170
|
|
implementation 'com.google.zxing:core:3.3.3'
|
|
implementation 'de.measite.minidns:minidns-hla:0.2.4'
|
|
implementation 'me.leolin:ShortcutBadger:1.1.22@aar'
|
|
implementation 'org.whispersystems:signal-protocol-java:2.6.2'
|
|
implementation 'com.makeramen:roundedimageview:2.3.0'
|
|
implementation "com.wefika:flowlayout:0.4.1"
|
|
implementation 'net.ypresto.androidtranscoder:android-transcoder:0.3.0'
|
|
implementation 'org.jxmpp:jxmpp-jid:0.6.4'
|
|
implementation 'org.osmdroid:osmdroid-android:6.1.10'
|
|
implementation 'org.hsluv:hsluv:0.2'
|
|
implementation 'org.conscrypt:conscrypt-android:2.2.1'
|
|
implementation 'me.drakeet.support:toastcompat:1.1.0'
|
|
implementation "com.leinardi.android:speed-dial:2.0.1"
|
|
|
|
implementation "com.squareup.retrofit2:retrofit:2.9.0"
|
|
implementation "com.squareup.retrofit2:converter-gson:2.9.0"
|
|
//implementation "com.squareup.okhttp3:logging-interceptor:3.14.9"
|
|
implementation 'com.google.guava:guava:30.1-android'
|
|
quicksyImplementation 'io.michaelrocks:libphonenumber-android:8.12.18'
|
|
implementation fileTree(include: ['libwebrtc-m89.aar'], dir: 'libs')
|
|
}
|
|
|
|
ext {
|
|
travisBuild = System.getenv("TRAVIS") == "true"
|
|
preDexEnabled = System.getProperty("pre-dex", "true")
|
|
abiCodes = ['armeabi-v7a': 1, 'x86': 2, 'x86_64': 3, 'arm64-v8a': 4]
|
|
}
|
|
|
|
android {
|
|
compileSdkVersion 29
|
|
|
|
defaultConfig {
|
|
minSdkVersion 21
|
|
targetSdkVersion 29
|
|
versionCode 42006
|
|
versionName "2.9.8"
|
|
archivesBaseName += "-$versionName"
|
|
applicationId "eu.siacs.conversations"
|
|
resValue "string", "applicationId", applicationId
|
|
resValue "string", "app_name", "Conversations"
|
|
buildConfigField "String", "LOGTAG", "\"conversations\""
|
|
}
|
|
|
|
splits {
|
|
abi {
|
|
universalApk true
|
|
enable true
|
|
}
|
|
}
|
|
|
|
dataBinding {
|
|
enabled true
|
|
}
|
|
|
|
dexOptions {
|
|
// Skip pre-dexing when running on Travis CI or when disabled via -Dpre-dex=false.
|
|
preDexLibraries = preDexEnabled && !travisBuild
|
|
jumboMode true
|
|
}
|
|
|
|
compileOptions {
|
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
}
|
|
|
|
flavorDimensions("mode", "distribution", "emoji")
|
|
|
|
productFlavors {
|
|
|
|
quicksy {
|
|
dimension "mode"
|
|
applicationId = "im.quicksy.client"
|
|
resValue "string", "app_name", "Quicksy"
|
|
resValue "string", "applicationId", applicationId
|
|
buildConfigField "String", "LOGTAG", "\"quicksy\""
|
|
}
|
|
|
|
conversations {
|
|
dimension "mode"
|
|
}
|
|
|
|
playstore {
|
|
dimension "distribution"
|
|
versionNameSuffix "+p"
|
|
}
|
|
free {
|
|
dimension "distribution"
|
|
versionNameSuffix "+f"
|
|
}
|
|
system {
|
|
dimension "emoji"
|
|
versionNameSuffix "s"
|
|
}
|
|
compat {
|
|
dimension "emoji"
|
|
versionNameSuffix "c"
|
|
}
|
|
}
|
|
|
|
sourceSets {
|
|
quicksyFreeSystem {
|
|
java {
|
|
srcDir 'src/quicksyFree/java'
|
|
}
|
|
}
|
|
quicksyFreeCompat {
|
|
java {
|
|
srcDir 'src/freeCompat/java'
|
|
srcDir 'src/quicksyFree/java'
|
|
}
|
|
}
|
|
quicksyPlaystoreCompat {
|
|
java {
|
|
srcDir 'src/playstoreCompat/java'
|
|
srcDir 'src/quicksyPlaystore/java'
|
|
}
|
|
res {
|
|
srcDir 'src/playstoreCompat/res'
|
|
srcDir 'src/quicksyPlaystore/res'
|
|
}
|
|
}
|
|
quicksyPlaystoreSystem {
|
|
java {
|
|
srcDir 'src/quicksyPlaystore/java'
|
|
}
|
|
res {
|
|
srcDir 'src/quicksyPlaystore/res'
|
|
}
|
|
}
|
|
conversationsFreeCompat {
|
|
java {
|
|
srcDir 'src/freeCompat/java'
|
|
srcDir 'src/conversationsFree/java'
|
|
}
|
|
}
|
|
conversationsFreeSystem {
|
|
java {
|
|
srcDir 'src/conversationsFree/java'
|
|
}
|
|
}
|
|
conversationsPlaystoreCompat {
|
|
java {
|
|
srcDir 'src/playstoreCompat/java'
|
|
srcDir 'src/conversationsPlaystore/java'
|
|
}
|
|
res {
|
|
srcDir 'src/playstoreCompat/res'
|
|
srcDir 'src/conversationsPlaystore/res'
|
|
}
|
|
}
|
|
conversationsPlaystoreSystem {
|
|
java {
|
|
srcDir 'src/conversationsPlaystore/java'
|
|
}
|
|
res {
|
|
srcDir 'src/conversationsPlaystore/res'
|
|
}
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
release {
|
|
shrinkResources true
|
|
minifyEnabled true
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
|
versionNameSuffix "r"
|
|
}
|
|
debug {
|
|
shrinkResources true
|
|
minifyEnabled true
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
|
versionNameSuffix "d"
|
|
}
|
|
}
|
|
|
|
|
|
if (new File("signing.properties").exists()) {
|
|
Properties props = new Properties()
|
|
props.load(new FileInputStream(file("signing.properties")))
|
|
|
|
signingConfigs {
|
|
release {
|
|
storeFile file(props['keystore'])
|
|
storePassword props['keystore.password']
|
|
keyAlias props['keystore.alias']
|
|
keyPassword props['keystore.password']
|
|
}
|
|
}
|
|
buildTypes.release.signingConfig = signingConfigs.release
|
|
}
|
|
|
|
lintOptions {
|
|
disable 'MissingTranslation', 'InvalidPackage','AppCompatResource'
|
|
}
|
|
|
|
subprojects {
|
|
|
|
afterEvaluate {
|
|
if (getPlugins().hasPlugin('android') ||
|
|
getPlugins().hasPlugin('android-library')) {
|
|
|
|
configure(android.lintOptions) {
|
|
disable 'AndroidGradlePluginVersion', 'MissingTranslation'
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
packagingOptions {
|
|
exclude 'META-INF/BCKEY.DSA'
|
|
exclude 'META-INF/BCKEY.SF'
|
|
}
|
|
|
|
android.applicationVariants.all { variant ->
|
|
variant.outputs.each { output ->
|
|
def baseAbiVersionCode = project.ext.abiCodes.get(output.getFilter(OutputFile.ABI))
|
|
if (baseAbiVersionCode != null) {
|
|
output.versionCodeOverride = (100 * variant.versionCode) + baseAbiVersionCode
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|