Remove FF SpaceSettings
This commit is contained in:
parent
cac4dad920
commit
2a1f706591
7 changed files with 4 additions and 61 deletions
|
|
@ -78,9 +78,6 @@ class SecurityAndPrivacyPresenter(
|
||||||
val isKnockEnabled by remember {
|
val isKnockEnabled by remember {
|
||||||
featureFlagService.isFeatureEnabledFlow(FeatureFlags.Knock)
|
featureFlagService.isFeatureEnabledFlow(FeatureFlags.Knock)
|
||||||
}.collectAsState(false)
|
}.collectAsState(false)
|
||||||
val isSpaceSettingsEnabled by remember {
|
|
||||||
featureFlagService.isFeatureEnabledFlow(FeatureFlags.SpaceSettings)
|
|
||||||
}.collectAsState(false)
|
|
||||||
|
|
||||||
val saveAction = remember { mutableStateOf<AsyncAction<Unit>>(AsyncAction.Uninitialized) }
|
val saveAction = remember { mutableStateOf<AsyncAction<Unit>>(AsyncAction.Uninitialized) }
|
||||||
val homeserverName = remember { matrixClient.userIdServerName() }
|
val homeserverName = remember { matrixClient.userIdServerName() }
|
||||||
|
|
@ -248,7 +245,6 @@ class SecurityAndPrivacyPresenter(
|
||||||
saveAction = saveAction.value,
|
saveAction = saveAction.value,
|
||||||
permissions = permissions,
|
permissions = permissions,
|
||||||
isSpace = roomInfo.isSpace,
|
isSpace = roomInfo.isSpace,
|
||||||
isSpaceSettingsEnabled = isSpaceSettingsEnabled,
|
|
||||||
selectableJoinedSpaces = selectableJoinedSpaces,
|
selectableJoinedSpaces = selectableJoinedSpaces,
|
||||||
spaceSelectionMode = spaceSelectionMode,
|
spaceSelectionMode = spaceSelectionMode,
|
||||||
eventSink = ::handleEvent,
|
eventSink = ::handleEvent,
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,6 @@ data class SecurityAndPrivacyState(
|
||||||
val homeserverName: String,
|
val homeserverName: String,
|
||||||
val showEnableEncryptionConfirmation: Boolean,
|
val showEnableEncryptionConfirmation: Boolean,
|
||||||
private val isKnockEnabled: Boolean,
|
private val isKnockEnabled: Boolean,
|
||||||
private val isSpaceSettingsEnabled: Boolean,
|
|
||||||
val saveAction: AsyncAction<Unit>,
|
val saveAction: AsyncAction<Unit>,
|
||||||
val isSpace: Boolean,
|
val isSpace: Boolean,
|
||||||
private val permissions: SecurityAndPrivacyPermissions,
|
private val permissions: SecurityAndPrivacyPermissions,
|
||||||
|
|
@ -37,7 +36,7 @@ data class SecurityAndPrivacyState(
|
||||||
private val spaceSelectionMode: SpaceSelectionMode,
|
private val spaceSelectionMode: SpaceSelectionMode,
|
||||||
val eventSink: (SecurityAndPrivacyEvent) -> Unit
|
val eventSink: (SecurityAndPrivacyEvent) -> Unit
|
||||||
) {
|
) {
|
||||||
val isSpaceMemberSelectable = isSpaceSettingsEnabled && spaceSelectionMode != SpaceSelectionMode.None
|
val isSpaceMemberSelectable = spaceSelectionMode != SpaceSelectionMode.None
|
||||||
|
|
||||||
// Show SpaceMember option in two cases:
|
// Show SpaceMember option in two cases:
|
||||||
// - SpaceMember is the current saved value
|
// - SpaceMember is the current saved value
|
||||||
|
|
|
||||||
|
|
@ -138,7 +138,6 @@ fun aSecurityAndPrivacyState(
|
||||||
isSpace: Boolean = false,
|
isSpace: Boolean = false,
|
||||||
selectableJoinedSpaces: Set<SpaceRoom> = emptySet(),
|
selectableJoinedSpaces: Set<SpaceRoom> = emptySet(),
|
||||||
spaceSelectionMode: SpaceSelectionMode = SpaceSelectionMode.None,
|
spaceSelectionMode: SpaceSelectionMode = SpaceSelectionMode.None,
|
||||||
isSpaceSettingsEnabled: Boolean = true,
|
|
||||||
eventSink: (SecurityAndPrivacyEvent) -> Unit = {}
|
eventSink: (SecurityAndPrivacyEvent) -> Unit = {}
|
||||||
) = SecurityAndPrivacyState(
|
) = SecurityAndPrivacyState(
|
||||||
editedSettings = editedSettings,
|
editedSettings = editedSettings,
|
||||||
|
|
@ -151,6 +150,5 @@ fun aSecurityAndPrivacyState(
|
||||||
isSpace = isSpace,
|
isSpace = isSpace,
|
||||||
selectableJoinedSpaces = selectableJoinedSpaces.toImmutableSet(),
|
selectableJoinedSpaces = selectableJoinedSpaces.toImmutableSet(),
|
||||||
spaceSelectionMode = spaceSelectionMode,
|
spaceSelectionMode = spaceSelectionMode,
|
||||||
isSpaceSettingsEnabled = isSpaceSettingsEnabled,
|
|
||||||
eventSink = eventSink,
|
eventSink = eventSink,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -416,11 +416,6 @@ class SecurityAndPrivacyPresenterTest {
|
||||||
val presenter = createSecurityAndPrivacyPresenter(
|
val presenter = createSecurityAndPrivacyPresenter(
|
||||||
room = room,
|
room = room,
|
||||||
matrixClient = client,
|
matrixClient = client,
|
||||||
featureFlagService = FakeFeatureFlagService(
|
|
||||||
initialState = mapOf(
|
|
||||||
FeatureFlags.SpaceSettings.key to true,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
presenter.test {
|
presenter.test {
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
|
|
@ -461,11 +456,6 @@ class SecurityAndPrivacyPresenterTest {
|
||||||
room = room,
|
room = room,
|
||||||
navigator = navigator,
|
navigator = navigator,
|
||||||
matrixClient = client,
|
matrixClient = client,
|
||||||
featureFlagService = FakeFeatureFlagService(
|
|
||||||
initialState = mapOf(
|
|
||||||
FeatureFlags.SpaceSettings.key to true,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
presenter.test {
|
presenter.test {
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
|
|
@ -587,7 +577,6 @@ class SecurityAndPrivacyPresenterTest {
|
||||||
featureFlagService = FakeFeatureFlagService(
|
featureFlagService = FakeFeatureFlagService(
|
||||||
initialState = mapOf(
|
initialState = mapOf(
|
||||||
FeatureFlags.Knock.key to true,
|
FeatureFlags.Knock.key to true,
|
||||||
FeatureFlags.SpaceSettings.key to true,
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
@ -633,7 +622,6 @@ class SecurityAndPrivacyPresenterTest {
|
||||||
featureFlagService = FakeFeatureFlagService(
|
featureFlagService = FakeFeatureFlagService(
|
||||||
initialState = mapOf(
|
initialState = mapOf(
|
||||||
FeatureFlags.Knock.key to true,
|
FeatureFlags.Knock.key to true,
|
||||||
FeatureFlags.SpaceSettings.key to true,
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
@ -859,9 +847,6 @@ class SecurityAndPrivacyPresenterTest {
|
||||||
val presenter = createSecurityAndPrivacyPresenter(
|
val presenter = createSecurityAndPrivacyPresenter(
|
||||||
room = room,
|
room = room,
|
||||||
matrixClient = client,
|
matrixClient = client,
|
||||||
featureFlagService = FakeFeatureFlagService(
|
|
||||||
initialState = mapOf(FeatureFlags.SpaceSettings.key to true)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
presenter.test {
|
presenter.test {
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
|
|
@ -901,9 +886,6 @@ class SecurityAndPrivacyPresenterTest {
|
||||||
val presenter = createSecurityAndPrivacyPresenter(
|
val presenter = createSecurityAndPrivacyPresenter(
|
||||||
room = room,
|
room = room,
|
||||||
matrixClient = client,
|
matrixClient = client,
|
||||||
featureFlagService = FakeFeatureFlagService(
|
|
||||||
initialState = mapOf(FeatureFlags.SpaceSettings.key to true)
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
presenter.test {
|
presenter.test {
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
|
|
@ -975,7 +957,6 @@ class SecurityAndPrivacyPresenterTest {
|
||||||
featureFlagService = FakeFeatureFlagService(
|
featureFlagService = FakeFeatureFlagService(
|
||||||
initialState = mapOf(
|
initialState = mapOf(
|
||||||
FeatureFlags.Knock.key to true,
|
FeatureFlags.Knock.key to true,
|
||||||
FeatureFlags.SpaceSettings.key to true,
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -29,8 +29,6 @@ import io.element.android.libraries.architecture.AsyncAction
|
||||||
import io.element.android.libraries.architecture.Presenter
|
import io.element.android.libraries.architecture.Presenter
|
||||||
import io.element.android.libraries.core.coroutine.mapState
|
import io.element.android.libraries.core.coroutine.mapState
|
||||||
import io.element.android.libraries.di.annotations.SessionCoroutineScope
|
import io.element.android.libraries.di.annotations.SessionCoroutineScope
|
||||||
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.core.RoomId
|
import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
import io.element.android.libraries.matrix.api.core.toRoomIdOrAlias
|
import io.element.android.libraries.matrix.api.core.toRoomIdOrAlias
|
||||||
|
|
@ -66,7 +64,6 @@ class SpacePresenter(
|
||||||
private val joinRoom: JoinRoom,
|
private val joinRoom: JoinRoom,
|
||||||
private val acceptDeclineInvitePresenter: Presenter<AcceptDeclineInviteState>,
|
private val acceptDeclineInvitePresenter: Presenter<AcceptDeclineInviteState>,
|
||||||
@SessionCoroutineScope private val sessionCoroutineScope: CoroutineScope,
|
@SessionCoroutineScope private val sessionCoroutineScope: CoroutineScope,
|
||||||
private val featureFlagService: FeatureFlagService,
|
|
||||||
private val spaceService: SpaceService,
|
private val spaceService: SpaceService,
|
||||||
) : Presenter<SpaceState> {
|
) : Presenter<SpaceState> {
|
||||||
private var children by mutableStateOf<ImmutableList<SpaceRoom>>(persistentListOf())
|
private var children by mutableStateOf<ImmutableList<SpaceRoom>>(persistentListOf())
|
||||||
|
|
@ -99,16 +96,13 @@ class SpacePresenter(
|
||||||
val permissions by room.permissionsAsState(SpacePermissions.DEFAULT) { perms ->
|
val permissions by room.permissionsAsState(SpacePermissions.DEFAULT) { perms ->
|
||||||
perms.spacePermissions()
|
perms.spacePermissions()
|
||||||
}
|
}
|
||||||
val isSpaceSettingsEnabled by remember {
|
|
||||||
featureFlagService.isFeatureEnabledFlow(FeatureFlags.SpaceSettings)
|
|
||||||
}.collectAsState(false)
|
|
||||||
|
|
||||||
val roomInfo by room.roomInfoFlow.collectAsState()
|
val roomInfo by room.roomInfoFlow.collectAsState()
|
||||||
val canAccessSpaceSettings by remember {
|
val canAccessSpaceSettings by remember {
|
||||||
derivedStateOf { isSpaceSettingsEnabled && permissions.settingsPermissions.hasAny(roomInfo.joinRule) }
|
derivedStateOf { permissions.settingsPermissions.hasAny(roomInfo.joinRule) }
|
||||||
}
|
}
|
||||||
val canEditSpaceGraph by remember {
|
val canEditSpaceGraph by remember {
|
||||||
derivedStateOf { isSpaceSettingsEnabled && permissions.canEditSpaceGraph }
|
derivedStateOf { permissions.canEditSpaceGraph }
|
||||||
}
|
}
|
||||||
val (joinActions, setJoinActions) = remember { mutableStateOf(emptyMap<RoomId, AsyncAction<Unit>>()) }
|
val (joinActions, setJoinActions) = remember { mutableStateOf(emptyMap<RoomId, AsyncAction<Unit>>()) }
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,6 @@ import io.element.android.features.invite.api.toInviteData
|
||||||
import io.element.android.features.invite.test.InMemorySeenInvitesStore
|
import io.element.android.features.invite.test.InMemorySeenInvitesStore
|
||||||
import io.element.android.libraries.architecture.AsyncAction
|
import io.element.android.libraries.architecture.AsyncAction
|
||||||
import io.element.android.libraries.architecture.Presenter
|
import io.element.android.libraries.architecture.Presenter
|
||||||
import io.element.android.libraries.featureflag.api.FeatureFlags
|
|
||||||
import io.element.android.libraries.featureflag.test.FakeFeatureFlagService
|
|
||||||
import io.element.android.libraries.matrix.api.MatrixClient
|
import io.element.android.libraries.matrix.api.MatrixClient
|
||||||
import io.element.android.libraries.matrix.api.core.RoomId
|
import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
import io.element.android.libraries.matrix.api.core.RoomIdOrAlias
|
import io.element.android.libraries.matrix.api.core.RoomIdOrAlias
|
||||||
|
|
@ -75,16 +73,7 @@ class SpacePresenterTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - canAccessSpaceSettings false when space settings ff is enabled but no permissions`() = runTest {
|
fun `present - canAccessSpaceSettings true when has permissions`() = runTest {
|
||||||
val presenter = createSpacePresenter(spaceSettingsEnabled = true)
|
|
||||||
presenter.test {
|
|
||||||
val state = awaitItem()
|
|
||||||
assertThat(state.canAccessSpaceSettings).isFalse()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun `present - canAccessSpaceSettings true when space settings ff is enabled and has permissions`() = runTest {
|
|
||||||
val room = FakeBaseRoom(
|
val room = FakeBaseRoom(
|
||||||
roomPermissions = FakeRoomPermissions(
|
roomPermissions = FakeRoomPermissions(
|
||||||
canSendState = { true }
|
canSendState = { true }
|
||||||
|
|
@ -92,7 +81,6 @@ class SpacePresenterTest {
|
||||||
)
|
)
|
||||||
val presenter = createSpacePresenter(
|
val presenter = createSpacePresenter(
|
||||||
room = room,
|
room = room,
|
||||||
spaceSettingsEnabled = true,
|
|
||||||
)
|
)
|
||||||
presenter.test {
|
presenter.test {
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
|
|
@ -627,7 +615,6 @@ class SpacePresenterTest {
|
||||||
lambda = { _, _, _ -> Result.success(Unit) },
|
lambda = { _, _, _ -> Result.success(Unit) },
|
||||||
),
|
),
|
||||||
acceptDeclineInvitePresenter: Presenter<AcceptDeclineInviteState> = Presenter { anAcceptDeclineInviteState() },
|
acceptDeclineInvitePresenter: Presenter<AcceptDeclineInviteState> = Presenter { anAcceptDeclineInviteState() },
|
||||||
spaceSettingsEnabled: Boolean = false,
|
|
||||||
spaceService: FakeSpaceService = FakeSpaceService(),
|
spaceService: FakeSpaceService = FakeSpaceService(),
|
||||||
): SpacePresenter {
|
): SpacePresenter {
|
||||||
return SpacePresenter(
|
return SpacePresenter(
|
||||||
|
|
@ -638,11 +625,6 @@ class SpacePresenterTest {
|
||||||
joinRoom = joinRoom,
|
joinRoom = joinRoom,
|
||||||
acceptDeclineInvitePresenter = acceptDeclineInvitePresenter,
|
acceptDeclineInvitePresenter = acceptDeclineInvitePresenter,
|
||||||
sessionCoroutineScope = this,
|
sessionCoroutineScope = this,
|
||||||
featureFlagService = FakeFeatureFlagService(
|
|
||||||
initialState = mapOf(
|
|
||||||
FeatureFlags.SpaceSettings.key to spaceSettingsEnabled,
|
|
||||||
)
|
|
||||||
),
|
|
||||||
spaceService = spaceService,
|
spaceService = spaceService,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -77,13 +77,6 @@ enum class FeatureFlags(
|
||||||
defaultValue = { true },
|
defaultValue = { true },
|
||||||
isFinished = false,
|
isFinished = false,
|
||||||
),
|
),
|
||||||
SpaceSettings(
|
|
||||||
key = "feature.spaceSettings",
|
|
||||||
title = "Space settings",
|
|
||||||
description = "Allow managing space settings such as details, permissions and privacy.",
|
|
||||||
defaultValue = { true },
|
|
||||||
isFinished = false,
|
|
||||||
),
|
|
||||||
RoomListSpaceFilters(
|
RoomListSpaceFilters(
|
||||||
key = "feature.roomListSpaceFilters",
|
key = "feature.roomListSpaceFilters",
|
||||||
title = "Room list space filters",
|
title = "Room list space filters",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue