* fix(deps): update dependency org.matrix.rustcomponents:sdk-android to v26.03.18 * Fix API breaks * Add compatibility with rustls (#6367) A new `rustls-platform-verifier-android` library has to be added to the project, it'll be called from Rust to get access to the certificates on Android. Originally, this was supposed to be added as a local maven repo pointing to the rust crate that publishes the AAR, but that's just plain terrible (more details [here](https://github.com/rustls/rustls-platform-verifier#android). Instead, what we can do is use a script that uses `cargo-download` to download the latest crate or a specified version, unzip it and add the `aar` file to the `:libraries:matrix:impl` module. * Try fixing Sonar with local AAR files * Remove `UserCertificatesProvider`: this is no longer needed after integrating rustls * Added some docs for rustls and its `platform-verifier` library * Upgrade SDK to `26.03.19`: this version contains a workaround that allows the app to use the same TLS verifier as before, fixing the Let's Encrypt issues we saw with some homeservers (like element.io) --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Jorge Martín <jorgem@element.io>
59 lines
2.1 KiB
Kotlin
59 lines
2.1 KiB
Kotlin
import extension.setupDependencyInjection
|
|
import extension.testCommonDependencies
|
|
|
|
/*
|
|
* Copyright (c) 2025 Element Creations Ltd.
|
|
* Copyright 2022-2024 New Vector Ltd.
|
|
*
|
|
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
|
|
* Please see LICENSE files in the repository root for full details.
|
|
*/
|
|
|
|
plugins {
|
|
id("io.element.android-library")
|
|
alias(libs.plugins.kotlin.serialization)
|
|
}
|
|
|
|
android {
|
|
namespace = "io.element.android.libraries.matrix.impl"
|
|
}
|
|
|
|
setupDependencyInjection()
|
|
|
|
dependencies {
|
|
releaseImplementation(libs.matrix.sdk)
|
|
if (file("${rootDir.path}/libraries/rustsdk/matrix-rust-sdk.aar").exists()) {
|
|
println("\nNote: Using local binary of the Rust SDK.\n")
|
|
debugImplementation(projects.libraries.rustsdk)
|
|
} else {
|
|
debugImplementation(libs.matrix.sdk)
|
|
}
|
|
implementation(files("libs/rustls-platform-verifier-android.aar"))
|
|
|
|
implementation(projects.appconfig)
|
|
implementation(projects.libraries.androidutils)
|
|
implementation(projects.libraries.di)
|
|
implementation(projects.libraries.featureflag.api)
|
|
implementation(projects.libraries.network)
|
|
implementation(projects.libraries.preferences.api)
|
|
implementation(projects.libraries.workmanager.api)
|
|
implementation(projects.services.analytics.api)
|
|
implementation(projects.services.toolbox.api)
|
|
api(projects.libraries.matrix.api)
|
|
implementation(projects.libraries.core)
|
|
implementation("net.java.dev.jna:jna:5.18.1@aar")
|
|
implementation(libs.androidx.datastore.preferences)
|
|
implementation(libs.serialization.json)
|
|
implementation(libs.kotlinx.collections.immutable)
|
|
|
|
testCommonDependencies(libs)
|
|
testImplementation(projects.libraries.featureflag.test)
|
|
testImplementation(projects.libraries.matrix.test)
|
|
testImplementation(projects.libraries.preferences.test)
|
|
testImplementation(projects.libraries.previewutils)
|
|
testImplementation(projects.libraries.sessionStorage.test)
|
|
testImplementation(projects.libraries.workmanager.test)
|
|
testImplementation(projects.services.analytics.test)
|
|
testImplementation(projects.services.toolbox.test)
|
|
}
|