Skip to content

Commit

Permalink
base: don't regenerate the display name when creating a room, store t…
Browse files Browse the repository at this point in the history
…he cached display name in RoomInfo

So revert a few changes to make some functions async, etc.
  • Loading branch information
bnjbvr committed Jun 10, 2024
1 parent cd65997 commit e96d932
Show file tree
Hide file tree
Showing 10 changed files with 142 additions and 136 deletions.
2 changes: 1 addition & 1 deletion benchmarks/benches/room_bench.rs
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ pub fn receive_all_members_benchmark(c: &mut Criterion) {
))
.expect("Could not set session meta");

runtime.block_on(base_client.get_or_create_room(&room_id, RoomState::Joined));
base_client.get_or_create_room(&room_id, RoomState::Joined);

let request = get_member_events::v3::Request::new(room_id.clone());
let response = get_member_events::v3::Response::new(member_events);
Expand Down
64 changes: 32 additions & 32 deletions crates/matrix-sdk-base/src/client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -171,10 +171,8 @@ impl BaseClient {

/// Lookup the Room for the given RoomId, or create one, if it didn't exist
/// yet in the store
pub async fn get_or_create_room(&self, room_id: &RoomId, room_state: RoomState) -> Room {
self.store
.get_or_create_room(room_id, room_state, self.roominfo_update_sender.clone())
.await
pub fn get_or_create_room(&self, room_id: &RoomId, room_state: RoomState) -> Room {
self.store.get_or_create_room(room_id, room_state, self.roominfo_update_sender.clone())
}

/// Get all the rooms this client knows about.
Expand Down Expand Up @@ -748,10 +746,12 @@ impl BaseClient {
///
/// Update the internal and cached state accordingly. Return the final Room.
pub async fn room_joined(&self, room_id: &RoomId) -> Result<Room> {
let room = self
.store
.get_or_create_room(room_id, RoomState::Joined, self.roominfo_update_sender.clone())
.await;
let room = self.store.get_or_create_room(
room_id,
RoomState::Joined,
self.roominfo_update_sender.clone(),
);

if room.state() != RoomState::Joined {
let _sync_lock = self.sync_lock().lock().await;

Expand All @@ -773,10 +773,12 @@ impl BaseClient {
///
/// Update the internal and cached state accordingly.
pub async fn room_left(&self, room_id: &RoomId) -> Result<()> {
let room = self
.store
.get_or_create_room(room_id, RoomState::Left, self.roominfo_update_sender.clone())
.await;
let room = self.store.get_or_create_room(
room_id,
RoomState::Left,
self.roominfo_update_sender.clone(),
);

if room.state() != RoomState::Left {
let _sync_lock = self.sync_lock().lock().await;

Expand Down Expand Up @@ -847,14 +849,12 @@ impl BaseClient {
let mut notifications = Default::default();

for (room_id, new_info) in response.rooms.join {
let room = self
.store
.get_or_create_room(
&room_id,
RoomState::Joined,
self.roominfo_update_sender.clone(),
)
.await;
let room = self.store.get_or_create_room(
&room_id,
RoomState::Joined,
self.roominfo_update_sender.clone(),
);

let mut room_info = room.clone_info();

room_info.mark_as_joined();
Expand Down Expand Up @@ -962,10 +962,12 @@ impl BaseClient {
}

for (room_id, new_info) in response.rooms.leave {
let room = self
.store
.get_or_create_room(&room_id, RoomState::Left, self.roominfo_update_sender.clone())
.await;
let room = self.store.get_or_create_room(
&room_id,
RoomState::Left,
self.roominfo_update_sender.clone(),
);

let mut room_info = room.clone_info();
room_info.mark_as_left();
room_info.mark_state_partially_synced();
Expand Down Expand Up @@ -1019,14 +1021,12 @@ impl BaseClient {
}

for (room_id, new_info) in response.rooms.invite {
let room = self
.store
.get_or_create_room(
&room_id,
RoomState::Invited,
self.roominfo_update_sender.clone(),
)
.await;
let room = self.store.get_or_create_room(
&room_id,
RoomState::Invited,
self.roominfo_update_sender.clone(),
);

let mut room_info = room.clone_info();
room_info.mark_as_invited();
room_info.mark_state_fully_synced();
Expand Down
Loading

0 comments on commit e96d932

Please sign in to comment.