Transform MessageEventType and StateEventType into sealed interfaces to handle the Custom variant, also add missing variants

This commit is contained in:
Jorge Martín 2025-12-22 10:09:37 +01:00 committed by Jorge Martin Espinosa
parent 0ed40c562d
commit a8ffe46d99
16 changed files with 230 additions and 164 deletions

View file

@ -1236,7 +1236,7 @@ class MessagesPresenterTest {
) = FakeRoomPermissions(
canSendState = { type ->
when (type) {
StateEventType.CALL_MEMBER -> canStartCall
StateEventType.CallMember -> canStartCall
else -> lambdaError()
}
},

View file

@ -230,7 +230,7 @@ class RoomCallStatePresenterTest {
return FakeRoomPermissions(
canSendState = { stateEvent ->
when (stateEvent) {
StateEventType.CALL_MEMBER -> canJoinCall
StateEventType.CallMember -> canJoinCall
else -> lambdaError()
}
}

View file

@ -643,14 +643,14 @@ class RoomDetailsPresenterTest {
canRedactOwn = canRedactOwn,
canSendState = { eventType ->
when (eventType) {
StateEventType.ROOM_JOIN_RULES -> canChangeRoomAccess
StateEventType.ROOM_HISTORY_VISIBILITY -> canChangeHistoryVisibility
StateEventType.ROOM_ENCRYPTION -> canChangeEncryption
StateEventType.ROOM_CANONICAL_ALIAS -> canChangeRoomVisibility
StateEventType.ROOM_AVATAR -> canChangeAvatar
StateEventType.ROOM_NAME -> canChangeName
StateEventType.ROOM_TOPIC -> canChangeTopic
StateEventType.ROOM_POWER_LEVELS -> canChangePowerLevels
StateEventType.RoomJoinRules -> canChangeRoomAccess
StateEventType.RoomHistoryVisibility -> canChangeHistoryVisibility
StateEventType.RoomEncryption -> canChangeEncryption
StateEventType.RoomCanonicalAlias -> canChangeRoomVisibility
StateEventType.RoomAvatar -> canChangeAvatar
StateEventType.RoomName -> canChangeName
StateEventType.RoomTopic -> canChangeTopic
StateEventType.RoomPowerLevels -> canChangePowerLevels
else -> lambdaError()
}
}

View file

@ -30,8 +30,8 @@ data class RoomDetailsEditPermissions(
fun RoomPermissions.roomDetailsEditPermissions(): RoomDetailsEditPermissions {
return RoomDetailsEditPermissions(
canEditName = canOwnUserSendState(StateEventType.ROOM_NAME),
canEditTopic = canOwnUserSendState(StateEventType.ROOM_TOPIC),
canEditAvatar = canOwnUserSendState(StateEventType.ROOM_AVATAR),
canEditName = canOwnUserSendState(StateEventType.RoomName),
canEditTopic = canOwnUserSendState(StateEventType.RoomTopic),
canEditAvatar = canOwnUserSendState(StateEventType.RoomAvatar),
)
}

View file

@ -129,9 +129,9 @@ class RoomDetailsEditPresenterTest {
val room = aJoinedRoom(
canSendState = { stateEventType ->
when (stateEventType) {
StateEventType.ROOM_NAME -> true
StateEventType.ROOM_AVATAR -> false
StateEventType.ROOM_TOPIC -> false
StateEventType.RoomName -> true
StateEventType.RoomAvatar -> false
StateEventType.RoomTopic -> false
else -> lambdaError()
}
}
@ -162,9 +162,9 @@ class RoomDetailsEditPresenterTest {
avatarUrl = AN_AVATAR_URL,
canSendState = { stateEventType ->
when (stateEventType) {
StateEventType.ROOM_NAME -> false
StateEventType.ROOM_AVATAR -> true
StateEventType.ROOM_TOPIC -> false
StateEventType.RoomName -> false
StateEventType.RoomAvatar -> true
StateEventType.RoomTopic -> false
else -> lambdaError()
}
}
@ -194,9 +194,9 @@ class RoomDetailsEditPresenterTest {
avatarUrl = AN_AVATAR_URL,
canSendState = { stateEventType ->
when (stateEventType) {
StateEventType.ROOM_NAME -> false
StateEventType.ROOM_AVATAR -> false
StateEventType.ROOM_TOPIC -> true
StateEventType.RoomName -> false
StateEventType.RoomAvatar -> false
StateEventType.RoomTopic -> true
else -> lambdaError()
}
}

View file

@ -44,9 +44,9 @@ data class SecurityAndPrivacyPermissions(
fun RoomPermissions.securityAndPrivacyPermissions(): SecurityAndPrivacyPermissions {
return SecurityAndPrivacyPermissions(
canChangeRoomAccess = canOwnUserSendState(StateEventType.ROOM_JOIN_RULES),
canChangeHistoryVisibility = canOwnUserSendState(StateEventType.ROOM_HISTORY_VISIBILITY),
canChangeEncryption = canOwnUserSendState(StateEventType.ROOM_ENCRYPTION),
canChangeRoomVisibility = canOwnUserSendState(StateEventType.ROOM_CANONICAL_ALIAS),
canChangeRoomAccess = canOwnUserSendState(StateEventType.RoomJoinRules),
canChangeHistoryVisibility = canOwnUserSendState(StateEventType.RoomHistoryVisibility),
canChangeEncryption = canOwnUserSendState(StateEventType.RoomEncryption),
canChangeRoomVisibility = canOwnUserSendState(StateEventType.RoomCanonicalAlias),
)
}

View file

@ -387,10 +387,10 @@ class SecurityAndPrivacyPresenterTest {
return FakeRoomPermissions(
canSendState = { eventType ->
when (eventType) {
StateEventType.ROOM_JOIN_RULES -> canChangeRoomAccess
StateEventType.ROOM_HISTORY_VISIBILITY -> canChangeHistoryVisibility
StateEventType.ROOM_ENCRYPTION -> canChangeEncryption
StateEventType.ROOM_CANONICAL_ALIAS -> canChangeRoomVisibility
StateEventType.RoomJoinRules -> canChangeRoomAccess
StateEventType.RoomHistoryVisibility -> canChangeHistoryVisibility
StateEventType.RoomEncryption -> canChangeEncryption
StateEventType.RoomCanonicalAlias -> canChangeRoomVisibility
else -> lambdaError()
}
}

View file

@ -134,7 +134,7 @@ class UserProfilePresenterTest {
roomPermissions = FakeRoomPermissions(
canSendState = { type ->
when (type) {
StateEventType.CALL_MEMBER -> canUserJoinCall
StateEventType.CallMember -> canUserJoinCall
else -> lambdaError()
}
}