diff --git a/crates/matrix-sdk/src/room/timeline/event_handler.rs b/crates/matrix-sdk/src/room/timeline/event_handler.rs index ee8cad83f..dde2c222f 100644 --- a/crates/matrix-sdk/src/room/timeline/event_handler.rs +++ b/crates/matrix-sdk/src/room/timeline/event_handler.rs @@ -577,10 +577,12 @@ impl<'a, 'i> TimelineEventHandler<'a, 'i> { if let Some(day_divider_item) = maybe_create_day_divider_from_timestamps(old_ts, *timestamp) { + trace!("Adding day divider"); self.timeline_items.push_cloned(Arc::new(day_divider_item)); } } else { // If there is no event item, there is no day divider yet. + trace!("Adding first day divider"); self.timeline_items .push_cloned(Arc::new(TimelineItem::day_divider(*timestamp))); } @@ -642,8 +644,6 @@ impl<'a, 'i> TimelineEventHandler<'a, 'i> { origin_server_ts, .. } => { - trace!("Adding new remote timeline item at the end"); - let result = rfind_event_item(self.timeline_items, |it| { txn_id.is_some() && it.transaction_id() == txn_id.as_deref() || it.event_id() == Some(event_id) @@ -682,11 +682,13 @@ impl<'a, 'i> TimelineEventHandler<'a, 'i> { { // If the old item is the last one and no day divider // changes need to happen, replace and return early. + trace!(idx, "Replacing existing event"); self.timeline_items.set_cloned(idx, item); return; } else { // In more complex cases, remove the item and day // divider (if necessary) before re-adding the item. + trace!("Removing local echo or duplicate timeline item"); self.timeline_items.remove(idx); assert_ne!( @@ -706,6 +708,7 @@ impl<'a, 'i> TimelineEventHandler<'a, 'i> { .get(idx + 1) .map_or(true, |item| item.is_virtual()) { + trace!("Removing day divider"); self.timeline_items.remove(idx - 1); } @@ -728,14 +731,17 @@ impl<'a, 'i> TimelineEventHandler<'a, 'i> { if let Some(day_divider_item) = maybe_create_day_divider_from_timestamps(old_ts, *origin_server_ts) { + trace!("Adding day divider"); self.timeline_items.push_cloned(Arc::new(day_divider_item)); } } else { - // If there is not event item, there is no day divider yet. + // If there is no event item, there is no day divider yet. + trace!("Adding first day divider"); self.timeline_items .push_cloned(Arc::new(TimelineItem::day_divider(*origin_server_ts))); } + trace!("Adding new remote timeline item at the end"); self.timeline_items.push_cloned(item); }