diff --git a/Cargo.lock b/Cargo.lock index 6f826fe7c..0191aa269 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -370,17 +370,11 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "async-once-cell" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4288f83726785267c6f2ef073a3d83dc3f9b81464e9f99898240cced85fce35a" - [[package]] name = "async-rx" -version = "0.1.3" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a30de4e5329a0947e389f738a6ca0d0b938fea5cb7baaeae7d72e243614468a2" +checksum = "a82c1a761cd7b772912fd2500f2c0a850c0c72f5f66543038393ac6cfaa3659a" dependencies = [ "futures-core", "pin-project-lite", @@ -559,9 +553,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.8.0" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" +checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" [[package]] name = "bindgen" @@ -1447,7 +1441,7 @@ dependencies = [ "serde_json", "serde_json_canonicalizer", "sha2 0.10.9", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "url", ] @@ -3381,14 +3375,13 @@ dependencies = [ [[package]] name = "matrix-sdk" -version = "0.16.0" -source = "git+https://github.com/project-robius/matrix-rust-sdk?branch=space_room_suggested#627563bb87e4746c0758560efe2c3fdc034faac6" +version = "0.18.0" +source = "git+https://github.com/matrix-org/matrix-rust-sdk#5a0b002aeaf687edf9fb5a2bdd465886c325f48d" dependencies = [ "anymap2", "aquamarine", "as_variant", "async-channel", - "async-once-cell", "async-stream", "async-trait", "axum", @@ -3418,18 +3411,15 @@ dependencies = [ "oauth2-reqwest", "percent-encoding", "pin-project-lite", - "rand 0.10.0", + "rand 0.10.1", "reqwest 0.13.2", "ruma", - "rustls", - "rustls-native-certs", - "rustls-pki-types", "serde", "serde_html_form", "serde_json", "sha2 0.10.9", "tempfile", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tokio-stream", "tokio-util", @@ -3438,14 +3428,13 @@ dependencies = [ "url", "urlencoding", "vodozemac", - "webpki-roots", "zeroize", ] [[package]] name = "matrix-sdk-base" -version = "0.16.0" -source = "git+https://github.com/project-robius/matrix-rust-sdk?branch=space_room_suggested#627563bb87e4746c0758560efe2c3fdc034faac6" +version = "0.18.0" +source = "git+https://github.com/matrix-org/matrix-rust-sdk#5a0b002aeaf687edf9fb5a2bdd465886c325f48d" dependencies = [ "as_variant", "async-trait", @@ -3462,7 +3451,7 @@ dependencies = [ "ruma", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", "unicode-normalization", @@ -3470,8 +3459,8 @@ dependencies = [ [[package]] name = "matrix-sdk-common" -version = "0.16.0" -source = "git+https://github.com/project-robius/matrix-rust-sdk?branch=space_room_suggested#627563bb87e4746c0758560efe2c3fdc034faac6" +version = "0.18.0" +source = "git+https://github.com/matrix-org/matrix-rust-sdk#5a0b002aeaf687edf9fb5a2bdd465886c325f48d" dependencies = [ "eyeball-im", "futures-core", @@ -3482,7 +3471,7 @@ dependencies = [ "ruma", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", "tracing-subscriber", @@ -3493,8 +3482,8 @@ dependencies = [ [[package]] name = "matrix-sdk-crypto" -version = "0.16.0" -source = "git+https://github.com/project-robius/matrix-rust-sdk?branch=space_room_suggested#627563bb87e4746c0758560efe2c3fdc034faac6" +version = "0.18.0" +source = "git+https://github.com/matrix-org/matrix-rust-sdk#5a0b002aeaf687edf9fb5a2bdd465886c325f48d" dependencies = [ "aes", "aquamarine", @@ -3513,14 +3502,14 @@ dependencies = [ "js_option", "matrix-sdk-common", "pbkdf2", - "rand 0.10.0", + "rand 0.10.1", "rmp-serde", "ruma", "serde", "serde_json", "sha2 0.10.9", "subtle", - "thiserror 2.0.17", + "thiserror 2.0.18", "time", "tokio", "tokio-stream", @@ -3533,8 +3522,8 @@ dependencies = [ [[package]] name = "matrix-sdk-indexeddb" -version = "0.16.0" -source = "git+https://github.com/project-robius/matrix-rust-sdk?branch=space_room_suggested#627563bb87e4746c0758560efe2c3fdc034faac6" +version = "0.18.0" +source = "git+https://github.com/matrix-org/matrix-rust-sdk#5a0b002aeaf687edf9fb5a2bdd465886c325f48d" dependencies = [ "async-trait", "base64", @@ -3553,7 +3542,7 @@ dependencies = [ "serde-wasm-bindgen", "serde_json", "sha2 0.10.9", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", "uuid", @@ -3564,8 +3553,8 @@ dependencies = [ [[package]] name = "matrix-sdk-sqlite" -version = "0.16.0" -source = "git+https://github.com/project-robius/matrix-rust-sdk?branch=space_room_suggested#627563bb87e4746c0758560efe2c3fdc034faac6" +version = "0.18.0" +source = "git+https://github.com/matrix-org/matrix-rust-sdk#5a0b002aeaf687edf9fb5a2bdd465886c325f48d" dependencies = [ "as_variant", "async-trait", @@ -3582,7 +3571,7 @@ dependencies = [ "serde", "serde_json", "serde_path_to_error", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", "vodozemac", @@ -3591,28 +3580,29 @@ dependencies = [ [[package]] name = "matrix-sdk-store-encryption" -version = "0.16.0" -source = "git+https://github.com/project-robius/matrix-rust-sdk?branch=space_room_suggested#627563bb87e4746c0758560efe2c3fdc034faac6" +version = "0.18.0" +source = "git+https://github.com/matrix-org/matrix-rust-sdk#5a0b002aeaf687edf9fb5a2bdd465886c325f48d" dependencies = [ "base64", "blake3", "chacha20poly1305", + "getrandom 0.2.16", "getrandom 0.4.2", "hmac", "pbkdf2", - "rand 0.10.0", + "rand 0.10.1", "rmp-serde", "serde", "serde_json", "sha2 0.10.9", - "thiserror 2.0.17", + "thiserror 2.0.18", "zeroize", ] [[package]] name = "matrix-sdk-ui" -version = "0.16.0" -source = "git+https://github.com/project-robius/matrix-rust-sdk?branch=space_room_suggested#627563bb87e4746c0758560efe2c3fdc034faac6" +version = "0.18.0" +source = "git+https://github.com/matrix-org/matrix-rust-sdk#5a0b002aeaf687edf9fb5a2bdd465886c325f48d" dependencies = [ "as_variant", "async-rx", @@ -3639,7 +3629,7 @@ dependencies = [ "ruma", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tokio-stream", "tracing", @@ -3665,7 +3655,7 @@ dependencies = [ "serde", "serde-wasm-bindgen", "smallvec 1.15.1 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "wasm-bindgen", "wasm-bindgen-futures", @@ -3787,7 +3777,7 @@ dependencies = [ "once_cell", "rustc-hash 1.1.0", "spirv", - "thiserror 2.0.17", + "thiserror 2.0.18", "unicode-ident", ] @@ -4512,9 +4502,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.13.5" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" +checksum = "528ac67416ff8646872a3c02cad9cc4ee5dc9f9540c9b10771855c95cb2e5ae1" dependencies = [ "bytes", "prost-derive", @@ -4522,12 +4512,12 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.13.5" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" +checksum = "b570b25f7617e43d59005d0990ccb79e950a423952cea19671b7a876da390adf" dependencies = [ "anyhow", - "itertools 0.14.0", + "itertools 0.10.5", "proc-macro2", "quote", "syn 2.0.106", @@ -4575,7 +4565,7 @@ dependencies = [ "rustc-hash 2.1.1", "rustls", "socket2", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tracing", "web-time", @@ -4597,7 +4587,7 @@ dependencies = [ "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.17", + "thiserror 2.0.18", "tinyvec", "tracing", "web-time", @@ -4661,9 +4651,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc266eb313df6c5c09c1c7b1fbe2510961e5bcd3add930c1e31f7ed9da0feff8" +checksum = "d2e8e8bcc7961af1fdac401278c6a831614941f6164ee3bf4ce61b7edb162207" dependencies = [ "chacha20 0.10.0", "getrandom 0.4.2", @@ -4767,7 +4757,7 @@ checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ "getrandom 0.2.16", "libredox", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -5123,7 +5113,7 @@ dependencies = [ "sanitize-filename", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "toml", "tracing-subscriber", @@ -5155,8 +5145,8 @@ dependencies = [ [[package]] name = "ruma" -version = "0.14.1" -source = "git+https://github.com/project-robius/ruma.git?branch=tsp#98196b1db32d3393216f31d2c085a7082bd1d28d" +version = "0.16.0" +source = "git+https://github.com/project-robius/ruma.git?branch=tsp#921e2886367b371068aa3c079ce434db608600cf" dependencies = [ "assign", "js_int", @@ -5170,13 +5160,12 @@ dependencies = [ [[package]] name = "ruma-client-api" -version = "0.22.1" -source = "git+https://github.com/project-robius/ruma.git?branch=tsp#98196b1db32d3393216f31d2c085a7082bd1d28d" +version = "0.24.0" +source = "git+https://github.com/project-robius/ruma.git?branch=tsp#921e2886367b371068aa3c079ce434db608600cf" dependencies = [ "as_variant", "assign", "bytes", - "date_header", "http", "js_int", "js_option", @@ -5186,34 +5175,35 @@ dependencies = [ "serde", "serde_html_form", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "url", "web-time", ] [[package]] name = "ruma-common" -version = "0.17.1" -source = "git+https://github.com/project-robius/ruma.git?branch=tsp#98196b1db32d3393216f31d2c085a7082bd1d28d" +version = "0.19.0" +source = "git+https://github.com/project-robius/ruma.git?branch=tsp#921e2886367b371068aa3c079ce434db608600cf" dependencies = [ "as_variant", "base64", "bytes", + "date_header", "form_urlencoded", - "getrandom 0.2.16", + "getrandom 0.4.2", "http", "indexmap 2.13.0", "js_int", "konst", "percent-encoding", - "rand 0.8.5", + "rand 0.10.1", "regex", "ruma-identifiers-validation", "ruma-macros", "serde", "serde_html_form", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "time", "tracing", "url", @@ -5225,8 +5215,8 @@ dependencies = [ [[package]] name = "ruma-events" -version = "0.32.1" -source = "git+https://github.com/project-robius/ruma.git?branch=tsp#98196b1db32d3393216f31d2c085a7082bd1d28d" +version = "0.34.0" +source = "git+https://github.com/project-robius/ruma.git?branch=tsp#921e2886367b371068aa3c079ce434db608600cf" dependencies = [ "as_variant", "indexmap 2.13.0", @@ -5238,7 +5228,7 @@ dependencies = [ "ruma-macros", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", "web-time", "wildmatch", @@ -5247,8 +5237,8 @@ dependencies = [ [[package]] name = "ruma-html" -version = "0.6.0" -source = "git+https://github.com/project-robius/ruma.git?branch=tsp#98196b1db32d3393216f31d2c085a7082bd1d28d" +version = "0.8.0" +source = "git+https://github.com/project-robius/ruma.git?branch=tsp#921e2886367b371068aa3c079ce434db608600cf" dependencies = [ "as_variant", "html5ever", @@ -5258,17 +5248,17 @@ dependencies = [ [[package]] name = "ruma-identifiers-validation" -version = "0.12.0" -source = "git+https://github.com/project-robius/ruma.git?branch=tsp#98196b1db32d3393216f31d2c085a7082bd1d28d" +version = "0.12.1" +source = "git+https://github.com/project-robius/ruma.git?branch=tsp#921e2886367b371068aa3c079ce434db608600cf" dependencies = [ "js_int", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] name = "ruma-macros" -version = "0.17.1" -source = "git+https://github.com/project-robius/ruma.git?branch=tsp#98196b1db32d3393216f31d2c085a7082bd1d28d" +version = "0.19.0" +source = "git+https://github.com/project-robius/ruma.git?branch=tsp#921e2886367b371068aa3c079ce434db608600cf" dependencies = [ "as_variant", "cfg-if", @@ -5654,9 +5644,9 @@ dependencies = [ [[package]] name = "serde_html_form" -version = "0.2.8" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2f2d7ff8a2140333718bb329f5c40fc5f0865b84c426183ce14c97d2ab8154f" +checksum = "0946d52b4b7e28823148aebbeceb901012c595ad737920d504fa8634bb099e6f" dependencies = [ "form_urlencoded", "indexmap 2.13.0", @@ -5928,7 +5918,7 @@ dependencies = [ "serde_json", "sha2 0.10.9", "smallvec 1.15.1 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tokio-stream", "tracing", @@ -6008,7 +5998,7 @@ dependencies = [ "smallvec 1.15.1 (registry+https://github.com/rust-lang/crates.io-index)", "sqlx-core", "stringprep", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", "whoami", ] @@ -6045,7 +6035,7 @@ dependencies = [ "smallvec 1.15.1 (registry+https://github.com/rust-lang/crates.io-index)", "sqlx-core", "stringprep", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", "whoami", ] @@ -6069,7 +6059,7 @@ dependencies = [ "serde", "serde_urlencoded", "sqlx-core", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", "url", ] @@ -6224,11 +6214,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ - "thiserror-impl 2.0.17", + "thiserror-impl 2.0.18", ] [[package]] @@ -6244,9 +6234,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", @@ -6616,7 +6606,7 @@ dependencies = [ "serde_json", "serde_with", "sha2 0.11.0-rc.3", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tokio-rustls", "tokio-tungstenite", @@ -6647,7 +6637,7 @@ dependencies = [ "rustls", "rustls-pki-types", "sha1", - "thiserror 2.0.17", + "thiserror 2.0.18", "utf-8", ] @@ -6860,9 +6850,9 @@ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "vodozemac" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c022a277687e4e8685d72b95a7ca3ccfec907daa946678e715f8badaa650883d" +checksum = "b98bf83c0992966775b8012f194b07b44928996163e5a05b741b43891571ae5b" dependencies = [ "aes", "arrayvec", @@ -6883,7 +6873,7 @@ dependencies = [ "serde_json", "sha2 0.10.9", "subtle", - "thiserror 2.0.17", + "thiserror 2.0.18", "x25519-dalek", "zeroize", ] @@ -7171,15 +7161,6 @@ dependencies = [ "rustls-pki-types", ] -[[package]] -name = "webpki-roots" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cfaf3c063993ff62e73cb4311efde4db1efb31ab78a3e5c457939ad5cc0bed" -dependencies = [ - "rustls-pki-types", -] - [[package]] name = "weezl" version = "0.1.12" diff --git a/Cargo.toml b/Cargo.toml index 9a29f3e3b..a2c1920fd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,27 +49,28 @@ libc = "0.2" mime = "0.3" mime_guess = "2.0" linkify = "0.10.0" -matrix-sdk-base = { git = "https://github.com/project-robius/matrix-rust-sdk", branch = "space_room_suggested" } -matrix-sdk = { git = "https://github.com/project-robius/matrix-rust-sdk", branch = "space_room_suggested", default-features = false, features = [ +matrix-sdk-base = { git = "https://github.com/matrix-org/matrix-rust-sdk" } +matrix-sdk = { git = "https://github.com/matrix-org/matrix-rust-sdk", default-features = false, features = [ "e2e-encryption", "automatic-room-key-forwarding", "markdown", "sqlite", - "rustls-tls", "bundled-sqlite", "sso-login", ] } -matrix-sdk-ui = { git = "https://github.com/project-robius/matrix-rust-sdk", branch = "space_room_suggested", default-features = false, features = [ - "rustls-tls", -] } +matrix-sdk-ui = { git = "https://github.com/matrix-org/matrix-rust-sdk", default-features = false } ## Use the same ruma version as what's specified in matrix-sdk's Cargo.toml. ## Enable a few extra features: ## * "compat-optional" feature to allow missing body field in m.room.tombstone event. ## * "compat-unset-avatar" feature to allow deleting the user's avatar to work properly. +## * "unstable-compat-lax-syncv5-deser" feature to tolerate deserialization failures, which we added. ## * Note: we need a feature like "compat-unset-display-name" to unset display names, but that doesn't exist yet. -ruma = { git = "https://github.com/ruma/ruma", rev = "a0acf4187a7c7557d145db54bcb23b01f6295ce7", features = [ +## +## Note: we actually patch this below to use our `tsp` branch instead. +ruma = { git = "https://github.com/ruma/ruma", rev = "8beb557b466a43b057c9c155277c77fe8766fadf", features = [ "compat-optional", "compat-unset-avatar", + "unstable-compat-lax-syncv5-deser", ] } rand = "0.8.5" rangemap = "1.5.0" diff --git a/src/event_preview.rs b/src/event_preview.rs index be1581e6b..71838c271 100644 --- a/src/event_preview.rs +++ b/src/event_preview.rs @@ -7,7 +7,7 @@ use std::borrow::Cow; -use matrix_sdk::{ruma::{OwnedUserId, events::{room::{guest_access::GuestAccess, history_visibility::HistoryVisibility, join_rules::JoinRule, message::{MessageFormat, MessageType}}, AnySyncMessageLikeEvent, AnySyncTimelineEvent, StateEventContentChange, SyncMessageLikeEvent}, serde::Raw, UserId}}; +use matrix_sdk::{ruma::{OwnedUserId, events::{room::{guest_access::GuestAccess, history_visibility::HistoryVisibility, join_rules::JoinRule, message::{MessageFormat, MessageType}}, AnyRedactionEvent, AnySyncMessageLikeEvent, AnySyncTimelineEvent, StateEventContentChange, SyncMessageLikeEvent}, serde::Raw, UserId}}; use matrix_sdk_base::crypto::types::events::UtdCause; use matrix_sdk_ui::timeline::{self, AnyOtherStateEventContentChange, EncryptedMessage, EventTimelineItem, MemberProfileChange, MembershipChange, MsgLikeKind, OtherMessageLike, RoomMembershipChange, TimelineItemContent}; @@ -130,7 +130,7 @@ pub fn text_preview_of_timeline_item( String::from("[Call Invitation]"), BeforeText::UsernameWithColon, )), - TimelineItemContent::RtcNotification => TextPreview::from(( + TimelineItemContent::RtcNotification { .. } => TextPreview::from(( String::from("[RTC Call Notification]"), BeforeText::UsernameWithColon, )), @@ -207,7 +207,7 @@ pub fn plaintext_body_of_timeline_item( format!("Failed to parse {} state; key: {}. Error: {}", event_type, state_key, error) } TimelineItemContent::CallInvite => String::from("[Call Invitation]"), - TimelineItemContent::RtcNotification => String::from("[RTC Call Notification]"), + TimelineItemContent::RtcNotification { .. } => String::from("[RTC Call Notification]"), } } @@ -358,9 +358,13 @@ pub fn text_preview_of_redacted_message( ) )) = redacted_msg.deserialize() { if let Ok(redacted_because) = redaction.unsigned.redacted_because.deserialize() { + let reason = match &redacted_because { + AnyRedactionEvent::RoomRedaction(e) => e.content.reason.clone(), + _ => None, + }; redactor_and_reason = Some(( - redacted_because.sender, - redacted_because.content.reason, + redacted_because.sender().to_owned(), + reason, )); } } @@ -449,18 +453,6 @@ pub fn text_preview_of_other_state( format_as_html: bool, ) -> Option { let text = match other_state.content() { - AnyOtherStateEventContentChange::RoomAliases(StateEventContentChange::Original { content, .. }) => { - let mut s = String::from("set this room's aliases to "); - let last_alias = content.aliases.len() - 1; - for (i, alias) in content.aliases.iter().enumerate() { - s.push_str(alias.as_str()); - if i != last_alias { - s.push_str(", "); - } - } - s.push('.'); - Some(s) - } AnyOtherStateEventContentChange::RoomAvatar(_) => { Some(String::from("set this room's avatar picture.")) } diff --git a/src/home/room_screen.rs b/src/home/room_screen.rs index 9a5436f4f..d79c96c0e 100644 --- a/src/home/room_screen.rs +++ b/src/home/room_screen.rs @@ -22,7 +22,7 @@ use matrix_sdk::{ use matrix_sdk_ui::timeline::{ self, EmbeddedEvent, EncryptedMessage, EventTimelineItem, InReplyToDetails, LiveLocationState, MemberProfileChange, MembershipChange, MsgLikeContent, MsgLikeKind, OtherMessageLike, PollState, RoomMembershipChange, TimelineDetails, TimelineEventItemId, TimelineItem, TimelineItemContent, TimelineItemKind, VirtualTimelineItem }; -use ruma::{OwnedUserId, api::client::receipt::create_receipt::v3::ReceiptType, events::{AnySyncMessageLikeEvent, AnySyncTimelineEvent, SyncMessageLikeEvent}}; +use ruma::{OwnedUserId, api::client::receipt::create_receipt::v3::ReceiptType, events::{AnyRedactionEvent, AnySyncMessageLikeEvent, AnySyncTimelineEvent, SyncMessageLikeEvent}}; use matrix_sdk_ui::sync_service::State; use crate::{ @@ -4600,9 +4600,13 @@ fn populate_redacted_message_content( ) )) = redacted_msg.deserialize() { if let Ok(redacted_because) = redaction.unsigned.redacted_because.deserialize() { + let reason = match &redacted_because { + AnyRedactionEvent::RoomRedaction(e) => e.content.reason.clone(), + _ => None, + }; redactor_id_and_reason = Some(( - redacted_because.sender, - redacted_because.content.reason, + redacted_because.sender().to_owned(), + reason, )); } } diff --git a/src/sliding_sync.rs b/src/sliding_sync.rs index 2e46607a3..016b743ba 100644 --- a/src/sliding_sync.rs +++ b/src/sliding_sync.rs @@ -3781,7 +3781,7 @@ fn handle_load_app_state(user_id: OwnedUserId) { /// Returns `true` if the given sync service error is due to an invalid/expired access token. fn is_invalid_token_error(e: &sync_service::Error) -> bool { - use matrix_sdk::ruma::api::client::error::ErrorKind; + use matrix_sdk::ruma::api::error::ErrorKind; let sdk_error = match e { sync_service::Error::RoomList( matrix_sdk_ui::room_list_service::Error::SlidingSync(err) diff --git a/src/space_service_sync.rs b/src/space_service_sync.rs index c02bbc8a1..7e4fd3927 100644 --- a/src/space_service_sync.rs +++ b/src/space_service_sync.rs @@ -634,7 +634,7 @@ async fn space_room_list_loop( // The set of subspaces within this `space_id` that are already known to us. let mut known_subspaces = HashSet::new(); - let (mut all_rooms_in_space, mut space_room_stream) = space_room_list.subscribe_to_room_updates(); + let (mut all_rooms_in_space, mut space_room_stream) = space_room_list.subscribe_to_room_updates().await; handle_subspaces(&space_id, &parent_chain, &mut known_subspaces, all_rooms_in_space.iter(), &request_sender); // A tuple of: the latest `(direct child rooms, and direct subspaces)` within this space.