From b9afbf0692d725ca08747af3d81151127b7d8e1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20Mart=C3=ADn?= Date: Mon, 10 Aug 2026 14:27:06 +0200 Subject: [PATCH] Add a session-scoped `WellknownRetriever` provider so we don't have to build it every time there --- .../wellknown/impl/SessionWellknownModule.kt | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 libraries/wellknown/impl/src/main/kotlin/io/element/android/libraries/wellknown/impl/SessionWellknownModule.kt diff --git a/libraries/wellknown/impl/src/main/kotlin/io/element/android/libraries/wellknown/impl/SessionWellknownModule.kt b/libraries/wellknown/impl/src/main/kotlin/io/element/android/libraries/wellknown/impl/SessionWellknownModule.kt new file mode 100644 index 0000000000..bfd18ac7c2 --- /dev/null +++ b/libraries/wellknown/impl/src/main/kotlin/io/element/android/libraries/wellknown/impl/SessionWellknownModule.kt @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2026 Element Creations Ltd. + * + * SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial. + * Please see LICENSE files in the repository root for full details. + */ + +package io.element.android.libraries.wellknown.impl + +import dev.zacsweers.metro.BindingContainer +import dev.zacsweers.metro.ContributesTo +import dev.zacsweers.metro.Provides +import io.element.android.features.enterprise.api.EnterpriseService +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.wellknown.api.ElementWellKnownParser +import io.element.android.libraries.wellknown.api.ElementWellknownStore +import io.element.android.libraries.wellknown.api.WellknownRetriever +import kotlinx.coroutines.CoroutineScope + +@BindingContainer +@ContributesTo(SessionScope::class) +object SessionWellknownModule { + @Provides + fun provideWellKnownRetriever( + elementWellknownStoreFactory: ElementWellknownStore.Factory, + enterpriseService: EnterpriseService, + elementWellKnownParser: ElementWellKnownParser, + getUrlResolver: GetUrlResolver, + @SessionCoroutineScope coroutineScope: CoroutineScope, + ): WellknownRetriever { + return DefaultWellknownRetriever( + elementWellknownStoreFactory = elementWellknownStoreFactory, + enterpriseService = enterpriseService, + elementWellKnownParser = elementWellKnownParser, + getUrlResolver = getUrlResolver, + coroutineScope = coroutineScope + ) + } +}