Add a developer option for history sharing on invite (#4821)

Adds a new developer flag, enabling our experimental support for MSC4268.
This commit is contained in:
Richard van der Hoff
2025-06-18 17:11:57 +01:00
committed by GitHub
parent 17c0bd88b6
commit 9be05262e2
3 changed files with 13 additions and 0 deletions

View File

@@ -112,6 +112,17 @@ enum class FeatureFlags(
defaultValue = { false },
isFinished = false,
),
EnableKeyShareOnInvite(
key = "feature.enableKeyShareOnInvite",
title = "Share encrypted history with new members",
description = "When inviting a user to an encrypted room that has history visibility set to \"shared\"," +
" share encrypted history with that user, and accept encrypted history when you are invited to such a room." +
"\nRequires an app restart to take effect." +
"\n\nWARNING: this feature is EXPERIMENTAL and not all security precautions are implemented." +
" Do not enable on production accounts.",
defaultValue = { false },
isFinished = false,
),
Knock(
key = "feature.knock",
title = "Ask to join",

View File

@@ -127,6 +127,7 @@ class RustMatrixClientFactory @Inject constructor(
TrustRequirement.UNTRUSTED
}
)
.enableShareHistoryOnInvite(featureFlagService.isFeatureEnabled(FeatureFlags.EnableKeyShareOnInvite))
.run {
// Apply sliding sync version settings
when (slidingSyncType) {

View File

@@ -41,6 +41,7 @@ class FakeFfiClientBuilder : ClientBuilder(NoPointer) {
override fun slidingSyncVersionBuilder(versionBuilder: SlidingSyncVersionBuilder) = this
override fun userAgent(userAgent: String) = this
override fun username(username: String) = this
override fun enableShareHistoryOnInvite(enableShareHistoryOnInvite: Boolean): ClientBuilder = this
override suspend fun buildWithQrCode(qrCodeData: QrCodeData, oidcConfiguration: OidcConfiguration, progressListener: QrLoginProgressListener): Client {
return FakeFfiClient()