From 245ecea263550f2301e5de557cab3aa4ebab4ec4 Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Thu, 1 Sep 2022 15:01:29 +0200 Subject: [PATCH] feat(sdk): Add support for AnySyncTimelineEvent in event handlers --- crates/matrix-sdk/src/event_handler/mod.rs | 5 +++++ .../matrix-sdk/src/event_handler/static_events.rs | 14 ++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/crates/matrix-sdk/src/event_handler/mod.rs b/crates/matrix-sdk/src/event_handler/mod.rs index 3733a1a07..045f729fa 100644 --- a/crates/matrix-sdk/src/event_handler/mod.rs +++ b/crates/matrix-sdk/src/event_handler/mod.rs @@ -111,6 +111,7 @@ pub enum HandlerKind { GlobalAccountData, RoomAccountData, EphemeralRoomData, + Timeline, MessageLike, OriginalMessageLike, RedactedMessageLike, @@ -397,6 +398,10 @@ impl Client { // Event handlers specifically for redacted OR unredacted timeline events self.call_event_handlers(room, raw_event, handler_kind_r, &event_type, encryption_info) .await; + + // Event handlers for `AnySyncTimelineEvent` + let kind = HandlerKind::Timeline; + self.call_event_handlers(room, raw_event, kind, &event_type, encryption_info).await; } Ok(()) diff --git a/crates/matrix-sdk/src/event_handler/static_events.rs b/crates/matrix-sdk/src/event_handler/static_events.rs index 32a37e69b..bd7228e00 100644 --- a/crates/matrix-sdk/src/event_handler/static_events.rs +++ b/crates/matrix-sdk/src/event_handler/static_events.rs @@ -19,10 +19,11 @@ use ruma::{ self, presence::{PresenceEvent, PresenceEventContent}, AnyGlobalAccountDataEvent, AnyRoomAccountDataEvent, AnyStrippedStateEvent, - AnySyncEphemeralRoomEvent, AnySyncMessageLikeEvent, AnySyncStateEvent, AnyToDeviceEvent, - EphemeralRoomEventContent, GlobalAccountDataEventContent, MessageLikeEventContent, - RedactContent, RedactedEventContent, RoomAccountDataEventContent, StateEventContent, - StaticEventContent, ToDeviceEventContent, + AnySyncEphemeralRoomEvent, AnySyncMessageLikeEvent, AnySyncStateEvent, + AnySyncTimelineEvent, AnyToDeviceEvent, EphemeralRoomEventContent, + GlobalAccountDataEventContent, MessageLikeEventContent, RedactContent, + RedactedEventContent, RoomAccountDataEventContent, StateEventContent, StaticEventContent, + ToDeviceEventContent, }, serde::Raw, }; @@ -157,6 +158,11 @@ impl SyncEvent for AnySyncEphemeralRoomEvent { const TYPE: Option<&'static str> = None; } +impl SyncEvent for AnySyncTimelineEvent { + const KIND: HandlerKind = HandlerKind::Timeline; + const TYPE: Option<&'static str> = None; +} + impl SyncEvent for AnySyncMessageLikeEvent { const KIND: HandlerKind = HandlerKind::MessageLike; const TYPE: Option<&'static str> = None;