change(security and privacy) : makes sure room visibility sections is shown when needed

This commit is contained in:
ganfra 2025-11-19 15:32:51 +01:00
parent 176c18d55d
commit 433f9e2886

View file

@ -38,7 +38,10 @@ data class SecurityAndPrivacyState(
}.toImmutableSet() }.toImmutableSet()
val showRoomAccessSection = permissions.canChangeRoomAccess val showRoomAccessSection = permissions.canChangeRoomAccess
val showRoomVisibilitySections = permissions.canChangeRoomVisibility && editedSettings.roomAccess != SecurityAndPrivacyRoomAccess.InviteOnly
val showRoomVisibilitySections = permissions.canChangeRoomVisibility &&
editedSettings.roomAccess.canConfigureRoomVisibility()
val showHistoryVisibilitySection = permissions.canChangeHistoryVisibility && !isSpace val showHistoryVisibilitySection = permissions.canChangeHistoryVisibility && !isSpace
val showEncryptionSection = permissions.canChangeEncryption && !isSpace val showEncryptionSection = permissions.canChangeEncryption && !isSpace
} }
@ -72,7 +75,14 @@ enum class SecurityAndPrivacyRoomAccess {
InviteOnly, InviteOnly,
AskToJoin, AskToJoin,
Anyone, Anyone,
SpaceMember SpaceMember;
fun canConfigureRoomVisibility(): Boolean {
return when (this) {
InviteOnly, SpaceMember -> false
AskToJoin, Anyone -> true
}
}
} }
sealed class SecurityAndPrivacyFailures : Exception() { sealed class SecurityAndPrivacyFailures : Exception() {