Remove FF RoomListSpaceFilters

This commit is contained in:
Benoit Marty 2026-04-09 11:33:08 +02:00
parent 22553b2596
commit 779813b8a7
3 changed files with 3 additions and 62 deletions

View file

@ -17,8 +17,6 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
import dev.zacsweers.metro.Inject import dev.zacsweers.metro.Inject
import io.element.android.libraries.architecture.Presenter import io.element.android.libraries.architecture.Presenter
import io.element.android.libraries.featureflag.api.FeatureFlagService
import io.element.android.libraries.featureflag.api.FeatureFlags
import io.element.android.libraries.matrix.api.MatrixClient import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.spaces.SpaceServiceFilter import io.element.android.libraries.matrix.api.spaces.SpaceServiceFilter
import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.persistentListOf
@ -27,20 +25,15 @@ import kotlinx.coroutines.flow.map
@Inject @Inject
class SpaceFiltersPresenter( class SpaceFiltersPresenter(
private val featureFlagService: FeatureFlagService,
private val matrixClient: MatrixClient, private val matrixClient: MatrixClient,
) : Presenter<SpaceFiltersState> { ) : Presenter<SpaceFiltersState> {
@Composable @Composable
override fun present(): SpaceFiltersState { override fun present(): SpaceFiltersState {
val isFeatureEnabled by featureFlagService
.isFeatureEnabledFlow(FeatureFlags.RoomListSpaceFilters)
.collectAsState(initial = false)
val availableFilters by remember { val availableFilters by remember {
matrixClient.spaceService.spaceFiltersFlow.map { it.toImmutableList() } matrixClient.spaceService.spaceFiltersFlow.map { it.toImmutableList() }
}.collectAsState(initial = persistentListOf()) }.collectAsState(initial = persistentListOf())
if (!isFeatureEnabled || availableFilters.isEmpty()) { if (availableFilters.isEmpty()) {
return SpaceFiltersState.Disabled return SpaceFiltersState.Disabled
} }

View file

@ -8,8 +8,6 @@
package io.element.android.features.home.impl.spacefilters package io.element.android.features.home.impl.spacefilters
import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat
import io.element.android.libraries.featureflag.api.FeatureFlags
import io.element.android.libraries.featureflag.test.FakeFeatureFlagService
import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.test.FakeMatrixClient import io.element.android.libraries.matrix.test.FakeMatrixClient
import io.element.android.libraries.matrix.test.spaces.FakeSpaceService import io.element.android.libraries.matrix.test.spaces.FakeSpaceService
@ -21,26 +19,9 @@ import org.junit.Test
@OptIn(ExperimentalCoroutinesApi::class) @OptIn(ExperimentalCoroutinesApi::class)
class SpaceFiltersPresenterTest { class SpaceFiltersPresenterTest {
@Test
fun `present - when feature flag is disabled returns Disabled state`() = runTest {
val presenter = createSpaceFiltersPresenter(
featureFlagService = FakeFeatureFlagService(
initialState = mapOf(FeatureFlags.RoomListSpaceFilters.key to false)
)
)
presenter.test {
val state = awaitItem()
assertThat(state).isEqualTo(SpaceFiltersState.Disabled)
}
}
@Test @Test
fun `present - when available filters is empty returns Disabled state`() = runTest { fun `present - when available filters is empty returns Disabled state`() = runTest {
val presenter = createSpaceFiltersPresenter( val presenter = createSpaceFiltersPresenter()
featureFlagService = FakeFeatureFlagService(
initialState = mapOf(FeatureFlags.RoomListSpaceFilters.key to true)
)
)
presenter.test { presenter.test {
val state = awaitLastSequentialItem() val state = awaitLastSequentialItem()
assertThat(state).isEqualTo(SpaceFiltersState.Disabled) assertThat(state).isEqualTo(SpaceFiltersState.Disabled)
@ -48,15 +29,12 @@ class SpaceFiltersPresenterTest {
} }
@Test @Test
fun `present - when feature flag is enabled and filters exist returns Unselected state`() = runTest { fun `present - when filters exist returns Unselected state`() = runTest {
val spaceFilter = aSpaceServiceFilter(displayName = "Test Space") val spaceFilter = aSpaceServiceFilter(displayName = "Test Space")
val spaceService = FakeSpaceService() val spaceService = FakeSpaceService()
val matrixClient = FakeMatrixClient(spaceService = spaceService) val matrixClient = FakeMatrixClient(spaceService = spaceService)
val presenter = createSpaceFiltersPresenter( val presenter = createSpaceFiltersPresenter(
featureFlagService = FakeFeatureFlagService(
initialState = mapOf(FeatureFlags.RoomListSpaceFilters.key to true)
),
matrixClient = matrixClient, matrixClient = matrixClient,
) )
presenter.test { presenter.test {
@ -75,9 +53,6 @@ class SpaceFiltersPresenterTest {
val matrixClient = FakeMatrixClient(spaceService = spaceService) val matrixClient = FakeMatrixClient(spaceService = spaceService)
val presenter = createSpaceFiltersPresenter( val presenter = createSpaceFiltersPresenter(
featureFlagService = FakeFeatureFlagService(
initialState = mapOf(FeatureFlags.RoomListSpaceFilters.key to true)
),
matrixClient = matrixClient, matrixClient = matrixClient,
) )
presenter.test { presenter.test {
@ -99,9 +74,6 @@ class SpaceFiltersPresenterTest {
val matrixClient = FakeMatrixClient(spaceService = spaceService) val matrixClient = FakeMatrixClient(spaceService = spaceService)
val presenter = createSpaceFiltersPresenter( val presenter = createSpaceFiltersPresenter(
featureFlagService = FakeFeatureFlagService(
initialState = mapOf(FeatureFlags.RoomListSpaceFilters.key to true)
),
matrixClient = matrixClient, matrixClient = matrixClient,
) )
presenter.test { presenter.test {
@ -129,9 +101,6 @@ class SpaceFiltersPresenterTest {
val matrixClient = FakeMatrixClient(spaceService = spaceService) val matrixClient = FakeMatrixClient(spaceService = spaceService)
val presenter = createSpaceFiltersPresenter( val presenter = createSpaceFiltersPresenter(
featureFlagService = FakeFeatureFlagService(
initialState = mapOf(FeatureFlags.RoomListSpaceFilters.key to true)
),
matrixClient = matrixClient, matrixClient = matrixClient,
) )
presenter.test { presenter.test {
@ -159,9 +128,6 @@ class SpaceFiltersPresenterTest {
val matrixClient = FakeMatrixClient(spaceService = spaceService) val matrixClient = FakeMatrixClient(spaceService = spaceService)
val presenter = createSpaceFiltersPresenter( val presenter = createSpaceFiltersPresenter(
featureFlagService = FakeFeatureFlagService(
initialState = mapOf(FeatureFlags.RoomListSpaceFilters.key to true)
),
matrixClient = matrixClient, matrixClient = matrixClient,
) )
presenter.test { presenter.test {
@ -196,9 +162,6 @@ class SpaceFiltersPresenterTest {
val matrixClient = FakeMatrixClient(spaceService = spaceService) val matrixClient = FakeMatrixClient(spaceService = spaceService)
val presenter = createSpaceFiltersPresenter( val presenter = createSpaceFiltersPresenter(
featureFlagService = FakeFeatureFlagService(
initialState = mapOf(FeatureFlags.RoomListSpaceFilters.key to true)
),
matrixClient = matrixClient, matrixClient = matrixClient,
) )
presenter.test { presenter.test {
@ -224,9 +187,6 @@ class SpaceFiltersPresenterTest {
val matrixClient = FakeMatrixClient(spaceService = spaceService) val matrixClient = FakeMatrixClient(spaceService = spaceService)
val presenter = createSpaceFiltersPresenter( val presenter = createSpaceFiltersPresenter(
featureFlagService = FakeFeatureFlagService(
initialState = mapOf(FeatureFlags.RoomListSpaceFilters.key to true)
),
matrixClient = matrixClient, matrixClient = matrixClient,
) )
presenter.test { presenter.test {
@ -271,9 +231,6 @@ class SpaceFiltersPresenterTest {
val matrixClient = FakeMatrixClient(spaceService = spaceService) val matrixClient = FakeMatrixClient(spaceService = spaceService)
val presenter = createSpaceFiltersPresenter( val presenter = createSpaceFiltersPresenter(
featureFlagService = FakeFeatureFlagService(
initialState = mapOf(FeatureFlags.RoomListSpaceFilters.key to true)
),
matrixClient = matrixClient, matrixClient = matrixClient,
) )
presenter.test { presenter.test {
@ -302,11 +259,9 @@ class SpaceFiltersPresenterTest {
} }
private fun createSpaceFiltersPresenter( private fun createSpaceFiltersPresenter(
featureFlagService: FakeFeatureFlagService = FakeFeatureFlagService(),
matrixClient: FakeMatrixClient = FakeMatrixClient(), matrixClient: FakeMatrixClient = FakeMatrixClient(),
): SpaceFiltersPresenter { ): SpaceFiltersPresenter {
return SpaceFiltersPresenter( return SpaceFiltersPresenter(
featureFlagService = featureFlagService,
matrixClient = matrixClient, matrixClient = matrixClient,
) )
} }

View file

@ -70,13 +70,6 @@ enum class FeatureFlags(
defaultValue = { false }, defaultValue = { false },
isFinished = false, isFinished = false,
), ),
RoomListSpaceFilters(
key = "feature.roomListSpaceFilters",
title = "Room list space filters",
description = "Allow filtering the room list by space.",
defaultValue = { true },
isFinished = false,
),
PrintLogsToLogcat( PrintLogsToLogcat(
key = "feature.print_logs_to_logcat", key = "feature.print_logs_to_logcat",
title = "Print logs to logcat", title = "Print logs to logcat",