diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts
index 5a82ae72844e..750b98aa6740 100644
--- a/android/app/build.gradle.kts
+++ b/android/app/build.gradle.kts
@@ -33,7 +33,7 @@ android {
compileSdk = Versions.Android.compileSdkVersion
defaultConfig {
- val localProperties = gradleLocalProperties(rootProject.projectDir)
+ val localProperties = gradleLocalProperties(rootProject.projectDir, providers)
applicationId = "net.mullvad.mullvadvpn"
minSdk = Versions.Android.minSdkVersion
@@ -114,7 +114,7 @@ android {
sourceSets {
getByName("main") {
val changelogDir =
- gradleLocalProperties(rootProject.projectDir)
+ gradleLocalProperties(rootProject.projectDir, providers)
.getOrDefault("OVERRIDE_CHANGELOG_DIR", defaultChangelogAssetsDirectory)
assets.srcDirs(extraAssetsDirectory, changelogDir)
@@ -181,13 +181,13 @@ android {
applicationVariants.configureEach {
val alwaysShowChangelog =
- gradleLocalProperties(rootProject.projectDir).getProperty("ALWAYS_SHOW_CHANGELOG")
+ gradleLocalProperties(rootProject.projectDir, providers).getProperty("ALWAYS_SHOW_CHANGELOG")
?: "false"
buildConfigField("boolean", "ALWAYS_SHOW_CHANGELOG", alwaysShowChangelog)
val enableInAppVersionNotifications =
- gradleLocalProperties(rootProject.projectDir)
+ gradleLocalProperties(rootProject.projectDir, providers)
.getProperty("ENABLE_IN_APP_VERSION_NOTIFICATIONS")
?: "true"
@@ -304,13 +304,6 @@ afterEvaluate {
play { serviceAccountCredentials.set(file("play-api-key.json")) }
-configurations.all {
- resolutionStrategy {
- // Hold back emoji2 since newer versions require api level 34 which is not yet stable.
- force("androidx.emoji2:emoji2:1.3.0")
- }
-}
-
dependencies {
implementation(project(Dependencies.Mullvad.vpnService))
implementation(project(Dependencies.Mullvad.tileService))
diff --git a/android/buildSrc/src/main/kotlin/Versions.kt b/android/buildSrc/src/main/kotlin/Versions.kt
index 8076f2496aa6..606ed2e57547 100644
--- a/android/buildSrc/src/main/kotlin/Versions.kt
+++ b/android/buildSrc/src/main/kotlin/Versions.kt
@@ -1,17 +1,17 @@
object Versions {
const val commonsValidator = "1.8.0"
- const val jodaTime = "2.12.5"
- const val junit = "5.10.0"
+ const val jodaTime = "2.12.7"
+ const val junit = "5.10.2"
const val jvmTarget = "17"
- const val konsist = "0.13.0"
+ const val konsist = "0.14.0"
const val kotlin = "1.9.22"
const val kotlinCompilerExtensionVersion = "1.5.10"
- const val kotlinx = "1.7.3"
- const val leakCanary = "2.12"
- const val mockk = "1.13.8"
+ const val kotlinx = "1.8.0"
+ const val leakCanary = "2.13"
+ const val mockk = "1.13.10"
const val mockWebserver = "4.12.0"
const val turbine = "1.0.0"
- const val billingClient = "6.0.1"
+ const val billingClient = "6.2.0"
object Android {
const val compileSdkVersion = 34
@@ -26,7 +26,7 @@ object Versions {
const val coreKtx = "1.12.0"
const val espresso = "3.5.1"
const val lifecycle = "2.7.0"
- const val fragment = "1.6.1"
+ const val fragment = "1.6.2"
const val test = "1.5.0"
const val testMonitor = "1.6.1"
const val testOrchestrator = "1.4.2"
@@ -35,25 +35,25 @@ object Versions {
}
object Compose {
- const val destinations = "1.10.1"
- const val base = "1.6.2"
+ const val destinations = "1.10.2"
+ const val base = "1.6.3"
const val constrainLayout = "1.0.1"
const val foundation = base
- const val material3 = "1.2.0"
+ const val material3 = "1.2.1"
}
object Plugin {
// The androidAapt plugin version must be in sync with the android plugin version.
// Required for Gradle metadata verification to work properly, see:
// https://github.com/gradle/gradle/issues/19228
- const val android = "8.2.1"
- const val androidAapt = "$android-10154469"
- const val playPublisher = "3.8.4"
- const val dependencyCheck = "8.3.1"
- const val detekt = "1.23.4"
- const val gradleVersions = "0.47.0"
+ const val android = "8.3.0"
+ const val androidAapt = "$android-10880808"
+ const val playPublisher = "3.9.0"
+ const val dependencyCheck = "9.0.9"
+ const val detekt = "1.23.5"
+ const val gradleVersions = "0.51.0"
const val junit5 = "1.10.0.0"
- const val ktfmt = "0.16.0"
+ const val ktfmt = "0.17.0"
// Ksp version is linked with kotlin version, find matching release here:
// https://github.com/google/ksp/releases
const val ksp = "${kotlin}-1.0.17"
diff --git a/android/config/dependency-check-suppression.xml b/android/config/dependency-check-suppression.xml
index c7ec54a5e86d..b8712349edc7 100644
--- a/android/config/dependency-check-suppression.xml
+++ b/android/config/dependency-check-suppression.xml
@@ -60,4 +60,12 @@
^pkg:maven/com\.google\.devtools\.ksp/symbol\-processing.*@.*$
CVE-2018-1000840
+
+
+ ^pkg:maven/androidx\.test\.services/storage@.*$
+ CVE-2014-9152
+
diff --git a/android/gradle.properties b/android/gradle.properties
index 912e0912ff83..74c277e3a155 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -3,4 +3,3 @@ android.nonTransitiveRClass=false
android.useAndroidX=true
kotlin.code.style=official
org.gradle.jvmargs=-Xmx8192M -Dkotlin.daemon.jvm.options\="-Xmx8192M"
-android.experimental.lint.version=8.3.0-beta02
diff --git a/android/gradle/verification-metadata.xml b/android/gradle/verification-metadata.xml
index d214b64f7f62..13a615352c3b 100644
--- a/android/gradle/verification-metadata.xml
+++ b/android/gradle/verification-metadata.xml
@@ -15,7 +15,7 @@
- Comments after the verification-metadata opening tag will automatically be removed by gradle
when generating components.
-->
-
+
true
false
@@ -32,6 +32,14 @@
+
+
+
+
+
+
+
+
@@ -281,11 +289,11 @@
-
-
-
+
+
+
-
+
@@ -297,12 +305,12 @@
-
-
-
+
+
+
-
+
@@ -318,11 +326,11 @@
-
-
-
+
+
+
-
+
@@ -334,12 +342,12 @@
-
-
-
+
+
+
-
+
@@ -347,20 +355,20 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -379,11 +387,11 @@
-
-
-
+
+
+
-
+
@@ -395,20 +403,20 @@
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
@@ -424,11 +432,11 @@
-
-
-
+
+
+
-
+
@@ -440,20 +448,20 @@
-
-
-
+
+
+
-
+
-
-
+
+
-
-
+
+
@@ -540,28 +548,28 @@
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
@@ -579,76 +587,76 @@
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
+
-
-
+
+
-
-
+
+
@@ -656,28 +664,28 @@
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
+
-
-
+
+
-
-
+
+
@@ -685,62 +693,62 @@
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
@@ -753,100 +761,100 @@
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
+
-
-
+
+
-
-
+
+
@@ -854,28 +862,28 @@
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
+
-
-
+
+
-
-
+
+
@@ -883,28 +891,28 @@
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
+
-
-
+
+
-
-
+
+
@@ -944,6 +952,11 @@
+
+
+
+
+
@@ -1004,14 +1017,14 @@
-
-
+
+
-
-
-
+
+
+
@@ -1051,6 +1064,11 @@
+
+
+
+
+
@@ -1059,14 +1077,6 @@
-
-
-
-
-
-
-
-
@@ -1075,14 +1085,6 @@
-
-
-
-
-
-
-
-
@@ -1091,14 +1093,6 @@
-
-
-
-
-
-
-
-
@@ -1107,14 +1101,6 @@
-
-
-
-
-
-
-
-
@@ -1232,6 +1218,9 @@
+
+
+
@@ -1329,6 +1318,14 @@
+
+
+
+
+
+
+
+
@@ -1403,6 +1400,14 @@
+
+
+
+
+
+
+
+
@@ -1472,6 +1477,14 @@
+
+
+
+
+
+
+
+
@@ -1566,6 +1579,9 @@
+
+
+
@@ -1716,6 +1732,11 @@
+
+
+
+
+
@@ -1758,251 +1779,182 @@
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
-
-
+
+
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
@@ -2026,214 +1978,199 @@
-
-
-
-
-
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
+
+
+
+
+
+
-
-
+
+
+
+
-
-
-
+
+
+
@@ -2257,65 +2194,73 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
@@ -2328,36 +2273,36 @@
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
@@ -2385,34 +2330,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -2425,11 +2395,6 @@
-
-
-
-
-
@@ -2479,16 +2444,16 @@
-
-
-
-
-
+
+
+
+
+
@@ -2519,11 +2484,6 @@
-
-
-
-
-
@@ -2534,6 +2494,14 @@
+
+
+
+
+
+
+
+
@@ -2544,24 +2512,19 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
+
+
+
@@ -2579,49 +2542,44 @@
-
-
-
-
-
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
@@ -2649,12 +2607,12 @@
-
-
-
+
+
+
-
-
+
+
@@ -2670,12 +2628,17 @@
-
-
-
+
+
+
+
+
+
-
-
+
+
+
+
@@ -2701,124 +2664,124 @@
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+