@@ -360,6 +360,7 @@ impl<'a, 'o> TimelineEventHandler<'a, 'o> {
360
360
mut self ,
361
361
date_divider_adjuster : & mut DateDividerAdjuster ,
362
362
event_kind : TimelineEventKind ,
363
+ session_id : Option < String > ,
363
364
) -> HandleEventResult {
364
365
let span = tracing:: Span :: current ( ) ;
365
366
@@ -398,13 +399,17 @@ impl<'a, 'o> TimelineEventHandler<'a, 'o> {
398
399
399
400
AnyMessageLikeEventContent :: RoomMessage ( c) => {
400
401
if should_add {
401
- self . handle_room_message ( c, relations) ;
402
+ self . handle_room_message ( c, relations, session_id ) ;
402
403
}
403
404
}
404
405
405
406
AnyMessageLikeEventContent :: Sticker ( content) => {
406
407
if should_add {
407
- self . add_item ( TimelineItemContent :: Sticker ( Sticker { content } ) , None ) ;
408
+ self . add_item (
409
+ TimelineItemContent :: Sticker ( Sticker { content } ) ,
410
+ None ,
411
+ session_id,
412
+ ) ;
408
413
}
409
414
}
410
415
@@ -416,7 +421,7 @@ impl<'a, 'o> TimelineEventHandler<'a, 'o> {
416
421
UnstablePollStartEventContent :: New ( c) ,
417
422
) => {
418
423
if should_add {
419
- self . handle_poll_start ( c, relations)
424
+ self . handle_poll_start ( c, relations, session_id )
420
425
}
421
426
}
422
427
@@ -426,13 +431,13 @@ impl<'a, 'o> TimelineEventHandler<'a, 'o> {
426
431
427
432
AnyMessageLikeEventContent :: CallInvite ( _) => {
428
433
if should_add {
429
- self . add_item ( TimelineItemContent :: CallInvite , None ) ;
434
+ self . add_item ( TimelineItemContent :: CallInvite , None , session_id ) ;
430
435
}
431
436
}
432
437
433
438
AnyMessageLikeEventContent :: CallNotify ( _) => {
434
439
if should_add {
435
- self . add_item ( TimelineItemContent :: CallNotify , None )
440
+ self . add_item ( TimelineItemContent :: CallNotify , None , session_id )
436
441
}
437
442
}
438
443
@@ -448,7 +453,11 @@ impl<'a, 'o> TimelineEventHandler<'a, 'o> {
448
453
TimelineEventKind :: UnableToDecrypt { content, utd_cause } => {
449
454
// TODO: Handle replacements if the replaced event is also UTD
450
455
if should_add {
451
- self . add_item ( TimelineItemContent :: unable_to_decrypt ( content, utd_cause) , None ) ;
456
+ self . add_item (
457
+ TimelineItemContent :: unable_to_decrypt ( content, utd_cause) ,
458
+ None ,
459
+ session_id,
460
+ ) ;
452
461
}
453
462
454
463
// Let the hook know that we ran into an unable-to-decrypt that is added to the
@@ -463,7 +472,7 @@ impl<'a, 'o> TimelineEventHandler<'a, 'o> {
463
472
464
473
TimelineEventKind :: RedactedMessage { event_type } => {
465
474
if event_type != MessageLikeEventType :: Reaction && should_add {
466
- self . add_item ( TimelineItemContent :: RedactedMessage , None ) ;
475
+ self . add_item ( TimelineItemContent :: RedactedMessage , None , session_id ) ;
467
476
}
468
477
}
469
478
@@ -473,7 +482,11 @@ impl<'a, 'o> TimelineEventHandler<'a, 'o> {
473
482
474
483
TimelineEventKind :: RoomMember { user_id, content, sender } => {
475
484
if should_add {
476
- self . add_item ( TimelineItemContent :: room_member ( user_id, content, sender) , None ) ;
485
+ self . add_item (
486
+ TimelineItemContent :: room_member ( user_id, content, sender) ,
487
+ None ,
488
+ session_id,
489
+ ) ;
477
490
}
478
491
}
479
492
@@ -484,6 +497,7 @@ impl<'a, 'o> TimelineEventHandler<'a, 'o> {
484
497
self . add_item (
485
498
TimelineItemContent :: OtherState ( OtherState { state_key, content } ) ,
486
499
None ,
500
+ session_id,
487
501
) ;
488
502
}
489
503
}
@@ -493,6 +507,7 @@ impl<'a, 'o> TimelineEventHandler<'a, 'o> {
493
507
self . add_item (
494
508
TimelineItemContent :: FailedToParseMessageLike { event_type, error } ,
495
509
None ,
510
+ session_id,
496
511
) ;
497
512
}
498
513
}
@@ -502,6 +517,7 @@ impl<'a, 'o> TimelineEventHandler<'a, 'o> {
502
517
self . add_item (
503
518
TimelineItemContent :: FailedToParseState { event_type, state_key, error } ,
504
519
None ,
520
+ session_id,
505
521
) ;
506
522
}
507
523
}
@@ -535,6 +551,7 @@ impl<'a, 'o> TimelineEventHandler<'a, 'o> {
535
551
& mut self ,
536
552
msg : RoomMessageEventContent ,
537
553
relations : BundledMessageLikeRelations < AnySyncMessageLikeEvent > ,
554
+ session_id : Option < String > ,
538
555
) {
539
556
// Always remove the pending edit, if there's any. The reason is that if
540
557
// there's an edit in the relations mapping, we want to prefer it over any
@@ -564,7 +581,11 @@ impl<'a, 'o> TimelineEventHandler<'a, 'o> {
564
581
565
582
let edit_json = edit_json. flatten ( ) ;
566
583
567
- self . add_item ( TimelineItemContent :: message ( msg, edit_content, self . items ) , edit_json) ;
584
+ self . add_item (
585
+ TimelineItemContent :: message ( msg, edit_content, self . items ) ,
586
+ edit_json,
587
+ session_id,
588
+ ) ;
568
589
}
569
590
570
591
#[ instrument( skip_all, fields( replacement_event_id = ?replacement. event_id) ) ]
@@ -839,6 +860,7 @@ impl<'a, 'o> TimelineEventHandler<'a, 'o> {
839
860
& mut self ,
840
861
c : NewUnstablePollStartEventContent ,
841
862
relations : BundledMessageLikeRelations < AnySyncMessageLikeEvent > ,
863
+ session_id : Option < String > ,
842
864
) {
843
865
// Always remove the pending edit, if there's any. The reason is that if
844
866
// there's an edit in the relations mapping, we want to prefer it over any
@@ -876,7 +898,7 @@ impl<'a, 'o> TimelineEventHandler<'a, 'o> {
876
898
877
899
let edit_json = edit_json. flatten ( ) ;
878
900
879
- self . add_item ( TimelineItemContent :: Poll ( poll_state) , edit_json) ;
901
+ self . add_item ( TimelineItemContent :: Poll ( poll_state) , edit_json, session_id ) ;
880
902
}
881
903
882
904
fn handle_poll_response ( & mut self , c : UnstablePollResponseEventContent ) {
@@ -1028,6 +1050,7 @@ impl<'a, 'o> TimelineEventHandler<'a, 'o> {
1028
1050
& mut self ,
1029
1051
content : TimelineItemContent ,
1030
1052
edit_json : Option < Raw < AnySyncTimelineEvent > > ,
1053
+ session_id : Option < String > ,
1031
1054
) {
1032
1055
self . result . item_added = true ;
1033
1056
@@ -1070,6 +1093,7 @@ impl<'a, 'o> TimelineEventHandler<'a, 'o> {
1070
1093
original_json : Some ( raw_event. clone ( ) ) ,
1071
1094
latest_edit_json : edit_json,
1072
1095
origin,
1096
+ session_id,
1073
1097
}
1074
1098
. into ( )
1075
1099
}
0 commit comments