diff --git a/crates/matrix-sdk-ui/src/timeline/controller/mod.rs b/crates/matrix-sdk-ui/src/timeline/controller/mod.rs index 4e29f89c8..455a6068f 100644 --- a/crates/matrix-sdk-ui/src/timeline/controller/mod.rs +++ b/crates/matrix-sdk-ui/src/timeline/controller/mod.rs @@ -186,14 +186,6 @@ impl Default for TimelineSettings { } } -#[derive(Debug, Clone)] -pub(super) enum TimelineFocusKind { - Live { hide_threaded_events: bool }, - Event { hide_threaded_events: bool }, - Thread { root_event_id: OwnedEventId }, - PinnedEvents, -} - /// The default event filter for /// [`crate::timeline::TimelineBuilder::event_filter`]. /// @@ -283,53 +275,42 @@ impl TimelineController { unable_to_decrypt_hook: Option>, is_room_encrypted: bool, ) -> Self { - let (focus_data, focus_kind) = match focus { - TimelineFocus::Live { hide_threaded_events } => ( - TimelineFocusData::Live { hide_threaded_events }, - TimelineFocusKind::Live { hide_threaded_events }, - ), - + let focus_data = match focus { + TimelineFocus::Live { hide_threaded_events } => { + TimelineFocusData::Live { hide_threaded_events } + } TimelineFocus::Event { target, num_context_events, hide_threaded_events } => { let paginator = Paginator::new(room_data_provider.clone()); - ( - TimelineFocusData::Event { - paginator, - event_id: target, - num_context_events, - hide_threaded_events, - }, - TimelineFocusKind::Event { hide_threaded_events }, - ) + TimelineFocusData::Event { + paginator, + event_id: target, + num_context_events, + hide_threaded_events, + } } - TimelineFocus::Thread { root_event_id, num_events } => ( - TimelineFocusData::Thread { - loader: ThreadedEventsLoader::new( - room_data_provider.clone(), - root_event_id.clone(), - ), - num_events, - // TODO: don't clone! - root_event_id: root_event_id.clone(), - }, - TimelineFocusKind::Thread { root_event_id }, - ), + TimelineFocus::Thread { root_event_id, num_events } => TimelineFocusData::Thread { + loader: ThreadedEventsLoader::new( + room_data_provider.clone(), + root_event_id.clone(), + ), + num_events, + root_event_id, + }, - TimelineFocus::PinnedEvents { max_events_to_load, max_concurrent_requests } => ( + TimelineFocus::PinnedEvents { max_events_to_load, max_concurrent_requests } => { TimelineFocusData::PinnedEvents { loader: PinnedEventsLoader::new( Arc::new(room_data_provider.clone()), max_events_to_load as usize, max_concurrent_requests as usize, ), - }, - TimelineFocusKind::PinnedEvents, - ), + } + } }; let focus_data = Arc::new(focus_data); let state = Arc::new(RwLock::new(TimelineState::new( - focus_kind, focus_data.clone(), room_data_provider.own_user_id().to_owned(), room_data_provider.room_version(), diff --git a/crates/matrix-sdk-ui/src/timeline/controller/state.rs b/crates/matrix-sdk-ui/src/timeline/controller/state.rs index b4a7a5f91..cbea8fe3b 100644 --- a/crates/matrix-sdk-ui/src/timeline/controller/state.rs +++ b/crates/matrix-sdk-ui/src/timeline/controller/state.rs @@ -36,8 +36,7 @@ use super::{ Profile, TimelineItem, }, observable_items::ObservableItems, - DateDividerMode, TimelineFocusKind, TimelineMetadata, TimelineSettings, - TimelineStateTransaction, + DateDividerMode, TimelineMetadata, TimelineSettings, TimelineStateTransaction, }; use crate::{timeline::controller::TimelineFocusData, unable_to_decrypt_hook::UtdHookManager}; @@ -47,14 +46,11 @@ pub(in crate::timeline) struct TimelineState { pub meta: TimelineMetadata, /// The kind of focus of this timeline. - pub timeline_focus: TimelineFocusKind, - focus_data: Arc>, } impl TimelineState

{ pub(super) fn new( - timeline_focus: TimelineFocusKind, focus_data: Arc>, own_user_id: OwnedUserId, room_version: RoomVersionId, @@ -71,7 +67,6 @@ impl TimelineState

{ unable_to_decrypt_hook, is_room_encrypted, ), - timeline_focus, focus_data, } } @@ -304,11 +299,6 @@ impl TimelineState

{ } pub(super) fn transaction(&mut self) -> TimelineStateTransaction<'_, P> { - TimelineStateTransaction::new( - &mut self.items, - &mut self.meta, - self.timeline_focus.clone(), - &*self.focus_data, - ) + TimelineStateTransaction::new(&mut self.items, &mut self.meta, &*self.focus_data) } } diff --git a/crates/matrix-sdk-ui/src/timeline/controller/state_transaction.rs b/crates/matrix-sdk-ui/src/timeline/controller/state_transaction.rs index 9db4073aa..0f7dd8438 100644 --- a/crates/matrix-sdk-ui/src/timeline/controller/state_transaction.rs +++ b/crates/matrix-sdk-ui/src/timeline/controller/state_transaction.rs @@ -34,8 +34,7 @@ use super::{ traits::RoomDataProvider, }, metadata::EventMeta, - ObservableItems, ObservableItemsTransaction, TimelineFocusKind, TimelineMetadata, - TimelineSettings, + ObservableItems, ObservableItemsTransaction, TimelineMetadata, TimelineSettings, }; use crate::timeline::{ controller::TimelineFocusData, @@ -60,8 +59,6 @@ pub(in crate::timeline) struct TimelineStateTransaction<'a, P: RoomDataProvider> previous_meta: &'a mut TimelineMetadata, /// The kind of focus of this timeline. - pub timeline_focus: TimelineFocusKind, - pub focus: &'a TimelineFocusData

, } @@ -70,7 +67,6 @@ impl<'a, P: RoomDataProvider> TimelineStateTransaction<'a, P> { pub(super) fn new( items: &'a mut ObservableItems, meta: &'a mut TimelineMetadata, - timeline_focus: TimelineFocusKind, focus: &'a TimelineFocusData

, ) -> Self { let previous_meta = meta; @@ -82,7 +78,6 @@ impl<'a, P: RoomDataProvider> TimelineStateTransaction<'a, P> { items, previous_meta, meta, - timeline_focus, focus, } }