conversations-classic/build.gradle
Daniel Gultsch 93c2fd4da6
downgrade webrtc to m104
m107 shipped with 2.11.0 (both fdroid and play) was causing problems when
calling between some (not all) devices.

The callee (repsonder) would not see the video of the caller (initiator).

Our best guess is that this has something to do with the new av1 decoder and it
only occurs between devices where av1 is selected as the codec.

It's probably selected on 'modern' devices. It's not happening between a
Pixel 4a and a Xiaomi Mi A1 but it is happening between two Pixels
2022-12-30 12:26:05 +01:00

245 lines
7.3 KiB
Groovy

// Top-level build file where you can add configuration options common to all
// sub-projects/modules.
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.3.1'
}
}
apply plugin: 'com.android.application'
repositories {
google()
mavenCentral()
jcenter()
}
configurations {
playstoreImplementation
freeImplementation
conversationsFreeImplementation
conversationsPlaystorImplementation
conversationsPlaystoreImplementation
quicksyPlaystoreImplementation
quicksyPlaystoreImplementation
quicksyFreeImplementation
quicksyImplementation
}
dependencies {
implementation 'androidx.viewpager:viewpager:1.0.0'
playstoreImplementation('com.google.firebase:firebase-messaging:23.1.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'
}
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'
implementation 'androidx.appcompat:appcompat:1.5.1'
implementation 'androidx.exifinterface:exifinterface:1.3.5'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
implementation 'com.google.android.material:material:1.7.0'
implementation "androidx.emoji2:emoji2:1.2.0"
freeImplementation "androidx.emoji2:emoji2-bundled:1.2.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"
//noinspection GradleDependency
implementation 'com.otaliastudios:transcoder:0.9.1'
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"
implementation "com.squareup.retrofit2:retrofit:2.9.0"
implementation "com.squareup.retrofit2:converter-gson:2.9.0"
implementation "com.squareup.okhttp3:okhttp:4.10.0"
implementation 'com.google.guava:guava:31.1-android'
quicksyImplementation 'io.michaelrocks:libphonenumber-android:8.12.49'
implementation 'im.conversations.webrtc:webrtc-android:104.0.0'
}
ext {
preDexEnabled = System.getProperty("pre-dex", "true")
abiCodes = ['armeabi-v7a': 1, 'x86': 2, 'x86_64': 3, 'arm64-v8a': 4]
}
android {
namespace 'eu.siacs.conversations'
compileSdkVersion 32
defaultConfig {
minSdkVersion 21
targetSdkVersion 32
versionCode 42043
versionName "2.11.2"
archivesBaseName += "-$versionName"
applicationId "eu.siacs.conversations"
resValue "string", "applicationId", applicationId
def appName = "Conversations"
resValue "string", "app_name", appName
buildConfigField "String", "APP_NAME", "\"$appName\""
}
splits {
abi {
universalApk true
enable true
}
}
configurations {
implementation.exclude group: 'org.jetbrains' , module:'annotations'
}
dataBinding {
enabled true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
flavorDimensions("mode", "distribution")
productFlavors {
quicksy {
dimension "mode"
applicationId = "im.quicksy.client"
resValue "string", "applicationId", applicationId
def appName = "Quicksy"
resValue "string", "app_name", appName
buildConfigField "String", "APP_NAME", "\"$appName\""
}
conversations {
dimension "mode"
}
playstore {
dimension "distribution"
versionNameSuffix "+playstore"
}
free {
dimension "distribution"
versionNameSuffix "+free"
}
}
sourceSets {
quicksyFree {
java {
srcDir 'src/quicksyFree/java'
}
}
quicksyPlaystore {
java {
srcDir 'src/quicksyPlaystore/java'
}
res {
srcDir 'src/quicksyPlaystore/res'
}
}
conversationsFree {
java {
srcDir 'src/conversationsFree/java'
}
}
conversationsPlaystore {
java {
srcDir 'src/conversationsPlaystore/java'
}
res {
srcDir 'src/conversationsPlaystore/res'
}
}
}
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")))
signingConfigs {
release {
storeFile file(props['keystore'])
storePassword props['keystore.password']
keyAlias props['keystore.alias']
keyPassword props['keystore.password']
}
}
buildTypes.release.signingConfig = signingConfigs.release
}
subprojects {
afterEvaluate {
if (getPlugins().hasPlugin('android') ||
getPlugins().hasPlugin('android-library')) {
configure(android.lintOptions) {
disable 'AndroidGradlePluginVersion', 'MissingTranslation'
}
}
}
}
packagingOptions {
resources {
excludes += ['META-INF/BCKEY.DSA', 'META-INF/BCKEY.SF']
}
}
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
}
}
}
}