chore[ffi]: rebase on last changes introduced in the events pr

This commit is contained in:
JoFrost
2025-12-21 22:18:55 +02:00
parent bc33878c64
commit a68aeafb4b
2 changed files with 4 additions and 116 deletions
+1 -1
View File
@@ -74,7 +74,7 @@ impl From<AnyTimelineEvent> for TimelineEvent {
}
/// The timeline event type.
#[derive(uniffi::Enum, PartialEq, Eq, Hash)]
#[derive(Clone, uniffi::Enum, PartialEq, Eq, Hash)]
pub enum TimelineEventType {
/// The event is a message-like one and should be displayed as such.
MessageLike { value: MessageLikeEventType },
+3 -115
View File
@@ -23,123 +23,11 @@ use ruma::events::{
use crate::{
client::JoinRule,
event::{MessageLikeEventType, StateEventType},
event::{MessageLikeEventType, StateEventType, TimelineEventType},
timeline::msg_like::MsgLikeContent,
utils::Timestamp,
};
#[derive(Clone, uniffi::Enum, Eq, PartialEq, Hash)]
pub enum FFITimelineEventType {
StateEvent { event: StateEventType },
MessageLike { event: MessageLikeEventType },
Custom { event_type: String },
}
impl From<RumaTimelineEventType> for FFITimelineEventType {
fn from(event_type: RumaTimelineEventType) -> Self {
// Avoid duplication and endless copy paste
fn message_like(e: MessageLikeEventType) -> FFITimelineEventType {
FFITimelineEventType::MessageLike { event: e }
}
fn state_event(e: StateEventType) -> FFITimelineEventType {
FFITimelineEventType::StateEvent { event: e }
}
match event_type {
// Message-like events
RumaTimelineEventType::CallAnswer => message_like(MessageLikeEventType::CallAnswer),
RumaTimelineEventType::CallInvite => message_like(MessageLikeEventType::CallInvite),
RumaTimelineEventType::CallHangup => message_like(MessageLikeEventType::CallHangup),
RumaTimelineEventType::RtcNotification => {
message_like(MessageLikeEventType::RtcNotification)
}
RumaTimelineEventType::CallCandidates => {
message_like(MessageLikeEventType::CallCandidates)
}
RumaTimelineEventType::KeyVerificationReady => {
message_like(MessageLikeEventType::KeyVerificationReady)
}
RumaTimelineEventType::KeyVerificationStart => {
message_like(MessageLikeEventType::KeyVerificationStart)
}
RumaTimelineEventType::KeyVerificationCancel => {
message_like(MessageLikeEventType::KeyVerificationCancel)
}
RumaTimelineEventType::KeyVerificationAccept => {
message_like(MessageLikeEventType::KeyVerificationAccept)
}
RumaTimelineEventType::KeyVerificationKey => {
message_like(MessageLikeEventType::KeyVerificationKey)
}
RumaTimelineEventType::KeyVerificationMac => {
message_like(MessageLikeEventType::KeyVerificationMac)
}
RumaTimelineEventType::KeyVerificationDone => {
message_like(MessageLikeEventType::KeyVerificationDone)
}
RumaTimelineEventType::Reaction => message_like(MessageLikeEventType::Reaction),
RumaTimelineEventType::RoomEncrypted => {
message_like(MessageLikeEventType::RoomEncrypted)
}
RumaTimelineEventType::RoomMessage => message_like(MessageLikeEventType::RoomMessage),
RumaTimelineEventType::RoomRedaction => {
message_like(MessageLikeEventType::RoomRedaction)
}
RumaTimelineEventType::Sticker => message_like(MessageLikeEventType::Sticker),
RumaTimelineEventType::PollEnd => message_like(MessageLikeEventType::PollEnd),
RumaTimelineEventType::PollResponse => message_like(MessageLikeEventType::PollResponse),
RumaTimelineEventType::PollStart => message_like(MessageLikeEventType::PollStart),
RumaTimelineEventType::UnstablePollEnd => {
message_like(MessageLikeEventType::UnstablePollEnd)
}
RumaTimelineEventType::UnstablePollResponse => {
message_like(MessageLikeEventType::UnstablePollResponse)
}
RumaTimelineEventType::UnstablePollStart => {
message_like(MessageLikeEventType::UnstablePollStart)
}
RumaTimelineEventType::CallMember => state_event(StateEventType::CallMember),
// State events
RumaTimelineEventType::PolicyRuleRoom => state_event(StateEventType::PolicyRuleRoom),
RumaTimelineEventType::PolicyRuleServer => {
state_event(StateEventType::PolicyRuleServer)
}
RumaTimelineEventType::PolicyRuleUser => state_event(StateEventType::PolicyRuleUser),
RumaTimelineEventType::RoomAliases => state_event(StateEventType::RoomAliases),
RumaTimelineEventType::RoomAvatar => state_event(StateEventType::RoomAvatar),
RumaTimelineEventType::RoomCanonicalAlias => {
state_event(StateEventType::RoomCanonicalAlias)
}
RumaTimelineEventType::RoomCreate => state_event(StateEventType::RoomCreate),
RumaTimelineEventType::RoomEncryption => state_event(StateEventType::RoomEncryption),
RumaTimelineEventType::RoomGuestAccess => state_event(StateEventType::RoomGuestAccess),
RumaTimelineEventType::RoomHistoryVisibility => {
state_event(StateEventType::RoomHistoryVisibility)
}
RumaTimelineEventType::RoomJoinRules => state_event(StateEventType::RoomJoinRules),
RumaTimelineEventType::RoomName => state_event(StateEventType::RoomName),
RumaTimelineEventType::RoomMember => state_event(StateEventType::RoomMemberEvent),
RumaTimelineEventType::RoomPinnedEvents => {
state_event(StateEventType::RoomPinnedEvents)
}
RumaTimelineEventType::RoomPowerLevels => state_event(StateEventType::RoomPowerLevels),
RumaTimelineEventType::RoomServerAcl => state_event(StateEventType::RoomServerAcl),
RumaTimelineEventType::RoomThirdPartyInvite => {
state_event(StateEventType::RoomThirdPartyInvite)
}
RumaTimelineEventType::RoomTombstone => state_event(StateEventType::RoomTombstone),
RumaTimelineEventType::RoomTopic => state_event(StateEventType::RoomTopic),
RumaTimelineEventType::SpaceChild => state_event(StateEventType::SpaceChild),
RumaTimelineEventType::SpaceParent => state_event(StateEventType::SpaceParent),
// Custom event types not covered above
_ => FFITimelineEventType::Custom { event_type: event_type.to_string() },
}
}
}
impl From<matrix_sdk_ui::timeline::TimelineItemContent> for TimelineItemContent {
fn from(value: matrix_sdk_ui::timeline::TimelineItemContent) -> Self {
use matrix_sdk_ui::timeline::TimelineItemContent as Content;
@@ -403,8 +291,8 @@ pub enum OtherState {
change: RoomPinnedEventsChange,
},
RoomPowerLevels {
events: HashMap<FFITimelineEventType, i64>,
previous_events: Option<HashMap<FFITimelineEventType, i64>>,
events: HashMap<TimelineEventType, i64>,
previous_events: Option<HashMap<TimelineEventType, i64>>,
users: HashMap<String, i64>,
previous: Option<HashMap<String, i64>>,
thresholds: Option<PowerLevelChanges>,