Skip to content

Commit e042776

Browse files
committed
refactor(timeline): Use the event cache to request redecryption
1 parent 927c82f commit e042776

File tree

1 file changed

+12
-2
lines changed
  • crates/matrix-sdk-ui/src/timeline/controller

1 file changed

+12
-2
lines changed

crates/matrix-sdk-ui/src/timeline/controller/mod.rs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ use imbl::Vector;
2424
use matrix_sdk::Result;
2525
use matrix_sdk::{
2626
deserialized_responses::TimelineEvent,
27-
event_cache::{RoomEventCache, RoomPaginationStatus},
27+
event_cache::{DecryptionRetryRequest, RoomEventCache, RoomPaginationStatus},
2828
paginators::{PaginationResult, PaginationToken, Paginator},
2929
send_queue::{
3030
LocalEcho, LocalEchoContent, RoomSendQueueUpdate, SendHandle, SendReactionHandle,
@@ -73,6 +73,7 @@ use crate::{
7373
timeline::{
7474
MsgLikeContent, MsgLikeKind, Room, TimelineEventFilterFn,
7575
algorithms::rfind_event_by_item_id,
76+
controller::decryption_retry_task::compute_redecryption_candidates,
7677
date_dividers::DateDividerAdjuster,
7778
event_item::TimelineItemHandle,
7879
pinned_events_loader::{PinnedEventsLoader, PinnedEventsLoaderError},
@@ -1766,7 +1767,16 @@ impl TimelineController {
17661767

17671768
#[instrument(skip(self), fields(room_id = ?self.room().room_id()))]
17681769
pub(super) async fn retry_event_decryption(&self, session_ids: Option<BTreeSet<String>>) {
1769-
self.retry_event_decryption_inner(session_ids).await
1770+
let state = self.state.read().await;
1771+
let (utds, decrypted) = compute_redecryption_candidates(&state.items);
1772+
1773+
let request = DecryptionRetryRequest {
1774+
room_id: self.room().room_id().to_owned(),
1775+
utd_session_ids: utds,
1776+
refresh_info_session_ids: decrypted,
1777+
};
1778+
1779+
self.room().client().event_cache().request_decryption(request);
17701780
}
17711781

17721782
/// Combine the global (event cache) pagination status with the local state

0 commit comments

Comments
 (0)