diff --git a/bindings/matrix-sdk-ffi/src/event.rs b/bindings/matrix-sdk-ffi/src/event.rs index 73435f2c8..ebddc176c 100644 --- a/bindings/matrix-sdk-ffi/src/event.rs +++ b/bindings/matrix-sdk-ffi/src/event.rs @@ -285,11 +285,17 @@ pub enum MessageLikeEventType { KeyVerificationMac, KeyVerificationReady, KeyVerificationStart, - ReactionSent, + PollEnd, + PollResponse, + PollStart, + Reaction, RoomEncrypted, RoomMessage, RoomRedaction, Sticker, + UnstablePollEnd, + UnstablePollResponse, + UnstablePollStart, } impl From for ruma::events::MessageLikeEventType { @@ -306,11 +312,17 @@ impl From for ruma::events::MessageLikeEventType { MessageLikeEventType::KeyVerificationKey => Self::KeyVerificationKey, MessageLikeEventType::KeyVerificationMac => Self::KeyVerificationMac, MessageLikeEventType::KeyVerificationDone => Self::KeyVerificationDone, - MessageLikeEventType::ReactionSent => Self::Reaction, + MessageLikeEventType::Reaction => Self::Reaction, MessageLikeEventType::RoomEncrypted => Self::RoomEncrypted, MessageLikeEventType::RoomMessage => Self::RoomMessage, MessageLikeEventType::RoomRedaction => Self::RoomRedaction, MessageLikeEventType::Sticker => Self::Sticker, + MessageLikeEventType::PollEnd => Self::PollEnd, + MessageLikeEventType::PollResponse => Self::PollResponse, + MessageLikeEventType::PollStart => Self::PollStart, + MessageLikeEventType::UnstablePollEnd => Self::UnstablePollEnd, + MessageLikeEventType::UnstablePollResponse => Self::UnstablePollResponse, + MessageLikeEventType::UnstablePollStart => Self::UnstablePollStart, } } } diff --git a/bindings/matrix-sdk-ffi/src/timeline_event_filter.rs b/bindings/matrix-sdk-ffi/src/timeline_event_filter.rs index c41498555..9d6472eaf 100644 --- a/bindings/matrix-sdk-ffi/src/timeline_event_filter.rs +++ b/bindings/matrix-sdk-ffi/src/timeline_event_filter.rs @@ -3,6 +3,8 @@ use std::sync::Arc; use matrix_sdk_ui::timeline::event_type_filter::TimelineEventTypeFilter as InnerTimelineEventTypeFilter; use ruma::events::{AnySyncTimelineEvent, TimelineEventType}; +use crate::event::{MessageLikeEventType, StateEventType}; + #[derive(uniffi::Object)] pub struct TimelineEventTypeFilter { inner: InnerTimelineEventTypeFilter, @@ -35,135 +37,19 @@ impl TimelineEventTypeFilter { #[derive(uniffi::Enum, Clone)] pub enum FilterTimelineEventType { - MessageLike { event_type: FilterMessageLikeEventType }, - State { event_type: FilterStateEventType }, + MessageLike { event_type: MessageLikeEventType }, + State { event_type: StateEventType }, } impl From for TimelineEventType { fn from(value: FilterTimelineEventType) -> TimelineEventType { match value { - FilterTimelineEventType::MessageLike { event_type } => event_type.into(), - FilterTimelineEventType::State { event_type } => event_type.into(), - } - } -} - -#[derive(uniffi::Enum, Clone)] -pub enum FilterStateEventType { - PolicyRuleRoom, - PolicyRuleServer, - PolicyRuleUser, - RoomAliases, - RoomAvatar, - RoomCanonicalAlias, - RoomCreate, - RoomEncryption, - RoomGuestAccess, - RoomHistoryVisibility, - RoomJoinRules, - RoomMember, - RoomName, - RoomPinnedEvents, - RoomPowerLevels, - RoomServerAcl, - RoomThirdPartyInvite, - RoomTombstone, - RoomTopic, - SpaceChild, - SpaceParent, -} - -impl From for TimelineEventType { - fn from(value: FilterStateEventType) -> TimelineEventType { - match value { - FilterStateEventType::PolicyRuleRoom => TimelineEventType::PolicyRuleRoom, - FilterStateEventType::PolicyRuleServer => TimelineEventType::PolicyRuleServer, - FilterStateEventType::PolicyRuleUser => TimelineEventType::PolicyRuleUser, - FilterStateEventType::RoomAliases => TimelineEventType::RoomAliases, - FilterStateEventType::RoomAvatar => TimelineEventType::RoomAvatar, - FilterStateEventType::RoomCanonicalAlias => TimelineEventType::RoomCanonicalAlias, - FilterStateEventType::RoomCreate => TimelineEventType::RoomCreate, - FilterStateEventType::RoomEncryption => TimelineEventType::RoomEncryption, - FilterStateEventType::RoomGuestAccess => TimelineEventType::RoomGuestAccess, - FilterStateEventType::RoomHistoryVisibility => TimelineEventType::RoomHistoryVisibility, - FilterStateEventType::RoomJoinRules => TimelineEventType::RoomJoinRules, - FilterStateEventType::RoomMember => TimelineEventType::RoomMember, - FilterStateEventType::RoomName => TimelineEventType::RoomName, - FilterStateEventType::RoomPinnedEvents => TimelineEventType::RoomPinnedEvents, - FilterStateEventType::RoomPowerLevels => TimelineEventType::RoomPowerLevels, - FilterStateEventType::RoomServerAcl => TimelineEventType::RoomServerAcl, - FilterStateEventType::RoomThirdPartyInvite => TimelineEventType::RoomThirdPartyInvite, - FilterStateEventType::RoomTombstone => TimelineEventType::RoomTopic, - FilterStateEventType::RoomTopic => TimelineEventType::RoomTopic, - FilterStateEventType::SpaceChild => TimelineEventType::SpaceChild, - FilterStateEventType::SpaceParent => TimelineEventType::SpaceParent, - } - } -} - -#[derive(uniffi::Enum, Clone)] -pub enum FilterMessageLikeEventType { - CallAnswer, - CallCandidates, - CallHangup, - CallInvite, - KeyVerificationAccept, - KeyVerificationCancel, - KeyVerificationDone, - KeyVerificationKey, - KeyVerificationMac, - KeyVerificationReady, - KeyVerificationStart, - PollEnd, - PollResponse, - PollStart, - Reaction, - RoomEncrypted, - RoomMessage, - RoomRedaction, - Sticker, - UnstablePollEnd, - UnstablePollResponse, - UnstablePollStart, -} - -impl From for TimelineEventType { - fn from(value: FilterMessageLikeEventType) -> TimelineEventType { - match value { - FilterMessageLikeEventType::CallAnswer => TimelineEventType::CallAnswer, - FilterMessageLikeEventType::CallInvite => TimelineEventType::CallInvite, - FilterMessageLikeEventType::CallHangup => TimelineEventType::CallHangup, - FilterMessageLikeEventType::CallCandidates => TimelineEventType::CallCandidates, - FilterMessageLikeEventType::KeyVerificationReady => { - TimelineEventType::KeyVerificationReady - } - FilterMessageLikeEventType::KeyVerificationStart => { - TimelineEventType::KeyVerificationStart - } - FilterMessageLikeEventType::KeyVerificationCancel => { - TimelineEventType::KeyVerificationCancel - } - FilterMessageLikeEventType::KeyVerificationAccept => { - TimelineEventType::KeyVerificationAccept - } - FilterMessageLikeEventType::KeyVerificationKey => TimelineEventType::KeyVerificationKey, - FilterMessageLikeEventType::KeyVerificationMac => TimelineEventType::KeyVerificationMac, - FilterMessageLikeEventType::KeyVerificationDone => { - TimelineEventType::KeyVerificationDone - } - FilterMessageLikeEventType::PollEnd => TimelineEventType::PollEnd, - FilterMessageLikeEventType::PollResponse => TimelineEventType::PollResponse, - FilterMessageLikeEventType::PollStart => TimelineEventType::PollStart, - FilterMessageLikeEventType::Reaction => TimelineEventType::Reaction, - FilterMessageLikeEventType::RoomEncrypted => TimelineEventType::RoomEncrypted, - FilterMessageLikeEventType::RoomMessage => TimelineEventType::RoomMessage, - FilterMessageLikeEventType::RoomRedaction => TimelineEventType::RoomRedaction, - FilterMessageLikeEventType::Sticker => TimelineEventType::Sticker, - FilterMessageLikeEventType::UnstablePollEnd => TimelineEventType::UnstablePollEnd, - FilterMessageLikeEventType::UnstablePollResponse => { - TimelineEventType::UnstablePollResponse - } - FilterMessageLikeEventType::UnstablePollStart => TimelineEventType::UnstablePollStart, + FilterTimelineEventType::MessageLike { event_type } => { + ruma::events::MessageLikeEventType::from(event_type).into() + } + FilterTimelineEventType::State { event_type } => { + ruma::events::StateEventType::from(event_type).into() + } } } }