Skip to content
build.gradle 7.35 KiB
Newer Older
Sam Whited's avatar
Sam Whited committed
// Top-level build file where you can add configuration options common to all
// sub-projects/modules.
buildscript {
Daniel Gultsch's avatar
Daniel Gultsch committed
    repositories {
        google()
        mavenCentral()
Daniel Gultsch's avatar
Daniel Gultsch committed
    }
    dependencies {
Daniel Gultsch's avatar
Daniel Gultsch committed
        classpath 'com.android.tools.build:gradle:7.2.1'
Daniel Gultsch's avatar
Daniel Gultsch committed
    }
apply plugin: 'com.android.application'
Daniel Gultsch's avatar
Daniel Gultsch committed
    mavenCentral()
    jcenter()
    playstoreImplementation
    freeImplementation
    conversationsFreeImplementation
    conversationsPlaystorImplementation
    conversationsPlaystoreImplementation
    quicksyPlaystoreImplementation
    quicksyPlaystoreImplementation
    quicksyFreeImplementation
Daniel Gultsch's avatar
Daniel Gultsch committed
    quicksyImplementation
dependencies {
    implementation 'androidx.viewpager:viewpager:1.0.0'

Daniel Gultsch's avatar
Daniel Gultsch committed
    playstoreImplementation('com.google.firebase:firebase-messaging:23.0.6') {
        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'
    conversationsPlaystoreImplementation("com.android.installreferrer:installreferrer:2.2")
    quicksyPlaystoreImplementation 'com.google.android.gms:play-services-auth-api-phone:18.0.1'
    implementation 'org.sufficientlysecure:openpgp-api:10.0'
    implementation 'com.theartofdev.edmodo:android-image-cropper:2.8.0'
Daniel Gultsch's avatar
Daniel Gultsch committed
    implementation 'androidx.appcompat:appcompat:1.4.2'
    implementation 'androidx.exifinterface:exifinterface:1.3.3'
    implementation 'androidx.cardview:cardview:1.0.0'
    implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
Daniel Gultsch's avatar
Daniel Gultsch committed
    implementation 'com.google.android.material:material:1.4.0'
Daniel Gultsch's avatar
Daniel Gultsch committed
    implementation "androidx.emoji2:emoji2:1.1.0"
    freeImplementation "androidx.emoji2:emoji2-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'
Daniel Gultsch's avatar
Daniel Gultsch committed
    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"
Daniel Gultsch's avatar
Daniel Gultsch committed
    implementation 'com.otaliastudios:transcoder:0.10.4'
Daniel Gultsch's avatar
Daniel Gultsch committed
    implementation 'org.jxmpp:jxmpp-jid:1.0.3'
    implementation 'org.osmdroid:osmdroid-android:6.1.11'
    implementation 'org.hsluv:hsluv:0.2'
    implementation 'org.conscrypt:conscrypt-android:2.5.2'
    implementation 'me.drakeet.support:toastcompat:1.1.0'
    implementation "com.leinardi.android:speed-dial:3.2.0"
Daniel Gultsch's avatar
Daniel Gultsch committed

    implementation "com.squareup.retrofit2:retrofit:2.9.0"
    implementation "com.squareup.retrofit2:converter-gson:2.9.0"
Daniel Gultsch's avatar
Daniel Gultsch committed
    implementation "com.squareup.okhttp3:okhttp:4.9.3"
Daniel Gultsch's avatar
Daniel Gultsch committed

    implementation 'com.google.guava:guava:30.1.1-android'
Daniel Gultsch's avatar
Daniel Gultsch committed
    quicksyImplementation 'io.michaelrocks:libphonenumber-android:8.12.49'
Daniel Gultsch's avatar
Daniel Gultsch committed
    implementation fileTree(include: ['libwebrtc-m99.aar'], dir: 'libs')
Daniel Gultsch's avatar
Daniel Gultsch committed
ext {
Daniel Gultsch's avatar
Daniel Gultsch committed
    travisBuild = System.getenv("TRAVIS") == "true"
    preDexEnabled = System.getProperty("pre-dex", "true")
    abiCodes = ['armeabi-v7a': 1, 'x86': 2, 'x86_64': 3, 'arm64-v8a': 4]
Daniel Gultsch's avatar
Daniel Gultsch committed
}

Daniel Gultsch's avatar
Daniel Gultsch committed
    namespace 'eu.siacs.conversations'
Daniel Gultsch's avatar
Daniel Gultsch committed

    defaultConfig {
Daniel Gultsch's avatar
Daniel Gultsch committed
        minSdkVersion 21
Daniel Gultsch's avatar
Daniel Gultsch committed
        targetSdkVersion 30
Daniel Gultsch's avatar
Daniel Gultsch committed
        versionCode 42034
        versionName "2.10.8"
Daniel Gultsch's avatar
Daniel Gultsch committed
        archivesBaseName += "-$versionName"
        applicationId "eu.siacs.conversations"
        resValue "string", "applicationId", applicationId
        def appName = "Conversations"
        resValue "string", "app_name", appName
        buildConfigField "String", "APP_NAME", "\"$appName\"";
Daniel Gultsch's avatar
Daniel Gultsch committed
    configurations {
        implementation.exclude group: 'org.jetbrains' , module:'annotations'
Daniel Gultsch's avatar
Daniel Gultsch committed
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    flavorDimensions("mode", "distribution")
Daniel Gultsch's avatar
Daniel Gultsch committed
    productFlavors {
Daniel Gultsch's avatar
Daniel Gultsch committed
        quicksy {
            dimension "mode"
            applicationId = "im.quicksy.client"
            resValue "string", "applicationId", applicationId

            def appName = "Quicksy"
            resValue "string", "app_name", appName
            buildConfigField "String", "APP_NAME", "\"$appName\"";
Daniel Gultsch's avatar
Daniel Gultsch committed
        conversations {
        playstore {
            dimension "distribution"
            versionNameSuffix "+playstore"
        }
        free {
            dimension "distribution"
            versionNameSuffix "+free"
Daniel Gultsch's avatar
Daniel Gultsch committed
    }
            java {
                srcDir 'src/quicksyFree/java'
            }
        }
            java {
                srcDir 'src/quicksyPlaystore/java'
            }
            res {
                srcDir 'src/quicksyPlaystore/res'
                srcDir 'src/conversationsFree/java'
            }
        }
            java {
                srcDir 'src/conversationsPlaystore/java'
            }
            res {
                srcDir 'src/conversationsPlaystore/res'
Daniel Gultsch's avatar
Daniel Gultsch committed
    buildTypes {
        release {
            shrinkResources true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            shrinkResources true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }


    if (new File("signing.properties").exists()) {
        Properties props = new Properties()
        props.load(new FileInputStream(file("signing.properties")))

Daniel Gultsch's avatar
Daniel Gultsch committed
        signingConfigs {
            release {
                storeFile file(props['keystore'])
                storePassword props['keystore.password']
                keyAlias props['keystore.alias']
                keyPassword props['keystore.password']
Daniel Gultsch's avatar
Daniel Gultsch committed
            }
        }
        buildTypes.release.signingConfig = signingConfigs.release
    }


    subprojects {

        afterEvaluate {
            if (getPlugins().hasPlugin('android') ||
                    getPlugins().hasPlugin('android-library')) {

                configure(android.lintOptions) {
                    disable 'AndroidGradlePluginVersion', 'MissingTranslation'
                }
            }

        }
    }
    packagingOptions {
Daniel Gultsch's avatar
Daniel Gultsch committed
        resources {
            excludes += ['META-INF/BCKEY.DSA', 'META-INF/BCKEY.SF']
        }
Daniel Gultsch's avatar
Daniel Gultsch committed
    }
Daniel Gultsch's avatar
Daniel Gultsch committed
    lint {
        disable 'MissingTranslation', 'InvalidPackage', 'AppCompatResource'
    }

    android.applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def baseAbiVersionCode = project.ext.abiCodes.get(output.getFilter(com.android.build.OutputFile.ABI))
            if (baseAbiVersionCode != null) {
                output.versionCodeOverride = (100 * project.android.defaultConfig.versionCode) + baseAbiVersionCode
            } else {
                output.versionCodeOverride = 100 * project.android.defaultConfig.versionCode