diff --git a/build.gradle b/build.gradle index 307bc91d9..61bfd1477 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'com.android.application' version '7.4.2' + id 'com.android.application' version '8.1.2' } repositories { @@ -20,22 +20,22 @@ dependencies { implementation "io.noties.markwon:ext-strikethrough:$markwon_version" implementation "io.noties.markwon:ext-tasklist:$markwon_version" implementation 'androidx.sharetarget:sharetarget:1.2.0' - implementation 'androidx.webkit:webkit:1.5.0' + implementation 'androidx.webkit:webkit:1.8.0' implementation 'androidx.multidex:multidex:2.0.1' - implementation 'androidx.appcompat:appcompat:1.5.1' - implementation 'com.google.android.material:material:1.7.0' + implementation 'androidx.appcompat:appcompat:1.6.1' + implementation 'com.google.android.material:material:1.10.0' implementation 'androidx.legacy:legacy-support-v13:1.0.0' - implementation ('androidx.preference:preference:1.2.0') { + implementation ('androidx.preference:preference:1.2.1') { exclude group: 'androidx.lifecycle', module:'lifecycle-viewmodel' exclude group: 'androidx.lifecycle', module:'lifecycle-viewmodel-ktx' } implementation 'androidx.legacy:legacy-preference-v14:1.0.0' - implementation 'androidx.exifinterface:exifinterface:1.3.5' + implementation 'androidx.exifinterface:exifinterface:1.3.6' implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' - implementation 'androidx.lifecycle:lifecycle-common-java8:2.5.1' - implementation 'androidx.lifecycle:lifecycle-viewmodel:2.5.1' - implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1' - implementation 'androidx.work:work-runtime:2.7.1' + implementation 'androidx.lifecycle:lifecycle-common-java8:2.6.2' + implementation 'androidx.lifecycle:lifecycle-viewmodel:2.6.2' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2' + implementation 'androidx.work:work-runtime:2.8.1' implementation 'com.google.android.exoplayer:exoplayer-core:2.9.6' // plays video and audio implementation 'com.google.android.exoplayer:exoplayer-ui:2.9.6' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' @@ -50,7 +50,7 @@ dependencies { implementation 'com.caverock:androidsvg-aar:1.4' // SVG support. implementation 'com.github.bumptech.glide:glide:4.12.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0' - annotationProcessor 'androidx.annotation:annotation:1.5.0' + annotationProcessor 'androidx.annotation:annotation:1.7.0' implementation 'com.makeramen:roundedimageview:2.1.0' // crops the avatars to circles implementation 'com.pnikosis:materialish-progress:1.5' // used only in the "Progress Wheel" in Share Activity. implementation 'com.soundcloud.android:android-crop:1.0.1@aar' // used for profile and group avatar selection in Android SDK<19 @@ -92,7 +92,7 @@ dependencies { android { namespace "org.thoughtcrime.securesms" flavorDimensions "none" - compileSdkVersion 33 + compileSdk 34 // Set NDK version to strip native libraries. // Even though we compile our libraries outside Gradle with `scripts/ndk-make.sh`, @@ -132,18 +132,16 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - packagingOptions { - exclude 'LICENSE.txt' - exclude 'LICENSE' - exclude 'NOTICE' - exclude 'asm-license.txt' - exclude 'META-INF/LICENSE' - exclude 'META-INF/NOTICE' - doNotStrip '*/mips/*.so' - doNotStrip '*/mips64/*.so' + jniLibs { + keepDebugSymbols += ['*/mips/*.so', '*/mips64/*.so'] + } + resources { + excludes += ['LICENSE.txt', 'LICENSE', 'NOTICE', 'asm-license.txt', 'META-INF/LICENSE', 'META-INF/NOTICE'] + } } + signingConfigs { release { // can be defined at `~/.gradle/gradle.properties` or at "Build/Generate signed APK" @@ -227,6 +225,10 @@ android { lint { abortOnError false } + buildFeatures { + renderScript true + aidl true + } } diff --git a/gradle.properties b/gradle.properties index 2510a2d94..f6503cb12 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,6 @@ +android.defaults.buildfeatures.buildconfig=true android.enableJetifier=true +android.nonFinalResIds=false +android.nonTransitiveRClass=false android.useAndroidX=true -org.gradle.jvmargs=-Xmx4608m \ No newline at end of file +org.gradle.jvmargs=-Xmx4608m diff --git a/proguard-rules.pro b/proguard-rules.pro index 3cd957ed0..8f99c8a39 100644 --- a/proguard-rules.pro +++ b/proguard-rules.pro @@ -7,3 +7,14 @@ # unused SealedData constructor needed by JsonUtils -keep class org.thoughtcrime.securesms.crypto.KeyStoreHelper* { *; } + +# Please add these rules to your existing keep rules in order to suppress warnings. +# This is generated automatically by the Android Gradle plugin. +-dontwarn com.google.android.gms.common.GoogleApiAvailability +-dontwarn com.google.android.gms.location.FusedLocationProviderClient +-dontwarn com.google.android.gms.location.LocationCallback +-dontwarn com.google.android.gms.location.LocationRequest +-dontwarn com.google.android.gms.location.LocationServices +-dontwarn com.google.android.gms.tasks.OnFailureListener +-dontwarn com.google.android.gms.tasks.OnSuccessListener +-dontwarn com.google.android.gms.tasks.Task