Browse Source

chore: Update matrix-sdk

merge-requests/1461/head
Kévin Commaille 2 years ago committed by Kévin Commaille
parent
commit
e4225577fd
  1. 1486
      Cargo.lock
  2. 20
      Cargo.toml
  3. 4
      src/components/auth_dialog.rs
  4. 2
      src/login/homeserver_page.rs
  5. 16
      src/login/mod.rs
  6. 6
      src/secret.rs
  7. 2
      src/session/model/room/mod.rs
  8. 11
      src/session/model/room/timeline/mod.rs
  9. 4
      src/session/model/session.rs
  10. 2
      src/session/view/account_settings/user_page/mod.rs
  11. 17
      src/session/view/content/room_details/general_page/mod.rs
  12. 8
      src/session/view/content/room_history/mod.rs

1486
Cargo.lock generated

File diff suppressed because it is too large Load Diff

20
Cargo.toml

@ -28,7 +28,7 @@ ashpd = { version = "0.6", default-features = false, features = [
"tokio",
] }
djb_hash = "0.1"
eyeball-im = "0.2"
eyeball-im = "0.4"
futures-channel = "0.3"
futures-util = "0.3"
geo-uri = "0.2"
@ -79,8 +79,8 @@ version = "0.7"
features = ["v4_10"]
[dependencies.matrix-sdk]
git = "https://github.com/matrix-org/matrix-rust-sdk.git"
rev = "4643bae28445e058080896a280083b32fd403146"
git = "https://github.com/zecakeh/matrix-rust-sdk.git"
rev = "ff9d8e78923cb006295bf8f6bd88558bdf21bb44"
features = [
"socks",
"sso-login",
@ -90,19 +90,18 @@ features = [
]
[dependencies.matrix-sdk-ui]
git = "https://github.com/matrix-org/matrix-rust-sdk.git"
rev = "4643bae28445e058080896a280083b32fd403146"
git = "https://github.com/zecakeh/matrix-rust-sdk.git"
rev = "ff9d8e78923cb006295bf8f6bd88558bdf21bb44"
default-features = false
features = ["e2e-encryption", "native-tls"]
[dependencies.ruma]
# version = "0.8.2"
git = "https://github.com/ruma/ruma.git"
rev = "f1772ae5bc1d849655498f51b0fec7b0ef10e339"
version = "0.9.1"
# git = "https://github.com/ruma/ruma.git"
# rev = "4ef6d1641bdd7d1c1586d2356c183798f3900bf1"
features = [
"unstable-unspecified",
"client-api-c",
"unstable-sanitize",
"client-api-c",
"compat-key-id",
"compat-user-id",
"compat-empty-string-null",
@ -110,6 +109,7 @@ features = [
"compat-optional",
"compat-unset-avatar",
"compat-get-3pids",
"html",
]
[dependencies.shumate]

4
src/components/auth_dialog.rs

@ -294,9 +294,7 @@ impl AuthDialog {
let session = session.ok_or(AuthError::MissingSessionId)?;
let client = self.session().client();
let homeserver = spawn_tokio!(async move { client.homeserver().await })
.await
.unwrap();
let homeserver = client.homeserver();
self.imp().stack.set_visible_child_name("fallback");
self.setup_fallback_page(homeserver.as_str(), stage.as_ref(), &session);
self.show_and_wait_for_response().await?;

2
src/login/homeserver_page.rs

@ -224,7 +224,7 @@ impl LoginHomeserverPage {
match res {
Ok((client, server_name)) => {
login.set_domain(server_name);
login.set_client(Some(client.clone())).await;
login.set_client(Some(client.clone()));
self.homeserver_login_types(client).await;
}

16
src/login/mod.rs

@ -228,16 +228,8 @@ impl Login {
}
/// Set the Matrix client.
async fn set_client(&self, client: Option<Client>) {
let homeserver = if let Some(client) = client.clone() {
Some(
spawn_tokio!(async move { client.homeserver().await })
.await
.unwrap(),
)
} else {
None
};
fn set_client(&self, client: Option<Client>) {
let homeserver = client.as_ref().map(|client| client.homeserver());
self.set_homeserver(homeserver);
self.imp().client.replace(client);
@ -485,9 +477,7 @@ impl Login {
let client = self.client().await.unwrap();
// The homeserver could have changed with the login response so get it from the
// Client.
let homeserver = spawn_tokio!(async move { client.homeserver().await })
.await
.unwrap();
let homeserver = client.homeserver();
match Session::new(homeserver, (&response).into()).await {
Ok(session) => {

6
src/secret.rs

@ -3,7 +3,7 @@ use std::{collections::HashMap, ffi::OsStr, fmt, fs, path::PathBuf, string::From
use gettextrs::gettext;
use gtk::glib;
use matrix_sdk::{
matrix_auth::{Session as MatrixSession, SessionTokens},
matrix_auth::{MatrixSession, MatrixSessionTokens},
SessionMeta,
};
use once_cell::sync::Lazy;
@ -314,7 +314,7 @@ impl StoredSession {
pub fn with_login_data(homeserver: Url, data: MatrixSession) -> Self {
let MatrixSession {
meta: SessionMeta { user_id, device_id },
tokens: SessionTokens { access_token, .. },
tokens: MatrixSessionTokens { access_token, .. },
} = data;
let path = DATA_PATH.join(glib::uuid_string_random().as_str());
@ -356,7 +356,7 @@ impl StoredSession {
let data = MatrixSession {
meta: SessionMeta { user_id, device_id },
tokens: SessionTokens {
tokens: MatrixSessionTokens {
access_token,
refresh_token: None,
},

2
src/session/model/room/mod.rs

@ -1190,7 +1190,7 @@ impl Room {
let timeline = self.timeline().matrix_timeline();
let content = content.into();
let handle = spawn_tokio!(async move { timeline.send(content, None).await });
let handle = spawn_tokio!(async move { timeline.send(content).await });
spawn!(
glib::Priority::DEFAULT_IDLE,

11
src/session/model/room/timeline/mod.rs

@ -278,6 +278,17 @@ impl Timeline {
sdk_items.remove(pos);
self.update_items_headers(pos, 1);
}
VectorDiff::Truncate { length } => {
let new_len = length as u32;
let old_len = sdk_items.n_items();
for pos in new_len..old_len {
let item = sdk_items.item(pos).and_downcast().unwrap();
self.remove_item(&item);
}
sdk_items.splice(new_len, old_len - new_len, &[] as &[glib::Object]);
}
VectorDiff::Reset { values } => {
let new_list = values
.into_iter()

4
src/session/model/session.rs

@ -8,8 +8,8 @@ use gtk::{
glib::{clone, signal::SignalHandlerId},
};
use matrix_sdk::{
config::SyncSettings, matrix_auth::Session as MatrixSession, room::Room as MatrixRoom,
sync::SyncResponse, Client,
config::SyncSettings, matrix_auth::MatrixSession, room::Room as MatrixRoom, sync::SyncResponse,
Client,
};
use ruma::{
api::client::{

2
src/session/view/account_settings/user_page/mod.rs

@ -161,7 +161,7 @@ impl UserPage {
let imp = obj.imp();
let client = obj.session().unwrap().client();
let homeserver = client.homeserver().await;
let homeserver = client.homeserver();
imp.homeserver.set_label(homeserver.as_ref());
let user_id = client.user_id().unwrap();

17
src/session/view/content/room_details/general_page/mod.rs

@ -484,13 +484,9 @@ impl GeneralPage {
};
let imp = self.imp();
let raw_name = imp.room_name_entry.text().to_string();
let raw_name = imp.room_name_entry.text();
let trimmed_name = raw_name.trim();
let name = if trimmed_name.is_empty() {
None
} else {
Some(trimmed_name.to_owned())
};
let name = (!trimmed_name.is_empty()).then(|| trimmed_name.to_owned());
let topic_buffer = imp.room_topic_text_view.buffer();
let raw_topic = topic_buffer
@ -498,7 +494,11 @@ impl GeneralPage {
.to_string();
let topic = raw_topic.trim().to_owned();
let name_changed = name != room.name();
let name_changed = if let Some(name) = &name {
*name != room.display_name()
} else {
room.name().is_some()
};
let topic_changed = topic != room.topic().unwrap_or_default();
if !name_changed && !topic_changed {
@ -521,7 +521,8 @@ impl GeneralPage {
};
imp.changing_name.replace(Some(action));
let handle = spawn_tokio!(async move { matrix_room.set_name(name).await });
let handle =
spawn_tokio!(async move { matrix_room.set_name(name.unwrap_or_default()).await });
// We don't need to handle the success of the request, we should receive the
// change via sync.

8
src/session/view/content/room_history/mod.rs

@ -40,7 +40,7 @@ use ruma::{
receipt::ReceiptThread,
room::{
message::{
ForwardThread, LocationMessageEventContent, MessageFormat,
AddMentions, ForwardThread, LocationMessageEventContent, MessageFormat,
OriginalSyncRoomMessageEvent, RoomMessageEventContent,
},
power_levels::PowerLevelAction,
@ -884,7 +884,11 @@ impl RoomHistory {
{
let full_related_message_event = related_message_event
.into_full_event(self.room().unwrap().room_id().to_owned());
content = content.make_reply_to(&full_related_message_event, ForwardThread::Yes)
content = content.make_reply_to(
&full_related_message_event,
ForwardThread::Yes,
AddMentions::No,
)
}
}

Loading…
Cancel
Save