diff --git a/appconfig/src/main/kotlin/io/element/android/appconfig/TimelineConfig.kt b/appconfig/src/main/kotlin/io/element/android/appconfig/TimelineConfig.kt index 539b67825d..d4fe7d1fc5 100644 --- a/appconfig/src/main/kotlin/io/element/android/appconfig/TimelineConfig.kt +++ b/appconfig/src/main/kotlin/io/element/android/appconfig/TimelineConfig.kt @@ -17,19 +17,19 @@ object TimelineConfig { * Event types that will be filtered out from the timeline (i.e. not displayed). */ val excludedEvents = listOf( - StateEventType.CALL_MEMBER, - StateEventType.ROOM_ALIASES, - StateEventType.ROOM_CANONICAL_ALIAS, - StateEventType.ROOM_GUEST_ACCESS, - StateEventType.ROOM_HISTORY_VISIBILITY, - StateEventType.ROOM_JOIN_RULES, - StateEventType.ROOM_POWER_LEVELS, - StateEventType.ROOM_SERVER_ACL, - StateEventType.ROOM_TOMBSTONE, - StateEventType.SPACE_CHILD, - StateEventType.SPACE_PARENT, - StateEventType.POLICY_RULE_ROOM, - StateEventType.POLICY_RULE_SERVER, - StateEventType.POLICY_RULE_USER, + StateEventType.CallMember, + StateEventType.RoomAliases, + StateEventType.RoomCanonicalAlias, + StateEventType.RoomGuestAccess, + StateEventType.RoomHistoryVisibility, + StateEventType.RoomJoinRules, + StateEventType.RoomPowerLevels, + StateEventType.RoomServerAcl, + StateEventType.RoomTombstone, + StateEventType.SpaceChild, + StateEventType.SpaceParent, + StateEventType.PolicyRuleRoom, + StateEventType.PolicyRuleServer, + StateEventType.PolicyRuleUser, ) } diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesPresenterTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesPresenterTest.kt index cd5bcf8a6d..bdf84e9eec 100644 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesPresenterTest.kt +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesPresenterTest.kt @@ -1236,7 +1236,7 @@ class MessagesPresenterTest { ) = FakeRoomPermissions( canSendState = { type -> when (type) { - StateEventType.CALL_MEMBER -> canStartCall + StateEventType.CallMember -> canStartCall else -> lambdaError() } }, diff --git a/features/roomcall/impl/src/test/kotlin/io/element/android/features/roomcall/impl/RoomCallStatePresenterTest.kt b/features/roomcall/impl/src/test/kotlin/io/element/android/features/roomcall/impl/RoomCallStatePresenterTest.kt index bb0dc04c18..bdececf584 100644 --- a/features/roomcall/impl/src/test/kotlin/io/element/android/features/roomcall/impl/RoomCallStatePresenterTest.kt +++ b/features/roomcall/impl/src/test/kotlin/io/element/android/features/roomcall/impl/RoomCallStatePresenterTest.kt @@ -230,7 +230,7 @@ class RoomCallStatePresenterTest { return FakeRoomPermissions( canSendState = { stateEvent -> when (stateEvent) { - StateEventType.CALL_MEMBER -> canJoinCall + StateEventType.CallMember -> canJoinCall else -> lambdaError() } } diff --git a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsPresenterTest.kt b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsPresenterTest.kt index 7d6219004e..5b1fd9474f 100644 --- a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsPresenterTest.kt +++ b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/impl/RoomDetailsPresenterTest.kt @@ -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() } } diff --git a/features/roomdetailsedit/api/src/main/kotlin/io/element/android/features/roomdetailsedit/api/RoomDetailsEditPermissions.kt b/features/roomdetailsedit/api/src/main/kotlin/io/element/android/features/roomdetailsedit/api/RoomDetailsEditPermissions.kt index c400ec1220..8ac2ea5022 100644 --- a/features/roomdetailsedit/api/src/main/kotlin/io/element/android/features/roomdetailsedit/api/RoomDetailsEditPermissions.kt +++ b/features/roomdetailsedit/api/src/main/kotlin/io/element/android/features/roomdetailsedit/api/RoomDetailsEditPermissions.kt @@ -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), ) } diff --git a/features/roomdetailsedit/impl/src/test/kotlin/io/element/android/features/roomdetailsedit/impl/RoomDetailsEditPresenterTest.kt b/features/roomdetailsedit/impl/src/test/kotlin/io/element/android/features/roomdetailsedit/impl/RoomDetailsEditPresenterTest.kt index 9c7f840af2..00dcb961ec 100644 --- a/features/roomdetailsedit/impl/src/test/kotlin/io/element/android/features/roomdetailsedit/impl/RoomDetailsEditPresenterTest.kt +++ b/features/roomdetailsedit/impl/src/test/kotlin/io/element/android/features/roomdetailsedit/impl/RoomDetailsEditPresenterTest.kt @@ -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() } } diff --git a/features/securityandprivacy/api/src/main/kotlin/io/element/android/features/securityandprivacy/api/SecurityAndPrivacyPermissions.kt b/features/securityandprivacy/api/src/main/kotlin/io/element/android/features/securityandprivacy/api/SecurityAndPrivacyPermissions.kt index 3601f2c4e6..f42d792b6f 100644 --- a/features/securityandprivacy/api/src/main/kotlin/io/element/android/features/securityandprivacy/api/SecurityAndPrivacyPermissions.kt +++ b/features/securityandprivacy/api/src/main/kotlin/io/element/android/features/securityandprivacy/api/SecurityAndPrivacyPermissions.kt @@ -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), ) } diff --git a/features/securityandprivacy/impl/src/test/kotlin/io/element/android/features/securityandprivacy/impl/SecurityAndPrivacyPresenterTest.kt b/features/securityandprivacy/impl/src/test/kotlin/io/element/android/features/securityandprivacy/impl/SecurityAndPrivacyPresenterTest.kt index bf26a36ef3..c035b5510d 100644 --- a/features/securityandprivacy/impl/src/test/kotlin/io/element/android/features/securityandprivacy/impl/SecurityAndPrivacyPresenterTest.kt +++ b/features/securityandprivacy/impl/src/test/kotlin/io/element/android/features/securityandprivacy/impl/SecurityAndPrivacyPresenterTest.kt @@ -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() } } diff --git a/features/userprofile/impl/src/test/kotlin/io/element/android/features/userprofile/impl/UserProfilePresenterTest.kt b/features/userprofile/impl/src/test/kotlin/io/element/android/features/userprofile/impl/UserProfilePresenterTest.kt index b10cf3e48d..511effe750 100644 --- a/features/userprofile/impl/src/test/kotlin/io/element/android/features/userprofile/impl/UserProfilePresenterTest.kt +++ b/features/userprofile/impl/src/test/kotlin/io/element/android/features/userprofile/impl/UserProfilePresenterTest.kt @@ -134,7 +134,7 @@ class UserProfilePresenterTest { roomPermissions = FakeRoomPermissions( canSendState = { type -> when (type) { - StateEventType.CALL_MEMBER -> canUserJoinCall + StateEventType.CallMember -> canUserJoinCall else -> lambdaError() } } diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/MessageEventType.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/MessageEventType.kt index adf8ebfed1..1341378b90 100644 --- a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/MessageEventType.kt +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/MessageEventType.kt @@ -12,10 +12,21 @@ import androidx.compose.runtime.Immutable @Immutable sealed interface MessageEventType { + data object Audio : MessageEventType + data object Beacon : MessageEventType data object CallAnswer : MessageEventType + data object CallCandidates : MessageEventType data object CallInvite : MessageEventType data object CallHangup : MessageEventType - data object CallCandidates : MessageEventType + data object CallNegotiate : MessageEventType + data object CallNotify : MessageEventType + data object CallReject : MessageEventType + data object CallSdpStreamMetadataChanged : MessageEventType + data object CallSelectAnswer : MessageEventType + data object Emote : MessageEventType + data object Encrypted : MessageEventType + data object File : MessageEventType + data object Image : MessageEventType data object RtcNotification : MessageEventType data object KeyVerificationReady : MessageEventType data object KeyVerificationStart : MessageEventType @@ -24,10 +35,13 @@ sealed interface MessageEventType { data object KeyVerificationKey : MessageEventType data object KeyVerificationMac : MessageEventType data object KeyVerificationDone : MessageEventType + data object Location : MessageEventType + data object Message : MessageEventType data object Reaction : MessageEventType data object RoomEncrypted : MessageEventType data object RoomMessage : MessageEventType data object RoomRedaction : MessageEventType + data object RtcDecline : MessageEventType data object Sticker : MessageEventType data object PollEnd : MessageEventType data object PollResponse : MessageEventType @@ -35,5 +49,7 @@ sealed interface MessageEventType { data object UnstablePollEnd : MessageEventType data object UnstablePollResponse : MessageEventType data object UnstablePollStart : MessageEventType + data object Video : MessageEventType + data object Voice : MessageEventType data class Other(val type: String) : MessageEventType } diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/StateEventType.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/StateEventType.kt index 452d934212..41d64afff1 100644 --- a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/StateEventType.kt +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/StateEventType.kt @@ -8,27 +8,33 @@ package io.element.android.libraries.matrix.api.room -enum class StateEventType { - POLICY_RULE_ROOM, - POLICY_RULE_SERVER, - POLICY_RULE_USER, - CALL_MEMBER, - ROOM_ALIASES, - ROOM_AVATAR, - ROOM_CANONICAL_ALIAS, - ROOM_CREATE, - ROOM_ENCRYPTION, - ROOM_GUEST_ACCESS, - ROOM_HISTORY_VISIBILITY, - ROOM_JOIN_RULES, - ROOM_MEMBER_EVENT, - ROOM_NAME, - ROOM_PINNED_EVENTS, - ROOM_POWER_LEVELS, - ROOM_SERVER_ACL, - ROOM_THIRD_PARTY_INVITE, - ROOM_TOMBSTONE, - ROOM_TOPIC, - SPACE_CHILD, - SPACE_PARENT +sealed interface StateEventType { + data object PolicyRuleRoom : StateEventType + data object PolicyRuleServer : StateEventType + data object PolicyRuleUser : StateEventType + data object CallMember : StateEventType + data object RoomAliases : StateEventType + data object RoomAvatar : StateEventType + data object RoomCanonicalAlias : StateEventType + data object RoomCreate : StateEventType + data object RoomEncryption : StateEventType + data object RoomGuestAccess : StateEventType + data object RoomHistoryVisibility : StateEventType + data object RoomJoinRules : StateEventType + data object RoomMemberEvent : StateEventType + data object RoomName : StateEventType + data object RoomPinnedEvents : StateEventType + data object RoomPowerLevels : StateEventType + data object RoomServerAcl : StateEventType + data object RoomThirdPartyInvite : StateEventType + data object RoomTombstone : StateEventType + data object RoomTopic : StateEventType + data object SpaceChild : StateEventType + data object SpaceParent : StateEventType + data object BeaconInfo : StateEventType + data object MemberHints : StateEventType + data object RoomImagePack : StateEventType + data object RoomLanguage : StateEventType + + data class Custom(val type: String) : StateEventType } diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/powerlevels/RoomPermissions.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/powerlevels/RoomPermissions.kt index 6b9815d6c9..a12f7d9606 100644 --- a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/powerlevels/RoomPermissions.kt +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/powerlevels/RoomPermissions.kt @@ -136,7 +136,7 @@ interface RoomPermissions : AutoCloseable { * a power levels state event. */ fun RoomPermissions.canEditRolesAndPermissions(): Boolean { - return canOwnUserSendState(StateEventType.ROOM_POWER_LEVELS) + return canOwnUserSendState(StateEventType.RoomPowerLevels) } /** @@ -144,7 +144,7 @@ fun RoomPermissions.canEditRolesAndPermissions(): Boolean { * a call member state event. */ fun RoomPermissions.canCall(): Boolean { - return canOwnUserSendState(StateEventType.CALL_MEMBER) + return canOwnUserSendState(StateEventType.CallMember) } fun Result.use(default: T, block: (RoomPermissions) -> T): T { diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/MessageEventType.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/MessageEventType.kt index dffa5c1acb..47b37b7923 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/MessageEventType.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/MessageEventType.kt @@ -12,11 +12,21 @@ import io.element.android.libraries.matrix.api.room.MessageEventType import org.matrix.rustcomponents.sdk.MessageLikeEventType fun MessageEventType.map(): MessageLikeEventType = when (this) { + MessageEventType.Audio -> MessageLikeEventType.Audio + MessageEventType.Beacon -> MessageLikeEventType.Beacon MessageEventType.CallAnswer -> MessageLikeEventType.CallAnswer + MessageEventType.CallCandidates -> MessageLikeEventType.CallCandidates MessageEventType.CallInvite -> MessageLikeEventType.CallInvite MessageEventType.CallHangup -> MessageLikeEventType.CallHangup - MessageEventType.CallCandidates -> MessageLikeEventType.CallCandidates - MessageEventType.RtcNotification -> MessageLikeEventType.RtcNotification + MessageEventType.CallNegotiate -> MessageLikeEventType.CallNegotiate + MessageEventType.CallNotify -> MessageLikeEventType.CallNotify + MessageEventType.CallReject -> MessageLikeEventType.CallReject + MessageEventType.CallSdpStreamMetadataChanged -> MessageLikeEventType.CallSdpStreamMetadataChanged + MessageEventType.CallSelectAnswer -> MessageLikeEventType.CallSelectAnswer + MessageEventType.Emote -> MessageLikeEventType.Emote + MessageEventType.Encrypted -> MessageLikeEventType.Encrypted + MessageEventType.File -> MessageLikeEventType.File + MessageEventType.Image -> MessageLikeEventType.Image MessageEventType.KeyVerificationReady -> MessageLikeEventType.KeyVerificationReady MessageEventType.KeyVerificationStart -> MessageLikeEventType.KeyVerificationStart MessageEventType.KeyVerificationCancel -> MessageLikeEventType.KeyVerificationCancel @@ -24,17 +34,23 @@ fun MessageEventType.map(): MessageLikeEventType = when (this) { MessageEventType.KeyVerificationKey -> MessageLikeEventType.KeyVerificationKey MessageEventType.KeyVerificationMac -> MessageLikeEventType.KeyVerificationMac MessageEventType.KeyVerificationDone -> MessageLikeEventType.KeyVerificationDone + MessageEventType.Location -> MessageLikeEventType.Location + MessageEventType.Message -> MessageLikeEventType.Message MessageEventType.Reaction -> MessageLikeEventType.Reaction MessageEventType.RoomEncrypted -> MessageLikeEventType.RoomEncrypted MessageEventType.RoomMessage -> MessageLikeEventType.RoomMessage MessageEventType.RoomRedaction -> MessageLikeEventType.RoomRedaction + MessageEventType.RtcDecline -> MessageLikeEventType.RtcDecline MessageEventType.Sticker -> MessageLikeEventType.Sticker MessageEventType.PollEnd -> MessageLikeEventType.PollEnd MessageEventType.PollResponse -> MessageLikeEventType.PollResponse MessageEventType.PollStart -> MessageLikeEventType.PollStart + MessageEventType.RtcNotification -> MessageLikeEventType.RtcNotification MessageEventType.UnstablePollEnd -> MessageLikeEventType.UnstablePollEnd MessageEventType.UnstablePollResponse -> MessageLikeEventType.UnstablePollResponse MessageEventType.UnstablePollStart -> MessageLikeEventType.UnstablePollStart + MessageEventType.Video -> MessageLikeEventType.Video + MessageEventType.Voice -> MessageLikeEventType.Voice is MessageEventType.Other -> MessageLikeEventType.Other(type) } @@ -62,5 +78,21 @@ fun MessageLikeEventType.map(): MessageEventType = when (this) { MessageLikeEventType.UnstablePollEnd -> MessageEventType.UnstablePollEnd MessageLikeEventType.UnstablePollResponse -> MessageEventType.UnstablePollResponse MessageLikeEventType.UnstablePollStart -> MessageEventType.UnstablePollStart + MessageLikeEventType.Audio -> MessageEventType.Audio + MessageLikeEventType.Beacon -> MessageEventType.Beacon + MessageLikeEventType.CallNegotiate -> MessageEventType.CallNegotiate + MessageLikeEventType.CallNotify -> MessageEventType.CallNotify + MessageLikeEventType.CallReject -> MessageEventType.CallReject + MessageLikeEventType.CallSdpStreamMetadataChanged -> MessageEventType.CallSdpStreamMetadataChanged + MessageLikeEventType.CallSelectAnswer -> MessageEventType.CallSelectAnswer + MessageLikeEventType.Emote -> MessageEventType.Emote + MessageLikeEventType.Encrypted -> MessageEventType.Encrypted + MessageLikeEventType.File -> MessageEventType.File + MessageLikeEventType.Image -> MessageEventType.Image + MessageLikeEventType.Location -> MessageEventType.Location + MessageLikeEventType.Message -> MessageEventType.Message + MessageLikeEventType.RtcDecline -> MessageEventType.RtcDecline + MessageLikeEventType.Video -> MessageEventType.Video + MessageLikeEventType.Voice -> MessageEventType.Voice is MessageLikeEventType.Other -> MessageEventType.Other(v1) } diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/StateEventType.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/StateEventType.kt index c1ba8c9728..76fea0beef 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/StateEventType.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/StateEventType.kt @@ -12,51 +12,61 @@ import io.element.android.libraries.matrix.api.room.StateEventType import org.matrix.rustcomponents.sdk.StateEventType as RustStateEventType fun StateEventType.map(): RustStateEventType = when (this) { - StateEventType.POLICY_RULE_ROOM -> RustStateEventType.POLICY_RULE_ROOM - StateEventType.POLICY_RULE_SERVER -> RustStateEventType.POLICY_RULE_SERVER - StateEventType.POLICY_RULE_USER -> RustStateEventType.POLICY_RULE_USER - StateEventType.CALL_MEMBER -> RustStateEventType.CALL_MEMBER - StateEventType.ROOM_ALIASES -> RustStateEventType.ROOM_ALIASES - StateEventType.ROOM_AVATAR -> RustStateEventType.ROOM_AVATAR - StateEventType.ROOM_CANONICAL_ALIAS -> RustStateEventType.ROOM_CANONICAL_ALIAS - StateEventType.ROOM_CREATE -> RustStateEventType.ROOM_CREATE - StateEventType.ROOM_ENCRYPTION -> RustStateEventType.ROOM_ENCRYPTION - StateEventType.ROOM_GUEST_ACCESS -> RustStateEventType.ROOM_GUEST_ACCESS - StateEventType.ROOM_HISTORY_VISIBILITY -> RustStateEventType.ROOM_HISTORY_VISIBILITY - StateEventType.ROOM_JOIN_RULES -> RustStateEventType.ROOM_JOIN_RULES - StateEventType.ROOM_MEMBER_EVENT -> RustStateEventType.ROOM_MEMBER_EVENT - StateEventType.ROOM_NAME -> RustStateEventType.ROOM_NAME - StateEventType.ROOM_PINNED_EVENTS -> RustStateEventType.ROOM_PINNED_EVENTS - StateEventType.ROOM_POWER_LEVELS -> RustStateEventType.ROOM_POWER_LEVELS - StateEventType.ROOM_SERVER_ACL -> RustStateEventType.ROOM_SERVER_ACL - StateEventType.ROOM_THIRD_PARTY_INVITE -> RustStateEventType.ROOM_THIRD_PARTY_INVITE - StateEventType.ROOM_TOMBSTONE -> RustStateEventType.ROOM_TOMBSTONE - StateEventType.ROOM_TOPIC -> RustStateEventType.ROOM_TOPIC - StateEventType.SPACE_CHILD -> RustStateEventType.SPACE_CHILD - StateEventType.SPACE_PARENT -> RustStateEventType.SPACE_PARENT + StateEventType.PolicyRuleRoom -> RustStateEventType.PolicyRuleRoom + StateEventType.PolicyRuleServer -> RustStateEventType.PolicyRuleServer + StateEventType.PolicyRuleUser -> RustStateEventType.PolicyRuleUser + StateEventType.CallMember -> RustStateEventType.CallMember + StateEventType.RoomAliases -> RustStateEventType.RoomAliases + StateEventType.RoomAvatar -> RustStateEventType.RoomAvatar + StateEventType.RoomCanonicalAlias -> RustStateEventType.RoomCanonicalAlias + StateEventType.RoomCreate -> RustStateEventType.RoomCreate + StateEventType.RoomEncryption -> RustStateEventType.RoomEncryption + StateEventType.RoomGuestAccess -> RustStateEventType.RoomGuestAccess + StateEventType.RoomHistoryVisibility -> RustStateEventType.RoomHistoryVisibility + StateEventType.RoomJoinRules -> RustStateEventType.RoomJoinRules + StateEventType.RoomMemberEvent -> RustStateEventType.RoomMemberEvent + StateEventType.RoomName -> RustStateEventType.RoomName + StateEventType.RoomPinnedEvents -> RustStateEventType.RoomPinnedEvents + StateEventType.RoomPowerLevels -> RustStateEventType.RoomPowerLevels + StateEventType.RoomServerAcl -> RustStateEventType.RoomServerAcl + StateEventType.RoomThirdPartyInvite -> RustStateEventType.RoomThirdPartyInvite + StateEventType.RoomTombstone -> RustStateEventType.RoomTombstone + StateEventType.RoomTopic -> RustStateEventType.RoomTopic + StateEventType.SpaceChild -> RustStateEventType.SpaceChild + StateEventType.SpaceParent -> RustStateEventType.SpaceParent + StateEventType.BeaconInfo -> RustStateEventType.BeaconInfo + StateEventType.MemberHints -> RustStateEventType.MemberHints + StateEventType.RoomImagePack -> RustStateEventType.RoomImagePack + StateEventType.RoomLanguage -> RustStateEventType.RoomLanguage + is StateEventType.Custom -> RustStateEventType.Custom(type) } fun RustStateEventType.map(): StateEventType = when (this) { - RustStateEventType.POLICY_RULE_ROOM -> StateEventType.POLICY_RULE_ROOM - RustStateEventType.POLICY_RULE_SERVER -> StateEventType.POLICY_RULE_SERVER - RustStateEventType.POLICY_RULE_USER -> StateEventType.POLICY_RULE_USER - RustStateEventType.CALL_MEMBER -> StateEventType.CALL_MEMBER - RustStateEventType.ROOM_ALIASES -> StateEventType.ROOM_ALIASES - RustStateEventType.ROOM_AVATAR -> StateEventType.ROOM_AVATAR - RustStateEventType.ROOM_CANONICAL_ALIAS -> StateEventType.ROOM_CANONICAL_ALIAS - RustStateEventType.ROOM_CREATE -> StateEventType.ROOM_CREATE - RustStateEventType.ROOM_ENCRYPTION -> StateEventType.ROOM_ENCRYPTION - RustStateEventType.ROOM_GUEST_ACCESS -> StateEventType.ROOM_GUEST_ACCESS - RustStateEventType.ROOM_HISTORY_VISIBILITY -> StateEventType.ROOM_HISTORY_VISIBILITY - RustStateEventType.ROOM_JOIN_RULES -> StateEventType.ROOM_JOIN_RULES - RustStateEventType.ROOM_MEMBER_EVENT -> StateEventType.ROOM_MEMBER_EVENT - RustStateEventType.ROOM_NAME -> StateEventType.ROOM_NAME - RustStateEventType.ROOM_PINNED_EVENTS -> StateEventType.ROOM_PINNED_EVENTS - RustStateEventType.ROOM_POWER_LEVELS -> StateEventType.ROOM_POWER_LEVELS - RustStateEventType.ROOM_SERVER_ACL -> StateEventType.ROOM_SERVER_ACL - RustStateEventType.ROOM_THIRD_PARTY_INVITE -> StateEventType.ROOM_THIRD_PARTY_INVITE - RustStateEventType.ROOM_TOMBSTONE -> StateEventType.ROOM_TOMBSTONE - RustStateEventType.ROOM_TOPIC -> StateEventType.ROOM_TOPIC - RustStateEventType.SPACE_CHILD -> StateEventType.SPACE_CHILD - RustStateEventType.SPACE_PARENT -> StateEventType.SPACE_PARENT + RustStateEventType.PolicyRuleRoom -> StateEventType.PolicyRuleRoom + RustStateEventType.PolicyRuleServer -> StateEventType.PolicyRuleServer + RustStateEventType.PolicyRuleUser -> StateEventType.PolicyRuleUser + RustStateEventType.CallMember -> StateEventType.CallMember + RustStateEventType.RoomAliases -> StateEventType.RoomAliases + RustStateEventType.RoomAvatar -> StateEventType.RoomAvatar + RustStateEventType.RoomCanonicalAlias -> StateEventType.RoomCanonicalAlias + RustStateEventType.RoomCreate -> StateEventType.RoomCreate + RustStateEventType.RoomEncryption -> StateEventType.RoomEncryption + RustStateEventType.RoomGuestAccess -> StateEventType.RoomGuestAccess + RustStateEventType.RoomHistoryVisibility -> StateEventType.RoomHistoryVisibility + RustStateEventType.RoomJoinRules -> StateEventType.RoomJoinRules + RustStateEventType.RoomMemberEvent -> StateEventType.RoomMemberEvent + RustStateEventType.RoomName -> StateEventType.RoomName + RustStateEventType.RoomPinnedEvents -> StateEventType.RoomPinnedEvents + RustStateEventType.RoomPowerLevels -> StateEventType.RoomPowerLevels + RustStateEventType.RoomServerAcl -> StateEventType.RoomServerAcl + RustStateEventType.RoomThirdPartyInvite -> StateEventType.RoomThirdPartyInvite + RustStateEventType.RoomTombstone -> StateEventType.RoomTombstone + RustStateEventType.RoomTopic -> StateEventType.RoomTopic + RustStateEventType.SpaceChild -> StateEventType.SpaceChild + RustStateEventType.SpaceParent -> StateEventType.SpaceParent + RustStateEventType.BeaconInfo -> StateEventType.BeaconInfo + RustStateEventType.MemberHints -> StateEventType.MemberHints + RustStateEventType.RoomImagePack -> StateEventType.RoomImagePack + RustStateEventType.RoomLanguage -> StateEventType.RoomLanguage + is RustStateEventType.Custom -> StateEventType.Custom(value) } diff --git a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/notification/RustNotificationServiceTest.kt b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/notification/RustNotificationServiceTest.kt index df10c163a1..a50fa4c45b 100644 --- a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/notification/RustNotificationServiceTest.kt +++ b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/notification/RustNotificationServiceTest.kt @@ -32,7 +32,7 @@ import kotlinx.coroutines.test.runTest import org.junit.Test import org.matrix.rustcomponents.sdk.NotificationClient import org.matrix.rustcomponents.sdk.NotificationStatus -import org.matrix.rustcomponents.sdk.TimelineEventType +import org.matrix.rustcomponents.sdk.TimelineEventContent class RustNotificationServiceTest { @Test @@ -58,9 +58,9 @@ class RustNotificationServiceTest { @Test fun `test mapping invalid item only drops that item`() = runTest { - val error = IllegalStateException("This event type is not supported") + val error = IllegalStateException("This event content is not supported") val faultyEvent = object : FakeFfiTimelineEvent() { - override fun eventType(): TimelineEventType { + override fun content(): TimelineEventContent { throw error } } diff --git a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/room/StateEventTypeTest.kt b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/room/StateEventTypeTest.kt index 245a321c65..428bb7db7a 100644 --- a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/room/StateEventTypeTest.kt +++ b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/room/StateEventTypeTest.kt @@ -16,53 +16,55 @@ import org.matrix.rustcomponents.sdk.StateEventType as RustStateEventType class StateEventTypeTest { @Test fun `mapping Rust type should work`() { - assertThat(RustStateEventType.CALL_MEMBER.map()).isEqualTo(StateEventType.CALL_MEMBER) - assertThat(RustStateEventType.POLICY_RULE_ROOM.map()).isEqualTo(StateEventType.POLICY_RULE_ROOM) - assertThat(RustStateEventType.POLICY_RULE_SERVER.map()).isEqualTo(StateEventType.POLICY_RULE_SERVER) - assertThat(RustStateEventType.POLICY_RULE_USER.map()).isEqualTo(StateEventType.POLICY_RULE_USER) - assertThat(RustStateEventType.ROOM_ALIASES.map()).isEqualTo(StateEventType.ROOM_ALIASES) - assertThat(RustStateEventType.ROOM_AVATAR.map()).isEqualTo(StateEventType.ROOM_AVATAR) - assertThat(RustStateEventType.ROOM_CANONICAL_ALIAS.map()).isEqualTo(StateEventType.ROOM_CANONICAL_ALIAS) - assertThat(RustStateEventType.ROOM_CREATE.map()).isEqualTo(StateEventType.ROOM_CREATE) - assertThat(RustStateEventType.ROOM_ENCRYPTION.map()).isEqualTo(StateEventType.ROOM_ENCRYPTION) - assertThat(RustStateEventType.ROOM_GUEST_ACCESS.map()).isEqualTo(StateEventType.ROOM_GUEST_ACCESS) - assertThat(RustStateEventType.ROOM_HISTORY_VISIBILITY.map()).isEqualTo(StateEventType.ROOM_HISTORY_VISIBILITY) - assertThat(RustStateEventType.ROOM_JOIN_RULES.map()).isEqualTo(StateEventType.ROOM_JOIN_RULES) - assertThat(RustStateEventType.ROOM_MEMBER_EVENT.map()).isEqualTo(StateEventType.ROOM_MEMBER_EVENT) - assertThat(RustStateEventType.ROOM_NAME.map()).isEqualTo(StateEventType.ROOM_NAME) - assertThat(RustStateEventType.ROOM_PINNED_EVENTS.map()).isEqualTo(StateEventType.ROOM_PINNED_EVENTS) - assertThat(RustStateEventType.ROOM_POWER_LEVELS.map()).isEqualTo(StateEventType.ROOM_POWER_LEVELS) - assertThat(RustStateEventType.ROOM_SERVER_ACL.map()).isEqualTo(StateEventType.ROOM_SERVER_ACL) - assertThat(RustStateEventType.ROOM_THIRD_PARTY_INVITE.map()).isEqualTo(StateEventType.ROOM_THIRD_PARTY_INVITE) - assertThat(RustStateEventType.ROOM_TOMBSTONE.map()).isEqualTo(StateEventType.ROOM_TOMBSTONE) - assertThat(RustStateEventType.ROOM_TOPIC.map()).isEqualTo(StateEventType.ROOM_TOPIC) - assertThat(RustStateEventType.SPACE_CHILD.map()).isEqualTo(StateEventType.SPACE_CHILD) - assertThat(RustStateEventType.SPACE_PARENT.map()).isEqualTo(StateEventType.SPACE_PARENT) + assertThat(RustStateEventType.CallMember.map()).isEqualTo(StateEventType.CallMember) + assertThat(RustStateEventType.PolicyRuleRoom.map()).isEqualTo(StateEventType.PolicyRuleRoom) + assertThat(RustStateEventType.PolicyRuleServer.map()).isEqualTo(StateEventType.PolicyRuleServer) + assertThat(RustStateEventType.PolicyRuleUser.map()).isEqualTo(StateEventType.PolicyRuleUser) + assertThat(RustStateEventType.RoomAliases.map()).isEqualTo(StateEventType.RoomAliases) + assertThat(RustStateEventType.RoomAvatar.map()).isEqualTo(StateEventType.RoomAvatar) + assertThat(RustStateEventType.RoomCanonicalAlias.map()).isEqualTo(StateEventType.RoomCanonicalAlias) + assertThat(RustStateEventType.RoomCreate.map()).isEqualTo(StateEventType.RoomCreate) + assertThat(RustStateEventType.RoomEncryption.map()).isEqualTo(StateEventType.RoomEncryption) + assertThat(RustStateEventType.RoomGuestAccess.map()).isEqualTo(StateEventType.RoomGuestAccess) + assertThat(RustStateEventType.RoomHistoryVisibility.map()).isEqualTo(StateEventType.RoomHistoryVisibility) + assertThat(RustStateEventType.RoomJoinRules.map()).isEqualTo(StateEventType.RoomJoinRules) + assertThat(RustStateEventType.RoomMemberEvent.map()).isEqualTo(StateEventType.RoomMemberEvent) + assertThat(RustStateEventType.RoomName.map()).isEqualTo(StateEventType.RoomName) + assertThat(RustStateEventType.RoomPinnedEvents.map()).isEqualTo(StateEventType.RoomPinnedEvents) + assertThat(RustStateEventType.RoomPowerLevels.map()).isEqualTo(StateEventType.RoomPowerLevels) + assertThat(RustStateEventType.RoomServerAcl.map()).isEqualTo(StateEventType.RoomServerAcl) + assertThat(RustStateEventType.RoomThirdPartyInvite.map()).isEqualTo(StateEventType.RoomThirdPartyInvite) + assertThat(RustStateEventType.RoomTombstone.map()).isEqualTo(StateEventType.RoomTombstone) + assertThat(RustStateEventType.RoomTopic.map()).isEqualTo(StateEventType.RoomTopic) + assertThat(RustStateEventType.SpaceChild.map()).isEqualTo(StateEventType.SpaceChild) + assertThat(RustStateEventType.SpaceParent.map()).isEqualTo(StateEventType.SpaceParent) + assertThat(RustStateEventType.Custom("foo").map()).isEqualTo(StateEventType.Custom("foo")) } @Test fun `mapping Kotlin type should work`() { - assertThat(StateEventType.CALL_MEMBER.map()).isEqualTo(RustStateEventType.CALL_MEMBER) - assertThat(StateEventType.POLICY_RULE_ROOM.map()).isEqualTo(RustStateEventType.POLICY_RULE_ROOM) - assertThat(StateEventType.POLICY_RULE_SERVER.map()).isEqualTo(RustStateEventType.POLICY_RULE_SERVER) - assertThat(StateEventType.POLICY_RULE_USER.map()).isEqualTo(RustStateEventType.POLICY_RULE_USER) - assertThat(StateEventType.ROOM_ALIASES.map()).isEqualTo(RustStateEventType.ROOM_ALIASES) - assertThat(StateEventType.ROOM_AVATAR.map()).isEqualTo(RustStateEventType.ROOM_AVATAR) - assertThat(StateEventType.ROOM_CANONICAL_ALIAS.map()).isEqualTo(RustStateEventType.ROOM_CANONICAL_ALIAS) - assertThat(StateEventType.ROOM_CREATE.map()).isEqualTo(RustStateEventType.ROOM_CREATE) - assertThat(StateEventType.ROOM_ENCRYPTION.map()).isEqualTo(RustStateEventType.ROOM_ENCRYPTION) - assertThat(StateEventType.ROOM_GUEST_ACCESS.map()).isEqualTo(RustStateEventType.ROOM_GUEST_ACCESS) - assertThat(StateEventType.ROOM_HISTORY_VISIBILITY.map()).isEqualTo(RustStateEventType.ROOM_HISTORY_VISIBILITY) - assertThat(StateEventType.ROOM_JOIN_RULES.map()).isEqualTo(RustStateEventType.ROOM_JOIN_RULES) - assertThat(StateEventType.ROOM_MEMBER_EVENT.map()).isEqualTo(RustStateEventType.ROOM_MEMBER_EVENT) - assertThat(StateEventType.ROOM_NAME.map()).isEqualTo(RustStateEventType.ROOM_NAME) - assertThat(StateEventType.ROOM_PINNED_EVENTS.map()).isEqualTo(RustStateEventType.ROOM_PINNED_EVENTS) - assertThat(StateEventType.ROOM_POWER_LEVELS.map()).isEqualTo(RustStateEventType.ROOM_POWER_LEVELS) - assertThat(StateEventType.ROOM_SERVER_ACL.map()).isEqualTo(RustStateEventType.ROOM_SERVER_ACL) - assertThat(StateEventType.ROOM_THIRD_PARTY_INVITE.map()).isEqualTo(RustStateEventType.ROOM_THIRD_PARTY_INVITE) - assertThat(StateEventType.ROOM_TOMBSTONE.map()).isEqualTo(RustStateEventType.ROOM_TOMBSTONE) - assertThat(StateEventType.ROOM_TOPIC.map()).isEqualTo(RustStateEventType.ROOM_TOPIC) - assertThat(StateEventType.SPACE_CHILD.map()).isEqualTo(RustStateEventType.SPACE_CHILD) - assertThat(StateEventType.SPACE_PARENT.map()).isEqualTo(RustStateEventType.SPACE_PARENT) + assertThat(StateEventType.CallMember.map()).isEqualTo(RustStateEventType.CallMember) + assertThat(StateEventType.PolicyRuleRoom.map()).isEqualTo(RustStateEventType.PolicyRuleRoom) + assertThat(StateEventType.PolicyRuleServer.map()).isEqualTo(RustStateEventType.PolicyRuleServer) + assertThat(StateEventType.PolicyRuleUser.map()).isEqualTo(RustStateEventType.PolicyRuleUser) + assertThat(StateEventType.RoomAliases.map()).isEqualTo(RustStateEventType.RoomAliases) + assertThat(StateEventType.RoomAvatar.map()).isEqualTo(RustStateEventType.RoomAvatar) + assertThat(StateEventType.RoomCanonicalAlias.map()).isEqualTo(RustStateEventType.RoomCanonicalAlias) + assertThat(StateEventType.RoomCreate.map()).isEqualTo(RustStateEventType.RoomCreate) + assertThat(StateEventType.RoomEncryption.map()).isEqualTo(RustStateEventType.RoomEncryption) + assertThat(StateEventType.RoomGuestAccess.map()).isEqualTo(RustStateEventType.RoomGuestAccess) + assertThat(StateEventType.RoomHistoryVisibility.map()).isEqualTo(RustStateEventType.RoomHistoryVisibility) + assertThat(StateEventType.RoomJoinRules.map()).isEqualTo(RustStateEventType.RoomJoinRules) + assertThat(StateEventType.RoomMemberEvent.map()).isEqualTo(RustStateEventType.RoomMemberEvent) + assertThat(StateEventType.RoomName.map()).isEqualTo(RustStateEventType.RoomName) + assertThat(StateEventType.RoomPinnedEvents.map()).isEqualTo(RustStateEventType.RoomPinnedEvents) + assertThat(StateEventType.RoomPowerLevels.map()).isEqualTo(RustStateEventType.RoomPowerLevels) + assertThat(StateEventType.RoomServerAcl.map()).isEqualTo(RustStateEventType.RoomServerAcl) + assertThat(StateEventType.RoomThirdPartyInvite.map()).isEqualTo(RustStateEventType.RoomThirdPartyInvite) + assertThat(StateEventType.RoomTombstone.map()).isEqualTo(RustStateEventType.RoomTombstone) + assertThat(StateEventType.RoomTopic.map()).isEqualTo(RustStateEventType.RoomTopic) + assertThat(StateEventType.SpaceChild.map()).isEqualTo(RustStateEventType.SpaceChild) + assertThat(StateEventType.SpaceParent.map()).isEqualTo(RustStateEventType.SpaceParent) + assertThat(StateEventType.Custom("foo").map()).isEqualTo(RustStateEventType.Custom("foo")) } }