From c42ae056f29d8e9b2401bc71c12e73c96c2ffb61 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 12 Aug 2025 14:47:14 +0200 Subject: [PATCH] Remove FeatureFlag.QrCodeLogin --- .../android/appconfig/OnBoardingConfig.kt | 3 --- .../screens/onboarding/OnBoardingPresenter.kt | 6 +----- .../onboarding/OnBoardingPresenterTest.kt | 19 ------------------- .../libraries/featureflag/api/FeatureFlags.kt | 8 -------- 4 files changed, 1 insertion(+), 35 deletions(-) diff --git a/appconfig/src/main/kotlin/io/element/android/appconfig/OnBoardingConfig.kt b/appconfig/src/main/kotlin/io/element/android/appconfig/OnBoardingConfig.kt index c84cc273bb..b7a057dcee 100644 --- a/appconfig/src/main/kotlin/io/element/android/appconfig/OnBoardingConfig.kt +++ b/appconfig/src/main/kotlin/io/element/android/appconfig/OnBoardingConfig.kt @@ -8,9 +8,6 @@ package io.element.android.appconfig object OnBoardingConfig { - /** Whether the user can use QR code login. */ - const val CAN_LOGIN_WITH_QR_CODE = true - /** Whether the user can create an account using the app. */ const val CAN_CREATE_ACCOUNT = true } diff --git a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/onboarding/OnBoardingPresenter.kt b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/onboarding/OnBoardingPresenter.kt index ba60cfd222..0e545f44e6 100644 --- a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/onboarding/OnBoardingPresenter.kt +++ b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/onboarding/OnBoardingPresenter.kt @@ -27,14 +27,11 @@ import io.element.android.features.login.impl.login.LoginHelper import io.element.android.features.rageshake.api.RageshakeFeatureAvailability import io.element.android.libraries.architecture.Presenter import io.element.android.libraries.core.meta.BuildMeta -import io.element.android.libraries.featureflag.api.FeatureFlagService -import io.element.android.libraries.featureflag.api.FeatureFlags import io.element.android.libraries.ui.utils.MultipleTapToUnlock class OnBoardingPresenter @AssistedInject constructor( @Assisted private val params: OnBoardingNode.Params, private val buildMeta: BuildMeta, - private val featureFlagService: FeatureFlagService, private val enterpriseService: EnterpriseService, private val defaultAccountProviderAccessControl: DefaultAccountProviderAccessControl, private val rageshakeFeatureAvailability: RageshakeFeatureAvailability, @@ -80,8 +77,7 @@ class OnBoardingPresenter @AssistedInject constructor( forcedAccountProvider ?: linkAccountProvider } val canLoginWithQrCode by produceState(initialValue = false, linkAccountProvider) { - value = linkAccountProvider == null && - featureFlagService.isFeatureEnabled(FeatureFlags.QrCodeLogin) + value = linkAccountProvider == null } val canReportBug by remember { rageshakeFeatureAvailability.isAvailable() }.collectAsState(false) var showReportBug by rememberSaveable { mutableStateOf(false) } diff --git a/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/onboarding/OnBoardingPresenterTest.kt b/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/onboarding/OnBoardingPresenterTest.kt index c559db9056..b47adf4cd8 100644 --- a/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/onboarding/OnBoardingPresenterTest.kt +++ b/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/onboarding/OnBoardingPresenterTest.kt @@ -19,9 +19,6 @@ import io.element.android.features.login.impl.web.WebClientUrlForAuthenticationR import io.element.android.features.wellknown.test.FakeWellknownRetriever import io.element.android.libraries.architecture.AsyncData import io.element.android.libraries.core.meta.BuildMeta -import io.element.android.libraries.featureflag.api.FeatureFlagService -import io.element.android.libraries.featureflag.api.FeatureFlags -import io.element.android.libraries.featureflag.test.FakeFeatureFlagService import io.element.android.libraries.matrix.api.auth.MatrixAuthenticationService import io.element.android.libraries.matrix.test.AN_ACCOUNT_PROVIDER import io.element.android.libraries.matrix.test.AN_ACCOUNT_PROVIDER_2 @@ -70,13 +67,8 @@ class OnBoardingPresenterTest { productionApplicationName = "B", desktopApplicationName = "C", ) - val featureFlagService = FakeFeatureFlagService( - initialState = mapOf(FeatureFlags.QrCodeLogin.key to true), - buildMeta = buildMeta, - ) val presenter = createPresenter( buildMeta = buildMeta, - featureFlagService = featureFlagService, enterpriseService = FakeEnterpriseService( defaultHomeserverListResult = { listOf(ACCOUNT_PROVIDER_FROM_CONFIG, EnterpriseService.ANY_ACCOUNT_PROVIDER) }, ), @@ -131,9 +123,6 @@ class OnBoardingPresenterTest { accountProvider = ACCOUNT_PROVIDER_FROM_LINK, loginHint = null, ), - featureFlagService = FakeFeatureFlagService( - initialState = mapOf(FeatureFlags.QrCodeLogin.key to true), - ), enterpriseService = FakeEnterpriseService( defaultHomeserverListResult = { listOf(ACCOUNT_PROVIDER_FROM_CONFIG, EnterpriseService.ANY_ACCOUNT_PROVIDER) }, isAllowedToConnectToHomeserverResult = { true }, @@ -156,9 +145,6 @@ class OnBoardingPresenterTest { accountProvider = ACCOUNT_PROVIDER_FROM_LINK, loginHint = null, ), - featureFlagService = FakeFeatureFlagService( - initialState = mapOf(FeatureFlags.QrCodeLogin.key to true), - ), enterpriseService = FakeEnterpriseService( defaultHomeserverListResult = { listOf(ACCOUNT_PROVIDER_FROM_CONFIG, ACCOUNT_PROVIDER_FROM_CONFIG_2) }, isAllowedToConnectToHomeserverResult = { false }, @@ -181,9 +167,6 @@ class OnBoardingPresenterTest { accountProvider = ACCOUNT_PROVIDER_FROM_LINK, loginHint = null, ), - featureFlagService = FakeFeatureFlagService( - initialState = mapOf(FeatureFlags.QrCodeLogin.key to true), - ), enterpriseService = FakeEnterpriseService( defaultHomeserverListResult = { listOf(ACCOUNT_PROVIDER_FROM_CONFIG) }, ) @@ -237,7 +220,6 @@ class OnBoardingPresenterTest { private fun createPresenter( params: OnBoardingNode.Params = OnBoardingNode.Params(null, null), buildMeta: BuildMeta = aBuildMeta(), - featureFlagService: FeatureFlagService = FakeFeatureFlagService(), enterpriseService: EnterpriseService = FakeEnterpriseService(), wellknownRetriever: WellknownRetriever = FakeWellknownRetriever(), rageshakeFeatureAvailability: () -> Flow = { flowOf(true) }, @@ -245,7 +227,6 @@ private fun createPresenter( ) = OnBoardingPresenter( params = params, buildMeta = buildMeta, - featureFlagService = featureFlagService, enterpriseService = enterpriseService, defaultAccountProviderAccessControl = DefaultAccountProviderAccessControl( enterpriseService = enterpriseService, diff --git a/libraries/featureflag/api/src/main/kotlin/io/element/android/libraries/featureflag/api/FeatureFlags.kt b/libraries/featureflag/api/src/main/kotlin/io/element/android/libraries/featureflag/api/FeatureFlags.kt index f6fe792cff..784e5c3870 100644 --- a/libraries/featureflag/api/src/main/kotlin/io/element/android/libraries/featureflag/api/FeatureFlags.kt +++ b/libraries/featureflag/api/src/main/kotlin/io/element/android/libraries/featureflag/api/FeatureFlags.kt @@ -7,7 +7,6 @@ package io.element.android.libraries.featureflag.api -import io.element.android.appconfig.OnBoardingConfig import io.element.android.libraries.core.meta.BuildMeta import io.element.android.libraries.core.meta.BuildType @@ -35,13 +34,6 @@ enum class FeatureFlags( defaultValue = { false }, isFinished = false, ), - QrCodeLogin( - key = "feature.qrCodeLogin", - title = "Enable login using QR code", - description = "Allow the user to login using the QR code flow", - defaultValue = { OnBoardingConfig.CAN_LOGIN_WITH_QR_CODE }, - isFinished = false, - ), PinnedEvents( key = "feature.pinnedEvents", title = "Pinned Events",