ffi: add missing variants to ffi::event::MessageLikeEventType and use it in the timeline filter types
This commit is contained in:
@@ -285,11 +285,17 @@ pub enum MessageLikeEventType {
|
||||
KeyVerificationMac,
|
||||
KeyVerificationReady,
|
||||
KeyVerificationStart,
|
||||
ReactionSent,
|
||||
PollEnd,
|
||||
PollResponse,
|
||||
PollStart,
|
||||
Reaction,
|
||||
RoomEncrypted,
|
||||
RoomMessage,
|
||||
RoomRedaction,
|
||||
Sticker,
|
||||
UnstablePollEnd,
|
||||
UnstablePollResponse,
|
||||
UnstablePollStart,
|
||||
}
|
||||
|
||||
impl From<MessageLikeEventType> for ruma::events::MessageLikeEventType {
|
||||
@@ -306,11 +312,17 @@ impl From<MessageLikeEventType> 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,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<FilterTimelineEventType> 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<FilterStateEventType> 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<FilterMessageLikeEventType> 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()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user