matrix-sdk-base: clean up recv/iter joined post rebase
The types for account data in a sync response have changed, no longer Option. Re word comment in hoist prev_content test.master
parent
b83b9dc59d
commit
2338d3e8fd
|
@ -713,20 +713,22 @@ impl BaseClient {
|
||||||
pub async fn receive_joined_timeline_event(
|
pub async fn receive_joined_timeline_event(
|
||||||
&self,
|
&self,
|
||||||
room_id: &RoomId,
|
room_id: &RoomId,
|
||||||
event: &mut EventJson<RoomEvent>,
|
event: &mut EventJson<AnyRoomEventStub>,
|
||||||
) -> Result<bool> {
|
) -> Result<bool> {
|
||||||
match event.deserialize() {
|
match event.deserialize() {
|
||||||
#[allow(unused_mut)]
|
#[allow(unused_mut)]
|
||||||
Ok(mut e) => {
|
Ok(mut e) => {
|
||||||
#[cfg(feature = "encryption")]
|
#[cfg(feature = "encryption")]
|
||||||
{
|
{
|
||||||
if let RoomEvent::RoomEncrypted(ref mut encrypted_event) = e {
|
if let AnyRoomEventStub::Message(AnyMessageEventStub::RoomEncrypted(
|
||||||
encrypted_event.room_id = Some(room_id.to_owned());
|
ref mut encrypted_event,
|
||||||
|
)) = e
|
||||||
|
{
|
||||||
let mut olm = self.olm.lock().await;
|
let mut olm = self.olm.lock().await;
|
||||||
|
|
||||||
if let Some(o) = &mut *olm {
|
if let Some(o) = &mut *olm {
|
||||||
if let Some(decrypted) =
|
if let Some(decrypted) =
|
||||||
o.decrypt_room_event(&encrypted_event).await.ok()
|
o.decrypt_room_event(&encrypted_event, room_id).await.ok()
|
||||||
{
|
{
|
||||||
if let Ok(d) = decrypted.deserialize() {
|
if let Ok(d) = decrypted.deserialize() {
|
||||||
e = d
|
e = d
|
||||||
|
@ -752,7 +754,7 @@ impl BaseClient {
|
||||||
|
|
||||||
Ok(changed)
|
Ok(changed)
|
||||||
} else {
|
} else {
|
||||||
Ok(room.receive_timeline_event(&e))
|
Ok(room.receive_timeline_event(&e, room_id))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ => Ok(false),
|
_ => Ok(false),
|
||||||
|
@ -1054,17 +1056,13 @@ impl BaseClient {
|
||||||
}
|
}
|
||||||
|
|
||||||
// look at AccountData to further cut down users by collecting ignored users
|
// look at AccountData to further cut down users by collecting ignored users
|
||||||
if let Some(account_data) = &joined_room.account_data {
|
for account_data in &joined_room.account_data.events {
|
||||||
for account_data in &account_data.events {
|
{
|
||||||
{
|
// FIXME: receive_* and emit_* methods shouldn't be called in parallel. We
|
||||||
// FIXME: receive_* and emit_* methods shouldn't be called in parallel. We
|
// should only pass events to receive_* methods and then let *them* emit.
|
||||||
// should only pass events to receive_* methods and then let *them* emit.
|
if let Ok(e) = account_data.deserialize() {
|
||||||
if let Ok(e) = account_data.deserialize() {
|
if self.receive_account_data_event(&room_id, &e).await {
|
||||||
if self.receive_account_data_event(&room_id, &e).await {
|
updated = true;
|
||||||
updated = true;
|
|
||||||
}
|
|
||||||
self.emit_account_data_event(room_id, &e, RoomStateType::Joined)
|
|
||||||
.await;
|
|
||||||
}
|
}
|
||||||
self.emit_account_data_event(room_id, &e, RoomStateType::Joined)
|
self.emit_account_data_event(room_id, &e, RoomStateType::Joined)
|
||||||
.await;
|
.await;
|
||||||
|
@ -2161,7 +2159,7 @@ mod test {
|
||||||
assert_eq!(*member.display_name.as_ref().unwrap(), "changed");
|
assert_eq!(*member.display_name.as_ref().unwrap(), "changed");
|
||||||
|
|
||||||
// The second part tests that the event is emitted correctly. If `prev_content` was
|
// The second part tests that the event is emitted correctly. If `prev_content` was
|
||||||
// missing, this bool would had been flipped.
|
// missing, this bool is reset to false.
|
||||||
assert!(passed.load(Ordering::SeqCst))
|
assert!(passed.load(Ordering::SeqCst))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue