diff --git a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListState.kt b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListState.kt index 9f5b0d6b0d..c127dbdd2a 100644 --- a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListState.kt +++ b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListState.kt @@ -41,7 +41,7 @@ data class RoomListState( val acceptDeclineInviteState: AcceptDeclineInviteState, val eventSink: (RoomListEvents) -> Unit, ) { - val displayFilters = filtersState.isFeatureEnabled && contentState is RoomListContentState.Rooms + val displayFilters = contentState is RoomListContentState.Rooms val displayActions = contentState !is RoomListContentState.Migration sealed interface ContextMenu { diff --git a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListStateProvider.kt b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListStateProvider.kt index 976040b5a7..fe000c948e 100644 --- a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListStateProvider.kt +++ b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListStateProvider.kt @@ -52,7 +52,6 @@ open class RoomListStateProvider : PreviewParameterProvider { aRoomListState(contentState = aSkeletonContentState()), aRoomListState(matrixUser = MatrixUser(userId = UserId("@id:domain")), contentState = aMigrationContentState()), aRoomListState(searchState = aRoomListSearchState(isSearchActive = true, query = "Test")), - aRoomListState(filtersState = aRoomListFiltersState(isFeatureEnabled = true)), ) } @@ -64,7 +63,7 @@ internal fun aRoomListState( contextMenu: RoomListState.ContextMenu = RoomListState.ContextMenu.Hidden, leaveRoomState: LeaveRoomState = aLeaveRoomState(), searchState: RoomListSearchState = aRoomListSearchState(), - filtersState: RoomListFiltersState = aRoomListFiltersState(isFeatureEnabled = false), + filtersState: RoomListFiltersState = aRoomListFiltersState(), contentState: RoomListContentState = aRoomsContentState(), acceptDeclineInviteState: AcceptDeclineInviteState = anAcceptDeclineInviteState(), eventSink: (RoomListEvents) -> Unit = {} diff --git a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersPresenter.kt b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersPresenter.kt index 8d1ec0e86b..4292492af5 100644 --- a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersPresenter.kt +++ b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersPresenter.kt @@ -22,8 +22,6 @@ import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import io.element.android.features.roomlist.impl.filters.selection.FilterSelectionStrategy 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.roomlist.RoomListService import kotlinx.collections.immutable.toPersistentList import javax.inject.Inject @@ -31,12 +29,10 @@ import io.element.android.libraries.matrix.api.roomlist.RoomListFilter as Matrix class RoomListFiltersPresenter @Inject constructor( private val roomListService: RoomListService, - private val featureFlagService: FeatureFlagService, private val filterSelectionStrategy: FilterSelectionStrategy, ) : Presenter { @Composable override fun present(): RoomListFiltersState { - val isFeatureEnabled by featureFlagService.isFeatureEnabledFlow(FeatureFlags.RoomListFilters).collectAsState(false) val filters by filterSelectionStrategy.filterSelectionStates.collectAsState() fun handleEvents(event: RoomListFiltersEvents) { @@ -50,32 +46,25 @@ class RoomListFiltersPresenter @Inject constructor( } } - LaunchedEffect(isFeatureEnabled) { - if (!isFeatureEnabled) { - filterSelectionStrategy.clear() - } - } - LaunchedEffect(filters) { val allRoomsFilter = MatrixRoomListFilter.All( filters .filter { it.isSelected } .map { roomListFilter -> - when (roomListFilter.filter) { - RoomListFilter.Rooms -> MatrixRoomListFilter.Category.Group - RoomListFilter.People -> MatrixRoomListFilter.Category.People - RoomListFilter.Unread -> MatrixRoomListFilter.Unread - RoomListFilter.Favourites -> MatrixRoomListFilter.Favorite - RoomListFilter.Invites -> MatrixRoomListFilter.Invite + when (roomListFilter.filter) { + RoomListFilter.Rooms -> MatrixRoomListFilter.Category.Group + RoomListFilter.People -> MatrixRoomListFilter.Category.People + RoomListFilter.Unread -> MatrixRoomListFilter.Unread + RoomListFilter.Favourites -> MatrixRoomListFilter.Favorite + RoomListFilter.Invites -> MatrixRoomListFilter.Invite + } } - } ) roomListService.allRooms.updateFilter(allRoomsFilter) } return RoomListFiltersState( filterSelectionStates = filters.toPersistentList(), - isFeatureEnabled = isFeatureEnabled, eventSink = ::handleEvents ) } diff --git a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersState.kt b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersState.kt index 14850ef82e..af89e84091 100644 --- a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersState.kt +++ b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersState.kt @@ -22,7 +22,6 @@ import kotlinx.collections.immutable.toPersistentList data class RoomListFiltersState( val filterSelectionStates: ImmutableList, - val isFeatureEnabled: Boolean, val eventSink: (RoomListFiltersEvents) -> Unit, ) { val hasAnyFilterSelected = filterSelectionStates.any { it.isSelected } diff --git a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersStateProvider.kt b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersStateProvider.kt index 00d1352728..298c493800 100644 --- a/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersStateProvider.kt +++ b/features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersStateProvider.kt @@ -32,10 +32,8 @@ class RoomListFiltersStateProvider : PreviewParameterProvider = RoomListFilter.entries.map { FilterSelectionState(it, isSelected = false) }, - isFeatureEnabled: Boolean = true, eventSink: (RoomListFiltersEvents) -> Unit = {}, ) = RoomListFiltersState( filterSelectionStates = filterSelectionStates.toImmutableList(), - isFeatureEnabled = isFeatureEnabled, eventSink = eventSink, ) diff --git a/features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersPresenterTests.kt b/features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersPresenterTests.kt index 0a81f546c5..8d1fa69276 100644 --- a/features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersPresenterTests.kt +++ b/features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersPresenterTests.kt @@ -22,8 +22,6 @@ import app.cash.turbine.test import com.google.common.truth.Truth.assertThat import io.element.android.features.roomlist.impl.filters.selection.DefaultFilterSelectionStrategy import io.element.android.features.roomlist.impl.filters.selection.FilterSelectionState -import io.element.android.libraries.featureflag.api.FeatureFlagService -import io.element.android.libraries.featureflag.test.FakeFeatureFlagService import io.element.android.libraries.matrix.api.roomlist.RoomListService import io.element.android.libraries.matrix.test.roomlist.FakeRoomListService import io.element.android.tests.testutils.awaitLastSequentialItem @@ -120,11 +118,9 @@ private fun filterSelectionState(filter: RoomListFilter, selected: Boolean) = Fi private fun createRoomListFiltersPresenter( roomListService: RoomListService = FakeRoomListService(), - featureFlagService: FeatureFlagService = FakeFeatureFlagService(), ): RoomListFiltersPresenter { return RoomListFiltersPresenter( roomListService = roomListService, - featureFlagService = featureFlagService, filterSelectionStrategy = DefaultFilterSelectionStrategy(), ) } 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 765e97f851..98e3818ad3 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 @@ -75,13 +75,6 @@ enum class FeatureFlags( defaultValue = true, isFinished = false, ), - RoomListFilters( - key = "feature.roomlistfilters", - title = "Room list filters", - description = "Allow user to filter the room list", - defaultValue = true, - isFinished = false, - ), RoomDirectorySearch( key = "feature.roomdirectorysearch", title = "Room directory search", diff --git a/libraries/featureflag/impl/src/main/kotlin/io/element/android/libraries/featureflag/impl/StaticFeatureFlagProvider.kt b/libraries/featureflag/impl/src/main/kotlin/io/element/android/libraries/featureflag/impl/StaticFeatureFlagProvider.kt index 43fc0f0823..2f01633858 100644 --- a/libraries/featureflag/impl/src/main/kotlin/io/element/android/libraries/featureflag/impl/StaticFeatureFlagProvider.kt +++ b/libraries/featureflag/impl/src/main/kotlin/io/element/android/libraries/featureflag/impl/StaticFeatureFlagProvider.kt @@ -40,7 +40,6 @@ class StaticFeatureFlagProvider @Inject constructor() : FeatureFlags.PinUnlock -> true FeatureFlags.Mentions -> true FeatureFlags.MarkAsUnread -> true - FeatureFlags.RoomListFilters -> true FeatureFlags.RoomDirectorySearch -> false } } else {