Rename GetUrlResolver to UrlContentFetcher and TemporaryMatrixClientFactory.createTemporaryMatrixClient to just create

This commit is contained in:
Jorge Martín
2026-08-11 09:30:22 +02:00
committed by Jorge Martin Espinosa
parent dbc28df3eb
commit e371b46c68
23 changed files with 55 additions and 52 deletions
@@ -54,7 +54,7 @@ import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.StateFlow
import java.util.Optional
interface MatrixClient : GetUrlResolver {
interface MatrixClient : UrlContentFetcher {
val sessionId: SessionId
val deviceId: DeviceId
@@ -15,4 +15,4 @@ import java.lang.AutoCloseable
* Note: this client implements an [AutoCloseable] interface, so using [AutoCloseable.close] or [AutoCloseable.use] will clean up any resources associated
* with it, such as temporary files.
*/
interface TemporaryMatrixClient : GetUrlResolver, AutoCloseable
interface TemporaryMatrixClient : UrlContentFetcher, AutoCloseable
@@ -11,5 +11,5 @@ package io.element.android.libraries.matrix.api
* Factory to create a temporary [TemporaryMatrixClient] for a given home server URL.
*/
interface TemporaryMatrixClientFactory {
suspend fun createTemporaryMatrixClient(homeServerUrl: String): Result<TemporaryMatrixClient>
suspend fun create(homeServerUrl: String): Result<TemporaryMatrixClient>
}
@@ -7,7 +7,10 @@
package io.element.android.libraries.matrix.api
fun interface GetUrlResolver {
/**
* An interface to fetch content from a URL using a simple GET request.
*/
fun interface UrlContentFetcher {
/**
* Execute generic GET requests through the SDKs internal HTTP client.
*/
@@ -7,7 +7,7 @@
package io.element.android.libraries.matrix.api.scanner
import io.element.android.libraries.matrix.api.GetUrlResolver
import io.element.android.libraries.matrix.api.UrlContentFetcher
import io.element.android.libraries.matrix.api.core.SessionId
/**
@@ -20,6 +20,6 @@ fun interface ContentScannerUrlProvider {
suspend fun getContentScannerUrl(sessionId: SessionId): Result<String?>
fun interface Factory {
fun create(getUrlResolver: GetUrlResolver): ContentScannerUrlProvider
fun create(urlContentFetcher: UrlContentFetcher): ContentScannerUrlProvider
}
}
@@ -10,8 +10,8 @@ package io.element.android.libraries.matrix.impl
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesBinding
import io.element.android.libraries.core.extensions.runCatchingExceptions
import io.element.android.libraries.matrix.api.TemporaryMatrixClientFactory
import io.element.android.libraries.matrix.api.TemporaryMatrixClient
import io.element.android.libraries.matrix.api.TemporaryMatrixClientFactory
import io.element.android.libraries.matrix.impl.paths.SessionPathsFactory
@ContributesBinding(AppScope::class)
@@ -19,7 +19,7 @@ class RustTemporaryMatrixClientFactory(
private val sessionPathsFactory: SessionPathsFactory,
private val rustMatrixClientFactory: RustMatrixClientFactory,
) : TemporaryMatrixClientFactory {
override suspend fun createTemporaryMatrixClient(homeServerUrl: String): Result<TemporaryMatrixClient> {
override suspend fun create(homeServerUrl: String): Result<TemporaryMatrixClient> {
return runCatchingExceptions {
val sessionPaths = sessionPathsFactory.create()
val client = rustMatrixClientFactory.getBaseClientBuilder(
@@ -279,7 +279,7 @@ class RustMatrixAuthenticationService(
enterpriseService.tweakMasUrl(
url = it,
homeserver = client.server() ?: client.homeserver(),
getUrlResolver = getUrlResolver,
urlContentFetcher = getUrlResolver,
)
}
pendingOAuthAuthorizationData = oAuthAuthorizationData
@@ -13,9 +13,9 @@ import dev.zacsweers.metro.ContributesTo
import dev.zacsweers.metro.Provides
import io.element.android.libraries.di.SessionScope
import io.element.android.libraries.di.annotations.SessionCoroutineScope
import io.element.android.libraries.matrix.api.GetUrlResolver
import io.element.android.libraries.matrix.api.HomeserverCapabilitiesProvider
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.UrlContentFetcher
import io.element.android.libraries.matrix.api.core.DeviceId
import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.matrix.api.encryption.EncryptionService
@@ -32,7 +32,7 @@ import io.element.android.libraries.matrix.api.verification.SessionVerificationS
import kotlinx.coroutines.CoroutineScope
@BindingContainer
@ContributesTo(SessionScope::class, replaces = [GetUrlResolver::class])
@ContributesTo(SessionScope::class)
object SessionMatrixModule {
@Provides
fun providesSessionId(matrixClient: MatrixClient): SessionId {
@@ -111,7 +111,7 @@ object SessionMatrixModule {
}
@Provides
fun providesGetUrlResolverClient(matrixClient: MatrixClient): GetUrlResolver {
fun providesGetUrlResolverClient(matrixClient: MatrixClient): UrlContentFetcher {
return matrixClient
}
}
@@ -7,11 +7,11 @@
package io.element.android.libraries.matrix.test
import io.element.android.libraries.matrix.api.TemporaryMatrixClientFactory
import io.element.android.libraries.matrix.api.TemporaryMatrixClient
import io.element.android.libraries.matrix.api.TemporaryMatrixClientFactory
class FakeTemporaryMatrixClientFactory(
private val createResult: (String) -> Result<TemporaryMatrixClient> = { Result.success(FakeTemporaryMatrixClient()) },
) : TemporaryMatrixClientFactory {
override suspend fun createTemporaryMatrixClient(homeServerUrl: String): Result<TemporaryMatrixClient> = createResult(homeServerUrl)
override suspend fun create(homeServerUrl: String): Result<TemporaryMatrixClient> = createResult(homeServerUrl)
}