Browse Source

Merge pull request #2753 from element-hq/feature/bma/removeFlagRoomListFilters

Remove flag RoomListFilters.
pull/2755/head
Benoit Marty 5 months ago committed by GitHub
parent
commit
1fc01c91c2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 2
      features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListState.kt
  2. 3
      features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListStateProvider.kt
  3. 11
      features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersPresenter.kt
  4. 1
      features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersState.kt
  5. 2
      features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersStateProvider.kt
  6. 4
      features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersPresenterTests.kt
  7. 7
      libraries/featureflag/api/src/main/kotlin/io/element/android/libraries/featureflag/api/FeatureFlags.kt
  8. 1
      libraries/featureflag/impl/src/main/kotlin/io/element/android/libraries/featureflag/impl/StaticFeatureFlagProvider.kt
  9. 1
      samples/minimal/src/main/kotlin/io/element/android/samples/minimal/RoomListScreen.kt
  10. 4
      tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_0,NEXUS_5,1.0,en].png
  11. 4
      tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_1,NEXUS_5,1.0,en].png
  12. 3
      tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_11,NEXUS_5,1.0,en].png
  13. 4
      tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_2,NEXUS_5,1.0,en].png
  14. 4
      tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_6,NEXUS_5,1.0,en].png
  15. 4
      tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_0,NEXUS_5,1.0,en].png
  16. 4
      tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_1,NEXUS_5,1.0,en].png
  17. 3
      tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_11,NEXUS_5,1.0,en].png
  18. 4
      tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_2,NEXUS_5,1.0,en].png
  19. 4
      tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_6,NEXUS_5,1.0,en].png

2
features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListState.kt

@ -41,7 +41,7 @@ data class RoomListState( @@ -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 {

3
features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListStateProvider.kt

@ -52,7 +52,6 @@ open class RoomListStateProvider : PreviewParameterProvider<RoomListState> { @@ -52,7 +52,6 @@ open class RoomListStateProvider : PreviewParameterProvider<RoomListState> {
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( @@ -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 = {}

11
features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersPresenter.kt

@ -22,8 +22,6 @@ import androidx.compose.runtime.collectAsState @@ -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 @@ -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<RoomListFiltersState> {
@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,12 +46,6 @@ class RoomListFiltersPresenter @Inject constructor( @@ -50,12 +46,6 @@ class RoomListFiltersPresenter @Inject constructor(
}
}
LaunchedEffect(isFeatureEnabled) {
if (!isFeatureEnabled) {
filterSelectionStrategy.clear()
}
}
LaunchedEffect(filters) {
val allRoomsFilter = MatrixRoomListFilter.All(
filters
@ -75,7 +65,6 @@ class RoomListFiltersPresenter @Inject constructor( @@ -75,7 +65,6 @@ class RoomListFiltersPresenter @Inject constructor(
return RoomListFiltersState(
filterSelectionStates = filters.toPersistentList(),
isFeatureEnabled = isFeatureEnabled,
eventSink = ::handleEvents
)
}

1
features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersState.kt

@ -22,7 +22,6 @@ import kotlinx.collections.immutable.toPersistentList @@ -22,7 +22,6 @@ import kotlinx.collections.immutable.toPersistentList
data class RoomListFiltersState(
val filterSelectionStates: ImmutableList<FilterSelectionState>,
val isFeatureEnabled: Boolean,
val eventSink: (RoomListFiltersEvents) -> Unit,
) {
val hasAnyFilterSelected = filterSelectionStates.any { it.isSelected }

2
features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersStateProvider.kt

@ -32,10 +32,8 @@ class RoomListFiltersStateProvider : PreviewParameterProvider<RoomListFiltersSta @@ -32,10 +32,8 @@ class RoomListFiltersStateProvider : PreviewParameterProvider<RoomListFiltersSta
fun aRoomListFiltersState(
filterSelectionStates: List<FilterSelectionState> = RoomListFilter.entries.map { FilterSelectionState(it, isSelected = false) },
isFeatureEnabled: Boolean = true,
eventSink: (RoomListFiltersEvents) -> Unit = {},
) = RoomListFiltersState(
filterSelectionStates = filterSelectionStates.toImmutableList(),
isFeatureEnabled = isFeatureEnabled,
eventSink = eventSink,
)

4
features/roomlist/impl/src/test/kotlin/io/element/android/features/roomlist/impl/filters/RoomListFiltersPresenterTests.kt

@ -22,8 +22,6 @@ import app.cash.turbine.test @@ -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 @@ -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(),
)
}

7
libraries/featureflag/api/src/main/kotlin/io/element/android/libraries/featureflag/api/FeatureFlags.kt

@ -75,13 +75,6 @@ enum class FeatureFlags( @@ -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",

1
libraries/featureflag/impl/src/main/kotlin/io/element/android/libraries/featureflag/impl/StaticFeatureFlagProvider.kt

@ -40,7 +40,6 @@ class StaticFeatureFlagProvider @Inject constructor() : @@ -40,7 +40,6 @@ class StaticFeatureFlagProvider @Inject constructor() :
FeatureFlags.PinUnlock -> true
FeatureFlags.Mentions -> true
FeatureFlags.MarkAsUnread -> true
FeatureFlags.RoomListFilters -> true
FeatureFlags.RoomDirectorySearch -> false
}
} else {

1
samples/minimal/src/main/kotlin/io/element/android/samples/minimal/RoomListScreen.kt

@ -129,7 +129,6 @@ class RoomListScreen( @@ -129,7 +129,6 @@ class RoomListScreen(
),
filtersPresenter = RoomListFiltersPresenter(
roomListService = matrixClient.roomListService,
featureFlagService = featureFlagService,
filterSelectionStrategy = DefaultFilterSelectionStrategy(),
),
acceptDeclineInvitePresenter = AcceptDeclineInvitePresenter(

4
tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_0,NEXUS_5,1.0,en].png

@ -1,3 +1,3 @@ @@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1a219527b5d2fc5e581f9e4e5026284a823f0e67b1ec33e12af526b3628d52e6
size 80571
oid sha256:fc44364cd6f9862a9ee949897ca6a6368f4c7fff8f5bf9ec954e4719c6dc2730
size 90423

4
tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_1,NEXUS_5,1.0,en].png

@ -1,3 +1,3 @@ @@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1a219527b5d2fc5e581f9e4e5026284a823f0e67b1ec33e12af526b3628d52e6
size 80571
oid sha256:fc44364cd6f9862a9ee949897ca6a6368f4c7fff8f5bf9ec954e4719c6dc2730
size 90423

3
tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_11,NEXUS_5,1.0,en].png

@ -1,3 +0,0 @@ @@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fc44364cd6f9862a9ee949897ca6a6368f4c7fff8f5bf9ec954e4719c6dc2730
size 90423

4
tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_2,NEXUS_5,1.0,en].png

@ -1,3 +1,3 @@ @@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:873e6d0627246b4e74407020419e5c10dbc1b774c517556d293ef37235002fde
size 80631
oid sha256:40927ec198f59c22edaa1d1c572930f4a78c0ba090326177f67a199eee053e91
size 90770

4
tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Day-1_2_null_6,NEXUS_5,1.0,en].png

@ -1,3 +1,3 @@ @@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bb0cf03d1806a0312e10bc4d758102dd0b872d88106464f2112de2dc505e7e7b
size 102780
oid sha256:beee754b1e12d067b73f1e6928f1c966355da43fd73dc29cf6ac9afc3d23c1b9
size 110781

4
tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_0,NEXUS_5,1.0,en].png

@ -1,3 +1,3 @@ @@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:beeee93d72ab3bdd601dd03eec5beb271181a200c11c042b985b9495ded0c320
size 82878
oid sha256:9a90f232c00dc9b7c1e74b16461e6b91b18f5729f771c3a60f4aa68c29513e97
size 91791

4
tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_1,NEXUS_5,1.0,en].png

@ -1,3 +1,3 @@ @@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:beeee93d72ab3bdd601dd03eec5beb271181a200c11c042b985b9495ded0c320
size 82878
oid sha256:9a90f232c00dc9b7c1e74b16461e6b91b18f5729f771c3a60f4aa68c29513e97
size 91791

3
tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_11,NEXUS_5,1.0,en].png

@ -1,3 +0,0 @@ @@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9a90f232c00dc9b7c1e74b16461e6b91b18f5729f771c3a60f4aa68c29513e97
size 91791

4
tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_2,NEXUS_5,1.0,en].png

@ -1,3 +1,3 @@ @@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:df8723b2a7cbc1720128a0e8dfdbb10cb82394881ad216ed328b15395302e463
size 82322
oid sha256:fddef14145f5c97e7a088985bf5b255de9098bd0ab35153d05da594428e200cb
size 91518

4
tests/uitests/src/test/snapshots/images/ui_S_t[f.roomlist.impl_RoomListView_null_RoomListView-Night-1_3_null_6,NEXUS_5,1.0,en].png

@ -1,3 +1,3 @@ @@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c6d4e0c7fc8607c6d05997e0c1201311cbe05a69851b9828156969f2ce300246
size 104171
oid sha256:c166fbdc31b616aeffa3e31d11b54c7a5505c9a2c0ba2dcbd5179c4e91072e4b
size 111706

Loading…
Cancel
Save