93c2fd4da6
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
245 lines
7.3 KiB
Groovy
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
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|