From d3ce661865377e59cd5de08515c116b6c99fd1ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Commaille?= Date: Mon, 14 Jul 2025 20:30:09 +0200 Subject: [PATCH] Upgrade ruma and matrix-sdk This upgrade is more about Ruma, to test the main branch that contains several breaking changes before it is released. --- Cargo.lock | 116 ++++++++++-------- Cargo.toml | 32 ++--- src/components/dialogs/auth/mod.rs | 17 +-- src/session/model/global_account_data.rs | 50 +++++--- src/session/model/remote/room.rs | 70 ++--------- src/session/model/room/timeline/mod.rs | 7 +- .../view/account_settings/general_page/mod.rs | 2 +- .../view/content/room_details/general_page.rs | 2 +- .../room_details/room_upgrade_dialog.rs | 2 +- 9 files changed, 144 insertions(+), 154 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 319652c1..ad8ee1e7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2114,6 +2114,30 @@ dependencies = [ "hashbrown", ] +[[package]] +name = "headers" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3314d5adb5d94bcdf56771f2e50dbbc80bb4bdf88967526706205ac9eff24eb" +dependencies = [ + "base64", + "bytes", + "headers-core", + "http", + "httpdate", + "mime", + "sha1", +] + +[[package]] +name = "headers-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4" +dependencies = [ + "http", +] + [[package]] name = "heck" version = "0.5.0" @@ -2173,6 +2197,15 @@ dependencies = [ "itoa", ] +[[package]] +name = "http-auth" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "150fa4a9462ef926824cf4519c84ed652ca8f4fbae34cb8af045b5cbcaf98822" +dependencies = [ + "memchr", +] + [[package]] name = "http-body" version = "1.0.1" @@ -2995,8 +3028,7 @@ dependencies = [ [[package]] name = "matrix-sdk" version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1de309d33d0c5d77829f952110e8b9e3e6c730880152db6e1778bcaa2cbfaef9" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=93e25496adac5dfcd15e938438511e87fe63fcd3#93e25496adac5dfcd15e938438511e87fe63fcd3" dependencies = [ "anymap2", "aquamarine", @@ -3053,8 +3085,7 @@ dependencies = [ [[package]] name = "matrix-sdk-base" version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad7f18305090c059293ebafefbfd8cac494f43386c3f255861995ee7b48f9e89" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=93e25496adac5dfcd15e938438511e87fe63fcd3#93e25496adac5dfcd15e938438511e87fe63fcd3" dependencies = [ "as_variant", "async-trait", @@ -3081,8 +3112,7 @@ dependencies = [ [[package]] name = "matrix-sdk-common" version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "065ac8905f199649e165d6233faa5b4eb9c7c117f61c9a5572250ae1feb9cd79" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=93e25496adac5dfcd15e938438511e87fe63fcd3#93e25496adac5dfcd15e938438511e87fe63fcd3" dependencies = [ "eyeball-im", "futures-core", @@ -3105,8 +3135,7 @@ dependencies = [ [[package]] name = "matrix-sdk-crypto" version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e38551f3da5909ed8bd62a9b2bc3315df25386c410fd7116dc1824d42406fbfd" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=93e25496adac5dfcd15e938438511e87fe63fcd3#93e25496adac5dfcd15e938438511e87fe63fcd3" dependencies = [ "aes", "aquamarine", @@ -3147,8 +3176,7 @@ dependencies = [ [[package]] name = "matrix-sdk-indexeddb" version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233b82cc549375e18ff1a0ccd5baf5db8ac4d44643b5b9b6bedffd74f72ed5f0" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=93e25496adac5dfcd15e938438511e87fe63fcd3#93e25496adac5dfcd15e938438511e87fe63fcd3" dependencies = [ "anyhow", "async-trait", @@ -3176,8 +3204,7 @@ dependencies = [ [[package]] name = "matrix-sdk-qrcode" version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5101e7d2e110978951bc917cdb6a00b84c358d3c1f9b2807d647addd76e6064f" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=93e25496adac5dfcd15e938438511e87fe63fcd3#93e25496adac5dfcd15e938438511e87fe63fcd3" dependencies = [ "byteorder", "qrcode", @@ -3189,8 +3216,7 @@ dependencies = [ [[package]] name = "matrix-sdk-sqlite" version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2ff57473e92bad1b7320b3d70d640661b95064e091b925c5ef88acfa281853" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=93e25496adac5dfcd15e938438511e87fe63fcd3#93e25496adac5dfcd15e938438511e87fe63fcd3" dependencies = [ "as_variant", "async-trait", @@ -3215,8 +3241,7 @@ dependencies = [ [[package]] name = "matrix-sdk-store-encryption" version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c2f3c5dfb6f61036290ee053f5cdc90ee672200e9254747b8eae922f00765f9" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=93e25496adac5dfcd15e938438511e87fe63fcd3#93e25496adac5dfcd15e938438511e87fe63fcd3" dependencies = [ "base64", "blake3", @@ -3235,8 +3260,7 @@ dependencies = [ [[package]] name = "matrix-sdk-ui" version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf740442da217e1df0b3cbde7299daea641f82d257676b9782f7f6309d7781cf" +source = "git+https://github.com/matrix-org/matrix-rust-sdk.git?rev=93e25496adac5dfcd15e938438511e87fe63fcd3#93e25496adac5dfcd15e938438511e87fe63fcd3" dependencies = [ "as_variant", "async-rx", @@ -3761,7 +3785,6 @@ version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" dependencies = [ - "phf_macros", "phf_shared", ] @@ -3785,19 +3808,6 @@ dependencies = [ "rand 0.8.5", ] -[[package]] -name = "phf_macros" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" -dependencies = [ - "phf_generator", - "phf_shared", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "phf_shared" version = "0.11.3" @@ -4220,8 +4230,7 @@ dependencies = [ [[package]] name = "ruma" version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1d47e42b7dea75a468dea63a230f51331c58d690ca018ea1c6ac782ea98880c" +source = "git+https://github.com/ruma/ruma.git?rev=a3663c04511f79f99376924d739f84d839600de6#a3663c04511f79f99376924d739f84d839600de6" dependencies = [ "assign", "js_int", @@ -4237,8 +4246,7 @@ dependencies = [ [[package]] name = "ruma-client-api" version = "0.20.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a9e9c613cfda4923b851c5d8bc442305905bee4f0c2b924564b00e71636c8d4" +source = "git+https://github.com/ruma/ruma.git?rev=a3663c04511f79f99376924d739f84d839600de6#a3663c04511f79f99376924d739f84d839600de6" dependencies = [ "as_variant", "assign", @@ -4261,8 +4269,7 @@ dependencies = [ [[package]] name = "ruma-common" version = "0.15.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "387e1898e868d32ff7b205e7db327361d5dcf635c00a8ae5865068607595a9cf" +source = "git+https://github.com/ruma/ruma.git?rev=a3663c04511f79f99376924d739f84d839600de6#a3663c04511f79f99376924d739f84d839600de6" dependencies = [ "as_variant", "base64", @@ -4289,13 +4296,13 @@ dependencies = [ "uuid", "web-time", "wildmatch", + "zeroize", ] [[package]] name = "ruma-events" version = "0.30.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cdc7abec9bc2a9ca0b4831cc26ce97a6a8c39a0bde44a19281a719e861b4293" +source = "git+https://github.com/ruma/ruma.git?rev=a3663c04511f79f99376924d739f84d839600de6#a3663c04511f79f99376924d739f84d839600de6" dependencies = [ "as_variant", "indexmap", @@ -4315,32 +4322,34 @@ dependencies = [ "url", "web-time", "wildmatch", + "zeroize", ] [[package]] name = "ruma-federation-api" version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2a705c3911870782e036a3a8b676d0166c6c93800b84f6b8b23c981f78ef08" +source = "git+https://github.com/ruma/ruma.git?rev=a3663c04511f79f99376924d739f84d839600de6#a3663c04511f79f99376924d739f84d839600de6" dependencies = [ + "headers", "http", + "http-auth", "js_int", "mime", "ruma-common", "ruma-events", "serde", "serde_json", + "thiserror 2.0.12", + "tracing", ] [[package]] name = "ruma-html" version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "865afa2321e34fa836ea4c1d77ce0c2bb40f7d13fe18ee3e795091fd8d173a1d" +source = "git+https://github.com/ruma/ruma.git?rev=a3663c04511f79f99376924d739f84d839600de6#a3663c04511f79f99376924d739f84d839600de6" dependencies = [ "as_variant", "html5ever", - "phf", "ruma-common", "tracing", "wildmatch", @@ -4349,8 +4358,7 @@ dependencies = [ [[package]] name = "ruma-identifiers-validation" version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ad674b5e5368c53a2c90fde7dac7e30747004aaf7b1827b72874a25fc06d4d8" +source = "git+https://github.com/ruma/ruma.git?rev=a3663c04511f79f99376924d739f84d839600de6#a3663c04511f79f99376924d739f84d839600de6" dependencies = [ "js_int", "thiserror 2.0.12", @@ -4359,8 +4367,7 @@ dependencies = [ [[package]] name = "ruma-macros" version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ff13fbd6045a7278533390826de316d6116d8582ed828352661337b0c422e1c" +source = "git+https://github.com/ruma/ruma.git?rev=a3663c04511f79f99376924d739f84d839600de6#a3663c04511f79f99376924d739f84d839600de6" dependencies = [ "cfg-if", "proc-macro-crate", @@ -4632,6 +4639,17 @@ dependencies = [ "serde", ] +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + [[package]] name = "sha2" version = "0.10.9" diff --git a/Cargo.toml b/Cargo.toml index fc2976d4..bbdc8cec 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -71,35 +71,37 @@ shumate = { package = "libshumate", version = "0.6" } sourceview = { package = "sourceview5", version = "0.9" } [dependencies.matrix-sdk] -version = "0.13" -# git = "https://github.com/matrix-org/matrix-rust-sdk.git" -# rev = "db477a84bf9e6fcf45e1e36eecbf80398338886a" +# version = "0.13" +git = "https://github.com/matrix-org/matrix-rust-sdk.git" +rev = "93e25496adac5dfcd15e938438511e87fe63fcd3" features = ["socks", "sso-login", "markdown", "qrcode"] [dependencies.matrix-sdk-store-encryption] -version = "0.13" -# git = "https://github.com/matrix-org/matrix-rust-sdk.git" -# rev = "db477a84bf9e6fcf45e1e36eecbf80398338886a" +# version = "0.13" +git = "https://github.com/matrix-org/matrix-rust-sdk.git" +rev = "93e25496adac5dfcd15e938438511e87fe63fcd3" [dependencies.matrix-sdk-ui] -version = "0.13" -# git = "https://github.com/matrix-org/matrix-rust-sdk.git" -# rev = "db477a84bf9e6fcf45e1e36eecbf80398338886a" +# version = "0.13" +git = "https://github.com/matrix-org/matrix-rust-sdk.git" +rev = "93e25496adac5dfcd15e938438511e87fe63fcd3" [dependencies.ruma] -version = "0.12.5" -# git = "https://github.com/ruma/ruma.git" -# rev = "d1d53e2b7aaf9190f11a5465b9edf6a19fc5b59a" +# version = "0.12.5" +git = "https://github.com/ruma/ruma.git" +rev = "a3663c04511f79f99376924d739f84d839600de6" features = [ - "unstable-unspecified", "client-api-c", + "markdown", + "html-matrix", + "compat-arbitrary-length-ids", "compat-server-signing-key-version", - "compat-user-id", "compat-empty-string-null", "compat-null", "compat-optional", "compat-unset-avatar", - "html-matrix", + "compat-lax-room-create-deser", + "compat-lax-room-topic-deser", "unstable-msc3824", ] diff --git a/src/components/dialogs/auth/mod.rs b/src/components/dialogs/auth/mod.rs index 1cdf2dfe..5e31be77 100644 --- a/src/components/dialogs/auth/mod.rs +++ b/src/components/dialogs/auth/mod.rs @@ -7,7 +7,7 @@ use gtk::{CompositeTemplate, glib, glib::clone}; use matrix_sdk::{Error, encryption::CrossSigningResetAuthType}; use ruma::{ api::{ - MatrixVersion, OutgoingRequest, SendAccessToken, + MatrixVersion, OutgoingRequest, SendAccessToken, SupportedVersions, client::uiaa::{ AuthData, AuthType, Dummy, FallbackAcknowledgement, Password, UiaaInfo, UserIdentifier, get_uiaa_fallback_page, @@ -387,21 +387,24 @@ mod imp { let uiaa_session = state.session.clone().ok_or(AuthError::MissingSessionId)?; let request = - get_uiaa_fallback_page::v3::Request::new(state.stage.to_string(), uiaa_session); + get_uiaa_fallback_page::v3::Request::new(state.stage.clone(), uiaa_session); let client = session.client(); let homeserver = client.homeserver(); let handle = - spawn_tokio!(async move { client.server_versions().await.map_err(Into::into) }); + spawn_tokio!(async move { client.supported_versions().await.map_err(Into::into) }); let result = self.await_tokio_task(handle).await; - let server_versions = match result { - Ok(server_versions) => server_versions, + let supported_versions = match result { + Ok(supported_versions) => supported_versions, Err(AuthError::ServerResponse(server_error)) => { warn!("Could not get Matrix versions supported by homeserver: {server_error}"); // Default to the v3 endpoint. - Box::new([MatrixVersion::V1_1]) + SupportedVersions { + versions: [MatrixVersion::V1_1].into(), + features: Default::default(), + } } Err(error) => { return Err(error); @@ -411,7 +414,7 @@ mod imp { let http_request = match request.try_into_http_request::>( homeserver.as_ref(), SendAccessToken::None, - &server_versions, + &supported_versions, ) { Ok(http_request) => http_request, Err(error) => { diff --git a/src/session/model/global_account_data.rs b/src/session/model/global_account_data.rs index 85b45d7b..1c125282 100644 --- a/src/session/model/global_account_data.rs +++ b/src/session/model/global_account_data.rs @@ -14,6 +14,11 @@ use tracing::error; use super::{Room, Session}; use crate::{spawn, spawn_tokio}; +/// We default the media previews setting to private. +const DEFAULT_MEDIA_PREVIEWS: MediaPreviews = MediaPreviews::Private; +/// We enable the invite avatars by default. +const DEFAULT_INVITE_AVATARS_ENABLED: bool = true; + mod imp { use std::{ cell::{Cell, OnceCell, RefCell}, @@ -24,7 +29,7 @@ mod imp { use super::*; - #[derive(Debug, Default, glib::Properties)] + #[derive(Debug, glib::Properties)] #[properties(wrapper_type = super::GlobalAccountData)] pub struct GlobalAccountData { /// The session this account data belongs to. @@ -33,11 +38,22 @@ mod imp { /// Which rooms display media previews for this session. pub(super) media_previews_enabled: RefCell, /// Whether to display avatars in invites. - #[property(get, default = true)] + #[property(get, default = DEFAULT_INVITE_AVATARS_ENABLED)] invite_avatars_enabled: Cell, abort_handle: RefCell>, } + impl Default for GlobalAccountData { + fn default() -> Self { + Self { + session: Default::default(), + media_previews_enabled: RefCell::new(DEFAULT_MEDIA_PREVIEWS), + invite_avatars_enabled: Cell::new(DEFAULT_INVITE_AVATARS_ENABLED), + abort_handle: Default::default(), + } + } + } + #[glib::object_subclass] impl ObjectSubclass for GlobalAccountData { const NAME: &'static str = "GlobalAccountData"; @@ -116,21 +132,26 @@ mod imp { /// Update the media previews settings with the given account data. fn update_media_previews_settings(&self, account_data: MediaPreviewConfigEventContent) { + let media_previews = account_data + .media_previews + .unwrap_or(DEFAULT_MEDIA_PREVIEWS); let media_previews_enabled_changed = - *self.media_previews_enabled.borrow() != account_data.media_previews; + *self.media_previews_enabled.borrow() != media_previews; if media_previews_enabled_changed { - *self.media_previews_enabled.borrow_mut() = account_data.media_previews; + *self.media_previews_enabled.borrow_mut() = media_previews; self.obj() .emit_by_name::<()>("media-previews-enabled-changed", &[]); } - let account_data_invite_avatars_enabled = - account_data.invite_avatars == InviteAvatars::On; + let invite_avatars_enabled = account_data + .invite_avatars + .map_or(DEFAULT_INVITE_AVATARS_ENABLED, |invite_avatars| { + invite_avatars == InviteAvatars::On + }); let invite_avatars_enabled_changed = - self.invite_avatars_enabled.get() != account_data_invite_avatars_enabled; + self.invite_avatars_enabled.get() != invite_avatars_enabled; if invite_avatars_enabled_changed { - self.invite_avatars_enabled - .set(account_data_invite_avatars_enabled); + self.invite_avatars_enabled.set(invite_avatars_enabled); self.obj().notify_invite_avatars_enabled(); } } @@ -149,18 +170,17 @@ mod imp { let stored_media_previews_enabled = stored_settings .media_previews_enabled .take() - .map(|setting| setting.global) - .unwrap_or_default(); + .map_or(DEFAULT_MEDIA_PREVIEWS, |setting| setting.global.into()); let _ = self - .set_media_previews_enabled(stored_media_previews_enabled.into()) + .set_media_previews_enabled(stored_media_previews_enabled) .await; - let stored_media_previews_enabled = stored_settings + let stored_invite_avatars_enabled = stored_settings .invite_avatars_enabled .take() - .unwrap_or(true); + .unwrap_or(DEFAULT_INVITE_AVATARS_ENABLED); let _ = self - .set_invite_avatars_enabled(stored_media_previews_enabled) + .set_invite_avatars_enabled(stored_invite_avatars_enabled) .await; session_settings.apply_version_1_migration(); diff --git a/src/session/model/remote/room.rs b/src/session/model/remote/room.rs index 2718ba21..6025149e 100644 --- a/src/session/model/remote/room.rs +++ b/src/session/model/remote/room.rs @@ -3,13 +3,9 @@ use std::{cell::RefCell, time::Duration}; use gtk::{glib, glib::clone, prelude::*, subclass::prelude::*}; use matrix_sdk::reqwest::StatusCode; use ruma::{ - OwnedMxcUri, OwnedRoomAliasId, OwnedRoomId, - api::client::{ - room::get_summary, - space::{SpaceHierarchyRoomsChunk, get_hierarchy}, - }, + OwnedRoomAliasId, OwnedRoomId, + api::client::{room::get_summary, space::get_hierarchy}, assign, - directory::PublicRoomsChunk, room::RoomSummary, uint, }; @@ -257,12 +253,12 @@ mod imp { } /// Set the room data. - pub(super) fn set_data(&self, data: RemoteRoomData) { + pub(super) fn set_data(&self, data: RoomSummary) { self.set_room_id(data.room_id); self.set_canonical_alias(data.canonical_alias); self.set_name(data.name); self.set_topic(data.topic); - self.set_joined_members_count(data.joined_members_count); + self.set_joined_members_count(data.num_joined_members.try_into().unwrap_or(u32::MAX)); if let Some(image) = self.obj().avatar_data().image() { image.set_uri_and_info(data.avatar_url, None); @@ -320,7 +316,7 @@ mod imp { match result { Ok(response) => { - self.set_data(response.summary.into()); + self.set_data(response.summary); true } Err(error) => { @@ -390,9 +386,9 @@ mod imp { .rooms .into_iter() .next() - .filter(|c| c.room_id == room_id) + .filter(|c| c.summary.room_id == room_id) { - self.set_data(chunk.into()); + self.set_data(chunk.summary); } else { debug!("Space hierarchy endpoint did not return requested room"); self.set_loading_state(LoadingState::Error); @@ -439,7 +435,7 @@ impl RemoteRoom { pub(crate) fn with_data( session: &Session, uri: MatrixRoomIdUri, - data: impl Into, + data: impl Into, ) -> Self { let obj = Self::without_data(session, uri); obj.imp().set_data(data.into()); @@ -484,53 +480,3 @@ impl RemoteRoom { )); } } - -/// The remote room data. -#[derive(Debug)] -pub(crate) struct RemoteRoomData { - room_id: OwnedRoomId, - canonical_alias: Option, - name: Option, - topic: Option, - avatar_url: Option, - joined_members_count: u32, -} - -impl From for RemoteRoomData { - fn from(value: RoomSummary) -> Self { - Self { - room_id: value.room_id, - canonical_alias: value.canonical_alias, - name: value.name, - topic: value.topic, - avatar_url: value.avatar_url, - joined_members_count: value.num_joined_members.try_into().unwrap_or(u32::MAX), - } - } -} - -impl From for RemoteRoomData { - fn from(value: SpaceHierarchyRoomsChunk) -> Self { - Self { - room_id: value.room_id, - canonical_alias: value.canonical_alias, - name: value.name, - topic: value.topic, - avatar_url: value.avatar_url, - joined_members_count: value.num_joined_members.try_into().unwrap_or(u32::MAX), - } - } -} - -impl From for RemoteRoomData { - fn from(value: PublicRoomsChunk) -> Self { - Self { - room_id: value.room_id, - canonical_alias: value.canonical_alias, - name: value.name, - topic: value.topic, - avatar_url: value.avatar_url, - joined_members_count: value.num_joined_members.try_into().unwrap_or(u32::MAX), - } - } -} diff --git a/src/session/model/room/timeline/mod.rs b/src/session/model/room/timeline/mod.rs index 6f01c624..2369bb40 100644 --- a/src/session/model/room/timeline/mod.rs +++ b/src/session/model/room/timeline/mod.rs @@ -15,11 +15,12 @@ use matrix_sdk_ui::{ }, }; use ruma::{ - OwnedEventId, RoomVersionId, UserId, + OwnedEventId, UserId, events::{ AnySyncMessageLikeEvent, AnySyncStateEvent, AnySyncTimelineEvent, SyncMessageLikeEvent, SyncStateEvent, room::message::MessageType, }, + room_version_rules::RoomVersionRules, }; use tokio::task::AbortHandle; use tracing::error; @@ -1094,9 +1095,9 @@ impl Timeline { } /// Whether the given event should be shown in the timeline. -fn show_in_timeline(any: &AnySyncTimelineEvent, room_version: &RoomVersionId) -> bool { +fn show_in_timeline(any: &AnySyncTimelineEvent, rules: &RoomVersionRules) -> bool { // Make sure we do not show events that cannot be shown. - if !default_event_filter(any, room_version) { + if !default_event_filter(any, rules) { return false; } diff --git a/src/session/view/account_settings/general_page/mod.rs b/src/session/view/account_settings/general_page/mod.rs index 4602b3af..64c46105 100644 --- a/src/session/view/account_settings/general_page/mod.rs +++ b/src/session/view/account_settings/general_page/mod.rs @@ -2,7 +2,7 @@ use adw::{prelude::*, subclass::prelude::*}; use gettextrs::gettext; use gtk::{CompositeTemplate, gio, glib, glib::clone}; use matrix_sdk::authentication::oauth::{AccountManagementActionFull, AccountManagementUrlBuilder}; -use ruma::{OwnedMxcUri, api::client::discovery::get_capabilities::Capabilities}; +use ruma::{OwnedMxcUri, api::client::discovery::get_capabilities::v3::Capabilities}; use tracing::error; mod change_password_subpage; diff --git a/src/session/view/content/room_details/general_page.rs b/src/session/view/content/room_details/general_page.rs index 2cfcc8db..79d190a0 100644 --- a/src/session/view/content/room_details/general_page.rs +++ b/src/session/view/content/room_details/general_page.rs @@ -8,7 +8,7 @@ use gtk::{ use ruma::{ api::client::{ directory::{get_room_visibility, set_room_visibility}, - discovery::get_capabilities::Capabilities, + discovery::get_capabilities::v3::Capabilities, room::{Visibility, upgrade_room}, }, events::{ diff --git a/src/session/view/content/room_details/room_upgrade_dialog.rs b/src/session/view/content/room_details/room_upgrade_dialog.rs index b6a04768..b9006501 100644 --- a/src/session/view/content/room_details/room_upgrade_dialog.rs +++ b/src/session/view/content/room_details/room_upgrade_dialog.rs @@ -5,7 +5,7 @@ use gettextrs::gettext; use gtk::{gio, glib, pango, subclass::prelude::*}; use ruma::{ RoomVersionId, - api::client::discovery::get_capabilities::{RoomVersionStability, RoomVersionsCapability}, + api::client::discovery::get_capabilities::v3::{RoomVersionStability, RoomVersionsCapability}, }; use tracing::error;