mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-02 12:07:28 +00:00
3fe0e09e3c
* Add search backfill worker This will run on background at most once an hour while the device has internet connectivity and the device is charging and start back-paginating through the user's rooms to make sure the search results are populated. It'll run for the maximum time the default workers allow, 10 minutes. * Create `RustMatrixClient.Factory` AssistedFactory to help with DI and add `SearchBackfillService` * Start search backfill when entering the search screen, just once. This should help getting initial search results if none or few are found at first
93 lines
3.9 KiB
Kotlin
93 lines
3.9 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()
|
|
|
|
// Temporary: `-PelementCallLocalVersion` points this at a locally published build of
|
|
// element-call-android, because the library has no remote repository yet. Goes with the mavenLocal
|
|
// block in settings.gradle.kts. Only the BOM carries a version; every other artifact follows it.
|
|
val elementCallVersion: String = providers.gradleProperty("elementCallLocalVersion")
|
|
.getOrElse(libs.versions.element.call.get())
|
|
|
|
val usesLocalRustSdk = file("${rootDir.path}/libraries/rustsdk/matrix-rust-sdk.aar").exists()
|
|
|
|
if (usesLocalRustSdk) {
|
|
// element-call-matrix declares the Rust SDK as an ordinary Maven dependency, so with the local
|
|
// AAR in place a debug classpath would carry two copies of org.matrix.rustcomponents.sdk.
|
|
// Point the library's dependency at the same local AAR the app is using.
|
|
configurations.matching { it.name.startsWith("debug") }.configureEach {
|
|
resolutionStrategy.dependencySubstitution {
|
|
substitute(module("org.matrix.rustcomponents:sdk-android"))
|
|
.using(project(":libraries:rustsdk"))
|
|
.because("the local Rust SDK AAR replaces the published one on debug builds")
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
releaseImplementation(libs.matrix.sdk)
|
|
if (usesLocalRustSdk) {
|
|
println(
|
|
"\nNote: Using local binary of the Rust SDK." +
|
|
"\n element-call-matrix is substituted onto it as well, so the native call runs" +
|
|
"\n against this SDK rather than the one it was published against.\n"
|
|
)
|
|
debugImplementation(projects.libraries.rustsdk)
|
|
} else {
|
|
debugImplementation(libs.matrix.sdk)
|
|
}
|
|
implementation(variantOf(libs.rustls.platform.verifier) { artifactType("aar") })
|
|
|
|
// The native call's Matrix transport. Only this module may hand it a raw SDK client.
|
|
implementation(platform("io.element.android:element-call-bom:$elementCallVersion"))
|
|
implementation(libs.element.call.api)
|
|
implementation(projects.features.callnative.api)
|
|
implementation(libs.element.call.matrix)
|
|
|
|
implementation(projects.appconfig)
|
|
implementation(projects.features.enterprise.api)
|
|
implementation(projects.features.networkmonitor.api)
|
|
implementation(projects.libraries.androidutils)
|
|
implementation(projects.libraries.architecture)
|
|
implementation(projects.libraries.di)
|
|
implementation(projects.libraries.featureflag.api)
|
|
implementation(projects.libraries.network)
|
|
implementation(projects.libraries.sessionStorage.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(variantOf(libs.jna) { artifactType("aar") })
|
|
implementation(libs.androidx.datastore.preferences)
|
|
implementation(libs.kotlinx.collections.immutable)
|
|
|
|
testCommonDependencies(libs)
|
|
testImplementation(projects.features.enterprise.test)
|
|
testImplementation(projects.features.networkmonitor.test)
|
|
testImplementation(projects.libraries.featureflag.test)
|
|
testImplementation(projects.libraries.matrix.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)
|
|
}
|