[fractal] chore: update dependencies
- From: Kévin Commaille <kcommaille src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [fractal] chore: update dependencies
- Date: Thu, 15 Sep 2022 08:57:37 +0000 (UTC)
commit d4f3a7005b8c37b8ed870e4fa8206174d5adbedf
Author: Kévin Commaille <zecakeh tedomum fr>
Date: Mon Sep 12 12:08:40 2022 +0200
chore: update dependencies
Part-of: <https://gitlab.gnome.org/GNOME/fractal/-/merge_requests/1152>
Cargo.lock | 608 +++++++++++----------
Cargo.toml | 3 +-
src/contrib/qr_code_scanner/qr_code_detector.rs | 48 +-
.../account_settings/devices_page/device.rs | 2 +-
src/session/account_settings/user_page/mod.rs | 14 +-
src/session/avatar.rs | 7 +-
src/session/content/room_history/item_row.rs | 4 +-
.../content/room_history/message_row/audio.rs | 2 +-
.../content/room_history/message_row/media.rs | 6 +-
src/session/mod.rs | 72 ++-
src/session/room/event/mod.rs | 22 +-
src/session/room/event/supported_event.rs | 58 +-
src/session/room/event/unsupported_event.rs | 8 +-
src/session/room/member.rs | 2 +-
src/session/room/member_list.rs | 2 +-
src/session/room/mod.rs | 82 ++-
src/session/room/timeline/mod.rs | 6 +-
src/session/room_creation/mod.rs | 10 +-
src/session/room_list.rs | 7 +-
src/session/user.rs | 2 +-
src/session/verification/verification_list.rs | 8 +-
21 files changed, 529 insertions(+), 444 deletions(-)
---
diff --git a/Cargo.lock b/Cargo.lock
index dabd2ab31..40a965786 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -48,18 +48,18 @@ dependencies = [
[[package]]
name = "aho-corasick"
-version = "0.7.18"
+version = "0.7.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
+checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e"
dependencies = [
"memchr",
]
[[package]]
name = "ammonia"
-version = "3.2.0"
+version = "3.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5ed2509ee88cc023cccee37a6fab35826830fe8b748b3869790e7720c2c4a74"
+checksum = "4b477377562f3086b7778d241786e9406b883ccfaa03557c0fe0924b9349f13a"
dependencies = [
"html5ever 0.26.0",
"maplit",
@@ -68,6 +68,15 @@ dependencies = [
"url",
]
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+dependencies = [
+ "libc",
+]
+
[[package]]
name = "ansi_term"
version = "0.12.1"
@@ -79,9 +88,9 @@ dependencies = [
[[package]]
name = "anyhow"
-version = "1.0.59"
+version = "1.0.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c91f1f46651137be86f3a2b9a8359f9ab421d04d941c62b5982e1ca21113adf9"
+checksum = "b9a8f622bcf6ff3df478e9deba3e03e4e04b300f8e6a139e192c05fa3490afc7"
[[package]]
name = "anymap2"
@@ -143,9 +152,9 @@ dependencies = [
[[package]]
name = "async-channel"
-version = "1.6.1"
+version = "1.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319"
+checksum = "e14485364214912d3b19cc3435dde4df66065127f05fa0d75c712f36f12c2f28"
dependencies = [
"concurrent-queue",
"event-listener",
@@ -168,10 +177,11 @@ dependencies = [
[[package]]
name = "async-io"
-version = "1.7.0"
+version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5e18f61464ae81cde0a23e713ae8fd299580c54d697a35820cfd0625b8b0e07"
+checksum = "83e21f3a490c72b3b0cf44962180e60045de2925d8dff97918f7ee43c8f637c7"
dependencies = [
+ "autocfg",
"concurrent-queue",
"futures-lite",
"libc",
@@ -206,9 +216,9 @@ version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d7d78656ba01f1b93024b7c3a0467f1608e4be67d725749fdcd7d2c7678fd7a2"
dependencies = [
- "proc-macro2 1.0.42",
- "quote 1.0.20",
- "syn 1.0.98",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
+ "syn 1.0.99",
]
[[package]]
@@ -227,9 +237,9 @@ version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27"
dependencies = [
- "proc-macro2 1.0.42",
- "quote 1.0.20",
- "syn 1.0.98",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
+ "syn 1.0.99",
]
[[package]]
@@ -244,9 +254,9 @@ version = "0.1.57"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "76464446b8bc32758d7e88ee1a804d9914cd9b1cb264c029899680b0be29826f"
dependencies = [
- "proc-macro2 1.0.42",
- "quote 1.0.20",
- "syn 1.0.98",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
+ "syn 1.0.99",
]
[[package]]
@@ -297,9 +307,9 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
[[package]]
name = "base64ct"
-version = "1.5.1"
+version = "1.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3bdca834647821e0b13d9539a8634eb62d3501b6b6c2cec1722786ee6671b851"
+checksum = "ea2b2456fd614d856680dcd9fcc660a51a820fa09daef2e49772b56a193c8474"
[[package]]
name = "bindgen"
@@ -316,8 +326,8 @@ dependencies = [
"lazycell",
"log",
"peeking_take_while",
- "proc-macro2 1.0.42",
- "quote 1.0.20",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
"regex",
"rustc-hash",
"shlex",
@@ -361,9 +371,9 @@ dependencies = [
[[package]]
name = "block-buffer"
-version = "0.10.2"
+version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324"
+checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e"
dependencies = [
"generic-array",
]
@@ -379,15 +389,15 @@ dependencies = [
[[package]]
name = "bumpalo"
-version = "3.10.0"
+version = "3.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3"
+checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d"
[[package]]
name = "bytemuck"
-version = "1.11.0"
+version = "1.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5377c8865e74a160d21f29c2d40669f53286db6eab59b88540cbb12ffc8b835"
+checksum = "2f5715e491b5a1598fc2bef5a606847b5dc1d48ea625bd3c02c00de8285591da"
[[package]]
name = "byteorder"
@@ -509,11 +519,11 @@ checksum = "17cc5e6b5ab06331c33589842070416baa137e8b0eb912b008cfd4a78ada7919"
[[package]]
name = "chrono"
-version = "0.4.19"
+version = "0.4.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
+checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1"
dependencies = [
- "libc",
+ "iana-time-zone",
"num-integer",
"num-traits",
"winapi",
@@ -615,9 +625,9 @@ checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
[[package]]
name = "cpufeatures"
-version = "0.2.2"
+version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b"
+checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
dependencies = [
"libc",
]
@@ -727,10 +737,10 @@ checksum = "649c91bc01e8b1eac09fb91e8dbc7d517684ca6be8ebc75bb9cafc894f9fdb6f"
dependencies = [
"fnv",
"ident_case",
- "proc-macro2 1.0.42",
- "quote 1.0.20",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
"strsim 0.10.0",
- "syn 1.0.98",
+ "syn 1.0.99",
]
[[package]]
@@ -740,19 +750,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ddfc69c5bfcbd2fc09a0f38451d2daf0e372e367986a83906d1b0dbc88134fb5"
dependencies = [
"darling_core",
- "quote 1.0.20",
- "syn 1.0.98",
+ "quote 1.0.21",
+ "syn 1.0.99",
]
[[package]]
name = "dashmap"
-version = "5.3.4"
+version = "5.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3495912c9c1ccf2e18976439f4443f3fee0fd61f424ff99fde6a66b15ecb448f"
+checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc"
dependencies = [
"cfg-if 1.0.0",
"hashbrown 0.12.3",
"lock_api",
+ "once_cell",
"parking_lot_core 0.9.3",
]
@@ -781,9 +792,9 @@ version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
dependencies = [
- "proc-macro2 1.0.42",
- "quote 1.0.20",
- "syn 1.0.98",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
+ "syn 1.0.99",
]
[[package]]
@@ -802,9 +813,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f91d4cfa921f1c05904dc3c57b4a32c38aed3340cce209f3a6fd1478babafc4"
dependencies = [
"darling",
- "proc-macro2 1.0.42",
- "quote 1.0.20",
- "syn 1.0.98",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
+ "syn 1.0.99",
]
[[package]]
@@ -814,7 +825,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f0314b72bed045f3a68671b3c86328386762c93f82d98c65c3cb5e5f573dd68"
dependencies = [
"derive_builder_core",
- "syn 1.0.98",
+ "syn 1.0.99",
]
[[package]]
@@ -832,7 +843,7 @@ version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506"
dependencies = [
- "block-buffer 0.10.2",
+ "block-buffer 0.10.3",
"crypto-common",
"subtle",
]
@@ -857,15 +868,21 @@ dependencies = [
"winapi",
]
+[[package]]
+name = "discard"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0"
+
[[package]]
name = "displaydoc"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886"
dependencies = [
- "proc-macro2 1.0.42",
- "quote 1.0.20",
- "syn 1.0.98",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
+ "syn 1.0.99",
]
[[package]]
@@ -895,9 +912,9 @@ dependencies = [
[[package]]
name = "either"
-version = "1.7.0"
+version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be"
+checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
[[package]]
name = "encoding_rs"
@@ -924,9 +941,9 @@ version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae"
dependencies = [
- "proc-macro2 1.0.42",
- "quote 1.0.20",
- "syn 1.0.98",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
+ "syn 1.0.99",
]
[[package]]
@@ -1011,11 +1028,10 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
[[package]]
name = "form_urlencoded"
-version = "1.0.1"
+version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
+checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
dependencies = [
- "matches",
"percent-encoding",
]
@@ -1049,6 +1065,7 @@ dependencies = [
"qrcode",
"rand 0.8.5",
"regex",
+ "rqrr",
"ruma",
"serde",
"serde_json",
@@ -1093,9 +1110,9 @@ dependencies = [
[[package]]
name = "futures"
-version = "0.3.21"
+version = "0.3.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e"
+checksum = "7f21eda599937fba36daeb58a22e8f5cee2d14c4a17b5b7739c7c8e5e3b8230c"
dependencies = [
"futures-channel",
"futures-core",
@@ -1108,9 +1125,9 @@ dependencies = [
[[package]]
name = "futures-channel"
-version = "0.3.21"
+version = "0.3.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010"
+checksum = "30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050"
dependencies = [
"futures-core",
"futures-sink",
@@ -1118,15 +1135,15 @@ dependencies = [
[[package]]
name = "futures-core"
-version = "0.3.21"
+version = "0.3.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3"
+checksum = "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf"
[[package]]
name = "futures-executor"
-version = "0.3.21"
+version = "0.3.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6"
+checksum = "9ff63c23854bee61b6e9cd331d523909f238fc7636290b96826e9cfa5faa00ab"
dependencies = [
"futures-core",
"futures-task",
@@ -1135,9 +1152,9 @@ dependencies = [
[[package]]
name = "futures-io"
-version = "0.3.21"
+version = "0.3.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b"
+checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68"
[[package]]
name = "futures-lite"
@@ -1156,32 +1173,45 @@ dependencies = [
[[package]]
name = "futures-macro"
-version = "0.3.21"
+version = "0.3.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512"
+checksum = "42cd15d1c7456c04dbdf7e88bcd69760d74f3a798d6444e16974b505b0e62f17"
dependencies = [
- "proc-macro2 1.0.42",
- "quote 1.0.20",
- "syn 1.0.98",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
+ "syn 1.0.99",
+]
+
+[[package]]
+name = "futures-signals"
+version = "0.3.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3acc659ba666cff13fdf65242d16428f2f11935b688f82e4024ad39667a5132"
+dependencies = [
+ "discard",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "pin-project",
]
[[package]]
name = "futures-sink"
-version = "0.3.21"
+version = "0.3.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868"
+checksum = "21b20ba5a92e727ba30e72834706623d94ac93a725410b6a6b6fbc1b07f7ba56"
[[package]]
name = "futures-task"
-version = "0.3.21"
+version = "0.3.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a"
+checksum = "a6508c467c73851293f390476d4491cf4d227dbabcd4170f3bb6044959b294f1"
[[package]]
name = "futures-util"
-version = "0.3.21"
+version = "0.3.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a"
+checksum = "44fb6cb1be61cc1d2e43b262516aafcf63b241cffdb1d3fa115f91d9c7b09c90"
dependencies = [
"futures-channel",
"futures-core",
@@ -1342,9 +1372,9 @@ dependencies = [
[[package]]
name = "generic-array"
-version = "0.14.5"
+version = "0.14.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803"
+checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
dependencies = [
"typenum",
"version_check",
@@ -1466,9 +1496,9 @@ dependencies = [
"heck",
"proc-macro-crate",
"proc-macro-error",
- "proc-macro2 1.0.42",
- "quote 1.0.20",
- "syn 1.0.98",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
+ "syn 1.0.99",
]
[[package]]
@@ -1738,10 +1768,10 @@ dependencies = [
"anyhow",
"proc-macro-crate",
"proc-macro-error",
- "proc-macro2 1.0.42",
+ "proc-macro2 1.0.43",
"quick-xml",
- "quote 1.0.20",
- "syn 1.0.98",
+ "quote 1.0.21",
+ "syn 1.0.99",
]
[[package]]
@@ -1765,9 +1795,9 @@ dependencies = [
[[package]]
name = "h2"
-version = "0.3.13"
+version = "0.3.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57"
+checksum = "5ca32592cf21ac7ccab1825cd87f6c9b3d9022c44d086172ed0966bec8af30be"
dependencies = [
"bytes",
"fnv",
@@ -1778,7 +1808,7 @@ dependencies = [
"indexmap",
"slab",
"tokio",
- "tokio-util 0.7.3",
+ "tokio-util 0.7.4",
"tracing",
]
@@ -1802,9 +1832,9 @@ dependencies = [
[[package]]
name = "headers"
-version = "0.3.7"
+version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cff78e5788be1e0ab65b04d306b2ed5092c815ec97ec70f4ebd5aee158aa55d"
+checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584"
dependencies = [
"base64",
"bitflags",
@@ -1813,7 +1843,7 @@ dependencies = [
"http",
"httpdate",
"mime",
- "sha-1",
+ "sha1 0.10.4",
]
[[package]]
@@ -1889,9 +1919,9 @@ dependencies = [
"log",
"mac",
"markup5ever 0.10.1",
- "proc-macro2 1.0.42",
- "quote 1.0.20",
- "syn 1.0.98",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
+ "syn 1.0.99",
]
[[package]]
@@ -1903,9 +1933,9 @@ dependencies = [
"log",
"mac",
"markup5ever 0.11.0",
- "proc-macro2 1.0.42",
- "quote 1.0.20",
- "syn 1.0.98",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
+ "syn 1.0.99",
]
[[package]]
@@ -1932,9 +1962,9 @@ dependencies = [
[[package]]
name = "httparse"
-version = "1.7.1"
+version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c"
+checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
[[package]]
name = "httpdate"
@@ -1985,6 +2015,20 @@ dependencies = [
"tokio-native-tls",
]
+[[package]]
+name = "iana-time-zone"
+version = "0.1.47"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c495f162af0bf17656d0014a0eded5f3cd2f365fdd204548c2869db89359dc7"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "js-sys",
+ "once_cell",
+ "wasm-bindgen",
+ "winapi",
+]
+
[[package]]
name = "ident_case"
version = "1.0.1"
@@ -1993,11 +2037,10 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
[[package]]
name = "idna"
-version = "0.2.3"
+version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
+checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
dependencies = [
- "matches",
"unicode-bidi",
"unicode-normalization",
]
@@ -2024,8 +2067,7 @@ dependencies = [
[[package]]
name = "indexed_db_futures"
version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d26ac735f676c52305becf53264b91cea9866a8de61ccbf464405b377b9cbca9"
+source =
"git+https://github.com/Hywan/rust-indexed-db?branch=feat-factory-nodejs#5dab67890cea0ab88b967031adc09179a537d77c"
dependencies = [
"cfg-if 1.0.0",
"js-sys",
@@ -2085,9 +2127,9 @@ dependencies = [
[[package]]
name = "itoa"
-version = "1.0.2"
+version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d"
+checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754"
[[package]]
name = "jpeg-decoder"
@@ -2100,9 +2142,9 @@ dependencies = [
[[package]]
name = "js-sys"
-version = "0.3.59"
+version = "0.3.60"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2"
+checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
dependencies = [
"wasm-bindgen",
]
@@ -2172,9 +2214,9 @@ dependencies = [
[[package]]
name = "libc"
-version = "0.2.126"
+version = "0.2.132"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
+checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5"
[[package]]
name = "libloading"
@@ -2294,9 +2336,9 @@ dependencies = [
[[package]]
name = "lock_api"
-version = "0.4.7"
+version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53"
+checksum = "9f80bf5aacaf25cbfc8210d1cfb718f2bf3b11c4c54e5afe36c236853a8ec390"
dependencies = [
"autocfg",
"scopeguard",
@@ -2390,16 +2432,10 @@ dependencies = [
"xml5ever",
]
-[[package]]
-name = "matches"
-version = "0.1.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
-
[[package]]
name = "matrix-sdk"
version = "0.5.0"
-source = "git+https://github.com/matrix-org/matrix-rust-sdk.git#165973121c7aba84c124ece2878b251921586603"
+source = "git+https://github.com/matrix-org/matrix-rust-sdk.git#97995b7bf6ac5d5810016458510ae02eb87de86b"
dependencies = [
"anymap2",
"async-once-cell",
@@ -2409,7 +2445,9 @@ dependencies = [
"bytes",
"dashmap",
"event-listener",
+ "futures-channel",
"futures-core",
+ "futures-signals",
"futures-util",
"http",
"matrix-sdk-base",
@@ -2435,13 +2473,14 @@ dependencies = [
[[package]]
name = "matrix-sdk-base"
version = "0.5.1"
-source = "git+https://github.com/matrix-org/matrix-rust-sdk.git#165973121c7aba84c124ece2878b251921586603"
+source = "git+https://github.com/matrix-org/matrix-rust-sdk.git#97995b7bf6ac5d5810016458510ae02eb87de86b"
dependencies = [
"async-stream",
"async-trait",
"dashmap",
"futures-channel",
"futures-core",
+ "futures-signals",
"futures-util",
"lru 0.7.8",
"matrix-sdk-common",
@@ -2458,7 +2497,7 @@ dependencies = [
[[package]]
name = "matrix-sdk-common"
version = "0.5.0"
-source = "git+https://github.com/matrix-org/matrix-rust-sdk.git#165973121c7aba84c124ece2878b251921586603"
+source = "git+https://github.com/matrix-org/matrix-rust-sdk.git#97995b7bf6ac5d5810016458510ae02eb87de86b"
dependencies = [
"async-lock",
"futures-core",
@@ -2474,7 +2513,7 @@ dependencies = [
[[package]]
name = "matrix-sdk-crypto"
version = "0.5.0"
-source = "git+https://github.com/matrix-org/matrix-rust-sdk.git#165973121c7aba84c124ece2878b251921586603"
+source = "git+https://github.com/matrix-org/matrix-rust-sdk.git#97995b7bf6ac5d5810016458510ae02eb87de86b"
dependencies = [
"aes",
"async-trait",
@@ -2493,7 +2532,7 @@ dependencies = [
"ruma",
"serde",
"serde_json",
- "sha2 0.10.2",
+ "sha2 0.10.5",
"thiserror",
"tokio",
"tracing",
@@ -2504,7 +2543,7 @@ dependencies = [
[[package]]
name = "matrix-sdk-indexeddb"
version = "0.1.0"
-source = "git+https://github.com/matrix-org/matrix-rust-sdk.git#165973121c7aba84c124ece2878b251921586603"
+source = "git+https://github.com/matrix-org/matrix-rust-sdk.git#97995b7bf6ac5d5810016458510ae02eb87de86b"
dependencies = [
"anyhow",
"async-trait",
@@ -2530,13 +2569,11 @@ dependencies = [
[[package]]
name = "matrix-sdk-qrcode"
version = "0.3.0"
-source = "git+https://github.com/matrix-org/matrix-rust-sdk.git#165973121c7aba84c124ece2878b251921586603"
+source = "git+https://github.com/matrix-org/matrix-rust-sdk.git#97995b7bf6ac5d5810016458510ae02eb87de86b"
dependencies = [
"base64",
"byteorder",
- "image",
"qrcode",
- "rqrr",
"ruma-common",
"thiserror",
"vodozemac",
@@ -2545,7 +2582,7 @@ dependencies = [
[[package]]
name = "matrix-sdk-sled"
version = "0.1.0"
-source = "git+https://github.com/matrix-org/matrix-rust-sdk.git#165973121c7aba84c124ece2878b251921586603"
+source = "git+https://github.com/matrix-org/matrix-rust-sdk.git#97995b7bf6ac5d5810016458510ae02eb87de86b"
dependencies = [
"async-stream",
"async-trait",
@@ -2570,7 +2607,7 @@ dependencies = [
[[package]]
name = "matrix-sdk-store-encryption"
version = "0.1.0"
-source = "git+https://github.com/matrix-org/matrix-rust-sdk.git#165973121c7aba84c124ece2878b251921586603"
+source = "git+https://github.com/matrix-org/matrix-rust-sdk.git#97995b7bf6ac5d5810016458510ae02eb87de86b"
dependencies = [
"blake3",
"chacha20poly1305",
@@ -2580,7 +2617,7 @@ dependencies = [
"rand 0.8.5",
"serde",
"serde_json",
- "sha2 0.10.2",
+ "sha2 0.10.5",
"thiserror",
"zeroize",
]
@@ -2797,9 +2834,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce"
dependencies = [
"proc-macro-crate",
- "proc-macro2 1.0.42",
- "quote 1.0.20",
- "syn 1.0.98",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
+ "syn 1.0.99",
]
[[package]]
@@ -2833,9 +2870,9 @@ dependencies = [
[[package]]
name = "once_cell"
-version = "1.13.0"
+version = "1.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
+checksum = "2f7254b99e31cad77da24b08ebf628882739a608578bb1bcdfc1f9c21260d7c0"
[[package]]
name = "opaque-debug"
@@ -2864,9 +2901,9 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c"
dependencies = [
- "proc-macro2 1.0.42",
- "quote 1.0.20",
- "syn 1.0.98",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
+ "syn 1.0.99",
]
[[package]]
@@ -2999,9 +3036,9 @@ dependencies = [
[[package]]
name = "paste"
-version = "1.0.7"
+version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c520e05135d6e763148b6426a837e239041653ba7becd2e538c076c738025fc"
+checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1"
[[package]]
name = "pbkdf2"
@@ -3012,7 +3049,7 @@ dependencies = [
"digest 0.10.3",
"hmac",
"password-hash",
- "sha2 0.10.2",
+ "sha2 0.10.5",
]
[[package]]
@@ -3023,15 +3060,15 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
[[package]]
name = "percent-encoding"
-version = "2.1.0"
+version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
[[package]]
name = "pest"
-version = "2.2.1"
+version = "2.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69486e2b8c2d2aeb9762db7b4e00b0331156393555cff467f4163ff06821eef8"
+checksum = "cb779fcf4bb850fbbb0edc96ff6cf34fd90c4b1a112ce042653280d9a7364048"
dependencies = [
"thiserror",
"ucd-trie",
@@ -3115,22 +3152,22 @@ dependencies = [
[[package]]
name = "pin-project"
-version = "1.0.11"
+version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78203e83c48cffbe01e4a2d35d566ca4de445d79a85372fc64e378bfc812a260"
+checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc"
dependencies = [
"pin-project-internal",
]
[[package]]
name = "pin-project-internal"
-version = "1.0.11"
+version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "710faf75e1b33345361201d36d04e98ac1ed8909151a017ed384700836104c74"
+checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55"
dependencies = [
- "proc-macro2 1.0.42",
- "quote 1.0.20",
- "syn 1.0.98",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
+ "syn 1.0.99",
]
[[package]]
@@ -3204,10 +3241,11 @@ dependencies = [
[[package]]
name = "polling"
-version = "2.2.0"
+version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "685404d509889fade3e86fe3a5803bca2ec09b0c0778d5ada6ec8bf7a8de5259"
+checksum = "899b00b9c8ab553c743b3e11e87c5c7d423b2a2de229ba95b24a756344748011"
dependencies = [
+ "autocfg",
"cfg-if 1.0.0",
"libc",
"log",
@@ -3246,10 +3284,11 @@ checksum = "c6fa0831dd7cc608c38a5e323422a0077678fa5744aa2be4ad91c4ece8eec8d5"
[[package]]
name = "proc-macro-crate"
-version = "1.1.3"
+version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a"
+checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9"
dependencies = [
+ "once_cell",
"thiserror",
"toml",
]
@@ -3261,9 +3300,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
- "proc-macro2 1.0.42",
- "quote 1.0.20",
- "syn 1.0.98",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
+ "syn 1.0.99",
"version_check",
]
@@ -3273,8 +3312,8 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
- "proc-macro2 1.0.42",
- "quote 1.0.20",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
"version_check",
]
@@ -3289,9 +3328,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
-version = "1.0.42"
+version = "1.0.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c278e965f1d8cf32d6e0e96de3d3e79712178ae67986d9cf9151f51e95aac89b"
+checksum = "0a2ca2c61bc9f3d74d2886294ab7b9853abd9c1ad903a3ac7815c58989bb7bab"
dependencies = [
"unicode-ident",
]
@@ -3314,9 +3353,9 @@ checksum = "7b670f45da57fb8542ebdbb6105a925fe571b67f9e7ed9f47a06a84e72b4e7cc"
dependencies = [
"anyhow",
"itertools",
- "proc-macro2 1.0.42",
- "quote 1.0.20",
- "syn 1.0.98",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
+ "syn 1.0.99",
]
[[package]]
@@ -3360,11 +3399,11 @@ dependencies = [
[[package]]
name = "quote"
-version = "1.0.20"
+version = "1.0.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804"
+checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
dependencies = [
- "proc-macro2 1.0.42",
+ "proc-macro2 1.0.43",
]
[[package]]
@@ -3570,10 +3609,11 @@ dependencies = [
[[package]]
name = "ruma"
version = "0.6.3"
-source =
"git+https://github.com/ruma/ruma?rev=ca8c66c885241a7ba3805399604eda4a38979f6b#ca8c66c885241a7ba3805399604eda4a38979f6b"
+source =
"git+https://github.com/ruma/ruma?rev=c745d3baf720b38a254e640a526717864e87a065#c745d3baf720b38a254e640a526717864e87a065"
dependencies = [
"assign",
"js_int",
+ "js_option",
"ruma-client-api",
"ruma-common",
"ruma-federation-api",
@@ -3583,7 +3623,7 @@ dependencies = [
[[package]]
name = "ruma-client-api"
version = "0.14.1"
-source =
"git+https://github.com/ruma/ruma?rev=ca8c66c885241a7ba3805399604eda4a38979f6b#ca8c66c885241a7ba3805399604eda4a38979f6b"
+source =
"git+https://github.com/ruma/ruma?rev=c745d3baf720b38a254e640a526717864e87a065#c745d3baf720b38a254e640a526717864e87a065"
dependencies = [
"assign",
"bytes",
@@ -3599,7 +3639,7 @@ dependencies = [
[[package]]
name = "ruma-common"
version = "0.9.2"
-source =
"git+https://github.com/ruma/ruma?rev=ca8c66c885241a7ba3805399604eda4a38979f6b#ca8c66c885241a7ba3805399604eda4a38979f6b"
+source =
"git+https://github.com/ruma/ruma?rev=c745d3baf720b38a254e640a526717864e87a065#c745d3baf720b38a254e640a526717864e87a065"
dependencies = [
"base64",
"bytes",
@@ -3629,7 +3669,7 @@ dependencies = [
[[package]]
name = "ruma-federation-api"
version = "0.5.0"
-source =
"git+https://github.com/ruma/ruma?rev=ca8c66c885241a7ba3805399604eda4a38979f6b#ca8c66c885241a7ba3805399604eda4a38979f6b"
+source =
"git+https://github.com/ruma/ruma?rev=c745d3baf720b38a254e640a526717864e87a065#c745d3baf720b38a254e640a526717864e87a065"
dependencies = [
"js_int",
"ruma-common",
@@ -3640,7 +3680,7 @@ dependencies = [
[[package]]
name = "ruma-identifiers-validation"
version = "0.8.1"
-source =
"git+https://github.com/ruma/ruma?rev=ca8c66c885241a7ba3805399604eda4a38979f6b#ca8c66c885241a7ba3805399604eda4a38979f6b"
+source =
"git+https://github.com/ruma/ruma?rev=c745d3baf720b38a254e640a526717864e87a065#c745d3baf720b38a254e640a526717864e87a065"
dependencies = [
"js_int",
"thiserror",
@@ -3649,22 +3689,22 @@ dependencies = [
[[package]]
name = "ruma-macros"
version = "0.9.2"
-source =
"git+https://github.com/ruma/ruma?rev=ca8c66c885241a7ba3805399604eda4a38979f6b#ca8c66c885241a7ba3805399604eda4a38979f6b"
+source =
"git+https://github.com/ruma/ruma?rev=c745d3baf720b38a254e640a526717864e87a065#c745d3baf720b38a254e640a526717864e87a065"
dependencies = [
"once_cell",
"proc-macro-crate",
- "proc-macro2 1.0.42",
- "quote 1.0.20",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
"ruma-identifiers-validation",
"serde",
- "syn 1.0.98",
+ "syn 1.0.99",
"toml",
]
[[package]]
name = "ruma-push-gateway-api"
version = "0.5.0"
-source =
"git+https://github.com/ruma/ruma?rev=ca8c66c885241a7ba3805399604eda4a38979f6b#ca8c66c885241a7ba3805399604eda4a38979f6b"
+source =
"git+https://github.com/ruma/ruma?rev=c745d3baf720b38a254e640a526717864e87a065#c745d3baf720b38a254e640a526717864e87a065"
dependencies = [
"js_int",
"ruma-common",
@@ -3689,9 +3729,9 @@ dependencies = [
[[package]]
name = "ryu"
-version = "1.0.10"
+version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695"
+checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09"
[[package]]
name = "schannel"
@@ -3723,9 +3763,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
[[package]]
name = "security-framework"
-version = "2.6.1"
+version = "2.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc"
+checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c"
dependencies = [
"bitflags",
"core-foundation",
@@ -3764,38 +3804,38 @@ dependencies = [
[[package]]
name = "serde"
-version = "1.0.141"
+version = "1.0.144"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7af873f2c95b99fcb0bd0fe622a43e29514658873c8ceba88c4cb88833a22500"
+checksum = "0f747710de3dcd43b88c9168773254e809d8ddbdf9653b84e2554ab219f17860"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_bytes"
-version = "0.11.6"
+version = "0.11.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "212e73464ebcde48d723aa02eb270ba62eff38a9b732df31f33f1b4e145f3a54"
+checksum = "cfc50e8183eeeb6178dcb167ae34a8051d63535023ae38b5d8d12beae193d37b"
dependencies = [
"serde",
]
[[package]]
name = "serde_derive"
-version = "1.0.141"
+version = "1.0.144"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75743a150d003dd863b51dc809bcad0d73f2102c53632f1e954e738192a3413f"
+checksum = "94ed3a816fb1d101812f83e789f888322c34e291f894f19590dc310963e87a00"
dependencies = [
- "proc-macro2 1.0.42",
- "quote 1.0.20",
- "syn 1.0.98",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
+ "syn 1.0.99",
]
[[package]]
name = "serde_json"
-version = "1.0.82"
+version = "1.0.85"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7"
+checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44"
dependencies = [
"itoa",
"ryu",
@@ -3804,13 +3844,13 @@ dependencies = [
[[package]]
name = "serde_repr"
-version = "0.1.8"
+version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2ad84e47328a31223de7fed7a4f5087f2d6ddfe586cf3ca25b7a165bc0a5aed"
+checksum = "1fe39d9fbb0ebf5eb2c7cb7e2a47e4f462fad1379f1166b8ae49ad9eae89a7ca"
dependencies = [
- "proc-macro2 1.0.42",
- "quote 1.0.20",
- "syn 1.0.98",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
+ "syn 1.0.99",
]
[[package]]
@@ -3826,23 +3866,23 @@ dependencies = [
]
[[package]]
-name = "sha-1"
-version = "0.10.0"
+name = "sha1"
+version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f"
+checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770"
dependencies = [
- "cfg-if 1.0.0",
- "cpufeatures",
- "digest 0.10.3",
+ "sha1_smol",
]
[[package]]
name = "sha1"
-version = "0.6.1"
+version = "0.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770"
+checksum = "006769ba83e921b3085caa8334186b00cf92b4cb1a6cf4632fbccc8eff5c7549"
dependencies = [
- "sha1_smol",
+ "cfg-if 1.0.0",
+ "cpufeatures",
+ "digest 0.10.3",
]
[[package]]
@@ -3866,9 +3906,9 @@ dependencies = [
[[package]]
name = "sha2"
-version = "0.10.2"
+version = "0.10.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676"
+checksum = "cf9db03534dff993187064c4e0c05a5708d2a9728ace9a8959b77bedf415dac5"
dependencies = [
"cfg-if 1.0.0",
"cpufeatures",
@@ -3902,9 +3942,9 @@ dependencies = [
[[package]]
name = "signature"
-version = "1.5.0"
+version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f054c6c1a6e95179d6f23ed974060dcefb2d9388bb7256900badad682c499de4"
+checksum = "f0ea32af43239f0d353a7dd75a22d94c329c8cdaafdcb4c1c1335aa10c298a4a"
[[package]]
name = "siphasher"
@@ -3945,9 +3985,9 @@ checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1"
[[package]]
name = "socket2"
-version = "0.4.4"
+version = "0.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0"
+checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd"
dependencies = [
"libc",
"winapi",
@@ -4026,8 +4066,8 @@ checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988"
dependencies = [
"phf_generator 0.10.0",
"phf_shared 0.10.0",
- "proc-macro2 1.0.42",
- "quote 1.0.20",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
]
[[package]]
@@ -4061,12 +4101,12 @@ dependencies = [
[[package]]
name = "syn"
-version = "1.0.98"
+version = "1.0.99"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
+checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13"
dependencies = [
- "proc-macro2 1.0.42",
- "quote 1.0.20",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
"unicode-ident",
]
@@ -4076,9 +4116,9 @@ version = "0.12.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
dependencies = [
- "proc-macro2 1.0.42",
- "quote 1.0.20",
- "syn 1.0.98",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
+ "syn 1.0.99",
"unicode-xid 0.2.3",
]
@@ -4146,22 +4186,22 @@ dependencies = [
[[package]]
name = "thiserror"
-version = "1.0.31"
+version = "1.0.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a"
+checksum = "8c1b05ca9d106ba7d2e31a9dab4a64e7be2cce415321966ea3132c49a656e252"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.31"
+version = "1.0.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a"
+checksum = "e8f2591983642de85c921015f3f070c665a197ed69e417af436115e3a1407487"
dependencies = [
- "proc-macro2 1.0.42",
- "quote 1.0.20",
- "syn 1.0.98",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
+ "syn 1.0.99",
]
[[package]]
@@ -4212,9 +4252,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
[[package]]
name = "tokio"
-version = "1.20.1"
+version = "1.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a8325f63a7d4774dd041e363b2409ed1c5cbbd0f867795e661df066b2b0a581"
+checksum = "89797afd69d206ccd11fb0ea560a44bbb87731d020670e79416d442919257d42"
dependencies = [
"autocfg",
"bytes",
@@ -4277,9 +4317,9 @@ dependencies = [
[[package]]
name = "tokio-util"
-version = "0.7.3"
+version = "0.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc463cd8deddc3770d20f9852143d50bf6094e640b485cb2e189a2099085ff45"
+checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740"
dependencies = [
"bytes",
"futures-core",
@@ -4323,9 +4363,9 @@ version = "0.1.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2"
dependencies = [
- "proc-macro2 1.0.42",
- "quote 1.0.20",
- "syn 1.0.98",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
+ "syn 1.0.99",
]
[[package]]
@@ -4377,9 +4417,9 @@ checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
[[package]]
name = "ucd-trie"
-version = "0.1.4"
+version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89570599c4fe5585de2b388aab47e99f7fa4e9238a1399f707a02e356058141c"
+checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81"
[[package]]
name = "uds_windows"
@@ -4408,9 +4448,9 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
[[package]]
name = "unicode-ident"
-version = "1.0.2"
+version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7"
+checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf"
[[package]]
name = "unicode-normalization"
@@ -4451,13 +4491,12 @@ dependencies = [
[[package]]
name = "url"
-version = "2.2.2"
+version = "2.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
+checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
dependencies = [
"form_urlencoded",
"idna",
- "matches",
"percent-encoding",
]
@@ -4518,7 +4557,7 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
[[package]]
name = "vodozemac"
version = "0.2.0"
-source =
"git+https://github.com/matrix-org/vodozemac/?rev=18bcbc3359298894415931547ea41abb75af2d4a#18bcbc3359298894415931547ea41abb75af2d4a"
+source =
"git+https://github.com/matrix-org/vodozemac/?rev=ad1f098aff2a0b69aa5822c4e0679089a9fa4a86#ad1f098aff2a0b69aa5822c4e0679089a9fa4a86"
dependencies = [
"aes",
"arrayvec",
@@ -4532,7 +4571,8 @@ dependencies = [
"rand 0.7.3",
"serde",
"serde_json",
- "sha2 0.10.2",
+ "sha2 0.10.5",
+ "subtle",
"thiserror",
"x25519-dalek",
"zeroize",
@@ -4608,9 +4648,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "wasm-bindgen"
-version = "0.2.82"
+version = "0.2.83"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d"
+checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268"
dependencies = [
"cfg-if 1.0.0",
"serde",
@@ -4620,24 +4660,24 @@ dependencies = [
[[package]]
name = "wasm-bindgen-backend"
-version = "0.2.82"
+version = "0.2.83"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f"
+checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142"
dependencies = [
"bumpalo",
"log",
"once_cell",
- "proc-macro2 1.0.42",
- "quote 1.0.20",
- "syn 1.0.98",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
+ "syn 1.0.99",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-futures"
-version = "0.4.32"
+version = "0.4.33"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa76fb221a1f8acddf5b54ace85912606980ad661ac7a503b4570ffd3a624dad"
+checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d"
dependencies = [
"cfg-if 1.0.0",
"js-sys",
@@ -4647,32 +4687,32 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.82"
+version = "0.2.83"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602"
+checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810"
dependencies = [
- "quote 1.0.20",
+ "quote 1.0.21",
"wasm-bindgen-macro-support",
]
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.82"
+version = "0.2.83"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da"
+checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
dependencies = [
- "proc-macro2 1.0.42",
- "quote 1.0.20",
- "syn 1.0.98",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
+ "syn 1.0.99",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.82"
+version = "0.2.83"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a"
+checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f"
[[package]]
name = "wasm-timer"
@@ -4691,9 +4731,9 @@ dependencies = [
[[package]]
name = "web-sys"
-version = "0.3.59"
+version = "0.3.60"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed055ab27f941423197eb86b2035720b1a3ce40504df082cac2ecc6ed73335a1"
+checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -4716,13 +4756,13 @@ dependencies = [
[[package]]
name = "which"
-version = "4.2.5"
+version = "4.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c4fb54e6113b6a8772ee41c3404fb0301ac79604489467e0a9ce1f3e97c24ae"
+checksum = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b"
dependencies = [
"either",
- "lazy_static",
"libc",
+ "once_cell",
]
[[package]]
@@ -4868,7 +4908,7 @@ dependencies = [
"rand 0.8.5",
"serde",
"serde_repr",
- "sha1",
+ "sha1 0.6.1",
"static_assertions",
"tracing",
"uds_windows",
@@ -4885,10 +4925,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f8fb5186d1c87ae88cf234974c240671238b4a679158ad3b94ec465237349a6"
dependencies = [
"proc-macro-crate",
- "proc-macro2 1.0.42",
- "quote 1.0.20",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
"regex",
- "syn 1.0.98",
+ "syn 1.0.99",
]
[[package]]
@@ -4917,9 +4957,9 @@ version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f8f187641dad4f680d25c4bfc4225b418165984179f26ca76ec4fb6441d3a17"
dependencies = [
- "proc-macro2 1.0.42",
- "quote 1.0.20",
- "syn 1.0.98",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
+ "syn 1.0.99",
"synstructure",
]
@@ -4944,7 +4984,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08e977eaa3af652f63d479ce50d924254ad76722a6289ec1a1eac3231ca30430"
dependencies = [
"proc-macro-crate",
- "proc-macro2 1.0.42",
- "quote 1.0.20",
- "syn 1.0.98",
+ "proc-macro2 1.0.43",
+ "quote 1.0.21",
+ "syn 1.0.99",
]
diff --git a/Cargo.toml b/Cargo.toml
index 0be2a9ded..d053f37ea 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -49,6 +49,7 @@ regex = "1.5.4"
mime_guess = "2.0.3"
num_enum = "0.5.6"
thiserror = "1.0.25"
+rqrr = "0.4.0"
[dependencies.sourceview]
package = "sourceview5"
@@ -74,5 +75,5 @@ features = ["socks", "sso-login", "markdown", "qrcode", "experimental-timeline"]
[dependencies.ruma]
git = "https://github.com/ruma/ruma"
-rev = "ca8c66c885241a7ba3805399604eda4a38979f6b"
+rev = "c745d3baf720b38a254e640a526717864e87a065"
features = ["unstable-pre-spec", "client-api-c"]
diff --git a/src/contrib/qr_code_scanner/qr_code_detector.rs b/src/contrib/qr_code_scanner/qr_code_detector.rs
index c16005f5d..a92f546cf 100644
--- a/src/contrib/qr_code_scanner/qr_code_detector.rs
+++ b/src/contrib/qr_code_scanner/qr_code_detector.rs
@@ -2,12 +2,16 @@ use std::convert::AsRef;
use glib::Sender;
use gst_video::{video_frame::VideoFrameRef, VideoInfo};
+use image::{GenericImage, GenericImageView, Luma};
use log::debug;
-use matrix_sdk::encryption::verification::QrVerificationData;
+use matrix_sdk::encryption::verification::{DecodingError, QrVerificationData};
+use thiserror::Error;
use super::*;
use crate::contrib::qr_code_scanner::camera_paintable::Action;
+const HEADER: &[u8] = b"MATRIX";
+
mod imp {
use std::sync::Mutex;
@@ -104,7 +108,7 @@ mod imp {
let image = samples.as_view_mut::<image::Luma<u8>>().unwrap();
- if let Ok(code) = QrVerificationData::from_luma(image) {
+ if let Ok(code) = decode_qr(image) {
let mut previous_code = self.code.lock().unwrap();
if previous_code.as_ref() != Some(&code) {
previous_code.replace(code.clone());
@@ -138,3 +142,43 @@ impl QrCodeDetector {
sink
}
}
+
+// From
https://github.com/matrix-org/matrix-rust-sdk/blob/79d13148fbba58db0ff5f62b27e7856cbbbe13c2/crates/matrix-sdk-qrcode/src/utils.rs#L81-L104
+pub(crate) fn decode_qr<I>(image: I) -> Result<QrVerificationData, QrDecodingError>
+where
+ I: GenericImage<Pixel = Luma<u8>> + GenericImageView<Pixel = Luma<u8>>,
+{
+ let mut image = rqrr::PreparedImage::prepare(image);
+ let grids = image.detect_grids();
+
+ let mut error = None;
+
+ for grid in grids {
+ let mut decoded = Vec::new();
+
+ match grid.decode_to(&mut decoded) {
+ Ok(_) => {
+ if decoded.starts_with(HEADER) {
+ return QrVerificationData::from_bytes(decoded).map_err(Into::into);
+ }
+ }
+ Err(e) => error = Some(e),
+ }
+ }
+
+ Err(error
+ .map(|e| e.into())
+ .unwrap_or_else(|| DecodingError::Header.into()))
+}
+
+/// All possible errors when decoding a QR Code.
+#[derive(Debug, Error)]
+pub enum QrDecodingError {
+ /// An error occurred when decoding the QR data.
+ #[error(transparent)]
+ Matrix(#[from] DecodingError),
+
+ /// An error occurred when decoding the QR image.
+ #[error(transparent)]
+ Rqrr(#[from] rqrr::DeQRError),
+}
diff --git a/src/session/account_settings/devices_page/device.rs
b/src/session/account_settings/devices_page/device.rs
index 2930a64ac..f426c8165 100644
--- a/src/session/account_settings/devices_page/device.rs
+++ b/src/session/account_settings/devices_page/device.rs
@@ -208,6 +208,6 @@ impl Device {
self.imp()
.crypto_device
.get()
- .map_or(false, |device| device.verified())
+ .map_or(false, |device| device.is_verified())
}
}
diff --git a/src/session/account_settings/user_page/mod.rs b/src/session/account_settings/user_page/mod.rs
index 44f291979..b796d63e6 100644
--- a/src/session/account_settings/user_page/mod.rs
+++ b/src/session/account_settings/user_page/mod.rs
@@ -1,4 +1,4 @@
-use std::{fs::File, time::Duration};
+use std::time::Duration;
use adw::{prelude::*, subclass::prelude::*};
use gettextrs::gettext;
@@ -267,13 +267,15 @@ impl UserPage {
.and_then(|info| info.content_type())
.and_then(|content_type| gio::content_type_get_mime_type(&content_type))
.unwrap();
- let mut file = File::open(file.path().unwrap()).unwrap();
+ let (data, _) = file.load_contents_future().await.unwrap();
let client_clone = client.clone();
- let handle =
- spawn_tokio!(
- async move { client_clone.upload(&mime.parse().unwrap(), &mut file).await }
- );
+ let handle = spawn_tokio!(async move {
+ client_clone
+ .media()
+ .upload(&mime.parse().unwrap(), &data)
+ .await
+ });
let uri = match handle.await.unwrap() {
Ok(res) => res.content_uri,
diff --git a/src/session/avatar.rs b/src/session/avatar.rs
index 0efadb6b0..8df52fbc2 100644
--- a/src/session/avatar.rs
+++ b/src/session/avatar.rs
@@ -170,7 +170,7 @@ impl Avatar {
}),
};
let handle =
- spawn_tokio!(async move { client.get_media_content(&request, true).await });
+ spawn_tokio!(async move { client.media().get_media_content(&request, true).await });
spawn!(
glib::PRIORITY_LOW,
@@ -267,7 +267,7 @@ where
};
content.url = uri.clone();
- joined_room.send_state_event(content, "").await?;
+ joined_room.send_state_event(content).await?;
Ok(uri)
}
@@ -285,7 +285,8 @@ where
info!("Uploading avatar from file {:?}", filename);
// TODO: Use blurhash
let response = matrix_client
- .upload(&content_type.parse()?, &mut image.as_slice())
+ .media()
+ .upload(&content_type.parse()?, &image)
.await?;
Ok(response.content_uri)
}
diff --git a/src/session/content/room_history/item_row.rs b/src/session/content/room_history/item_row.rs
index ca7d95133..a57c270f1 100644
--- a/src/session/content/room_history/item_row.rs
+++ b/src/session/content/room_history/item_row.rs
@@ -1,7 +1,7 @@
use adw::{prelude::*, subclass::prelude::*};
use gettextrs::gettext;
use gtk::{gio, glib, glib::clone};
-use matrix_sdk::ruma::events::AnySyncRoomEvent;
+use matrix_sdk::ruma::events::AnySyncTimelineEvent;
use crate::{
components::{ContextMenuBin, ContextMenuBinExt, ContextMenuBinImpl, ReactionChooser},
@@ -287,7 +287,7 @@ impl ItemRow {
fn set_event_widget(&self, event: &SupportedEvent) {
match event.matrix_event() {
- AnySyncRoomEvent::State(state) => {
+ AnySyncTimelineEvent::State(state) => {
let child = if let Some(Ok(child)) = self.child().map(|w| w.downcast::<StateRow>())
{
child
diff --git a/src/session/content/room_history/message_row/audio.rs
b/src/session/content/room_history/message_row/audio.rs
index c3dc5d0aa..9069765fd 100644
--- a/src/session/content/room_history/message_row/audio.rs
+++ b/src/session/content/room_history/message_row/audio.rs
@@ -219,7 +219,7 @@ impl MessageAudio {
}
let client = session.client();
- let handle = spawn_tokio!(async move { client.get_file(audio, true).await });
+ let handle = spawn_tokio!(async move { client.media().get_file(audio, true).await });
spawn!(
glib::PRIORITY_LOW,
diff --git a/src/session/content/room_history/message_row/media.rs
b/src/session/content/room_history/message_row/media.rs
index d2f907fc7..cc7abf286 100644
--- a/src/session/content/room_history/message_row/media.rs
+++ b/src/session/content/room_history/message_row/media.rs
@@ -379,11 +379,11 @@ impl MessageMedia {
{
self.set_state(MediaState::Loading);
- let client = session.client();
+ let media = session.client().media();
let handle = spawn_tokio!(async move {
let thumbnail =
if media_type != MediaType::Video && content.thumbnail_source().is_some() {
- client
+ media
.get_thumbnail(
content.clone(),
MediaThumbnailSize {
@@ -405,7 +405,7 @@ impl MessageMedia {
Ok((Some(data), id))
} else {
let id = media_type_uid(content.source());
- client.get_file(content, true).await.map(|data| (data, id))
+ media.get_file(content, true).await.map(|data| (data, id))
}
});
diff --git a/src/session/mod.rs b/src/session/mod.rs
index d26c049b7..f59b08bbd 100644
--- a/src/session/mod.rs
+++ b/src/session/mod.rs
@@ -45,7 +45,7 @@ use matrix_sdk::{
},
RoomId,
},
- store::{MigrationConflictStrategy, OpenStoreError, StateStore},
+ store::{MigrationConflictStrategy, OpenStoreError, SledStateStore},
Client, ClientBuildError, Error, HttpError, RumaApiError, StoreError,
};
use rand::{distributions::Alphanumeric, thread_rng, Rng};
@@ -462,6 +462,7 @@ impl Session {
user_id: session.user_id.clone(),
device_id: session.device_id.clone(),
access_token: session.secret.access_token.clone(),
+ refresh_token: None,
})
.await
.map(|_| (client, session))
@@ -923,30 +924,29 @@ impl Session {
glib::PRIORITY_DEFAULT_IDLE,
clone!(@weak self as obj => async move {
let obj_weak = glib::SendWeakRef::from(obj.downgrade());
- obj.client().add_event_handler(
- move |event: GlobalAccountDataEvent<DirectEventContent>| {
- let obj_weak = obj_weak.clone();
- async move {
- let ctx = glib::MainContext::default();
- ctx.spawn(async move {
- spawn!(async move {
- if let Some(session) = obj_weak.upgrade() {
- let room_ids = event.content.iter().fold(HashSet::new(), |mut
acc, (_, rooms)| {
- acc.extend(rooms);
- acc
- });
- for room_id in room_ids {
- if let Some(room) = session.room_list().get(room_id) {
- room.load_category();
- }
+ obj.client().add_event_handler(
+ move |event: GlobalAccountDataEvent<DirectEventContent>| {
+ let obj_weak = obj_weak.clone();
+ async move {
+ let ctx = glib::MainContext::default();
+ ctx.spawn(async move {
+ spawn!(async move {
+ if let Some(session) = obj_weak.upgrade() {
+ let room_ids = event.content.iter().fold(HashSet::new(), |mut acc,
(_, rooms)| {
+ acc.extend(rooms);
+ acc
+ });
+ for room_id in room_ids {
+ if let Some(room) = session.room_list().get(room_id) {
+ room.load_category();
}
}
- });
+ }
});
- }
- },
- )
- .await;
+ });
+ }
+ },
+ );
})
);
}
@@ -955,21 +955,19 @@ impl Session {
let session_weak = glib::SendWeakRef::from(self.downgrade());
let client = self.client();
spawn_tokio!(async move {
- client
- .add_event_handler(move |_: SyncRoomEncryptionEvent, matrix_room: MatrixRoom| {
- let session_weak = session_weak.clone();
- async move {
- let ctx = glib::MainContext::default();
- ctx.spawn(async move {
- if let Some(session) = session_weak.upgrade() {
- if let Some(room) = session.room_list().get(matrix_room.room_id()) {
- room.set_is_encrypted(true);
- }
+ client.add_event_handler(move |_: SyncRoomEncryptionEvent, matrix_room: MatrixRoom| {
+ let session_weak = session_weak.clone();
+ async move {
+ let ctx = glib::MainContext::default();
+ ctx.spawn(async move {
+ if let Some(session) = session_weak.upgrade() {
+ if let Some(room) = session.room_list().get(matrix_room.room_id()) {
+ room.set_is_encrypted(true);
}
- });
- }
- })
- .await;
+ }
+ });
+ }
+ });
});
}
}
@@ -986,7 +984,7 @@ async fn create_client(
passphrase: String,
use_discovery: bool,
) -> Result<Client, ClientSetupError> {
- let state_store = StateStore::builder()
+ let state_store = SledStateStore::builder()
.path(path)
.passphrase(passphrase)
.migration_conflict_strategy(MigrationConflictStrategy::Drop)
diff --git a/src/session/room/event/mod.rs b/src/session/room/event/mod.rs
index 4da549fe5..e199baf66 100644
--- a/src/session/room/event/mod.rs
+++ b/src/session/room/event/mod.rs
@@ -1,7 +1,7 @@
use gtk::{glib, prelude::*, subclass::prelude::*};
use log::warn;
use matrix_sdk::{
- deserialized_responses::SyncRoomEvent,
+ deserialized_responses::SyncTimelineEvent,
ruma::{MilliSecondsSinceUnixEpoch, OwnedEventId, OwnedUserId},
};
@@ -17,8 +17,8 @@ pub use supported_event::SupportedEvent;
pub use unsupported_event::UnsupportedEvent;
#[derive(Clone, Debug, glib::Boxed)]
-#[boxed_type(name = "BoxedSyncRoomEvent")]
-pub struct BoxedSyncRoomEvent(SyncRoomEvent);
+#[boxed_type(name = "BoxedSyncTimelineEvent")]
+pub struct BoxedSyncTimelineEvent(SyncTimelineEvent);
mod imp {
use std::cell::RefCell;
@@ -67,7 +67,7 @@ mod imp {
pub struct Event {
/// The SDK event containing encryption information and the serialized
/// event as `Raw`.
- pub pure_event: RefCell<Option<SyncRoomEvent>>,
+ pub pure_event: RefCell<Option<SyncTimelineEvent>>,
/// The room containing this `Event`.
pub room: OnceCell<WeakRef<Room>>,
@@ -90,7 +90,7 @@ mod imp {
"pure-event",
"Pure Event",
"The pure Matrix event of this Event",
- BoxedSyncRoomEvent::static_type(),
+ BoxedSyncTimelineEvent::static_type(),
glib::ParamFlags::WRITABLE,
),
glib::ParamSpecString::new(
@@ -129,7 +129,7 @@ mod imp {
) {
match pspec.name() {
"pure-event" => {
- let event = value.get::<BoxedSyncRoomEvent>().unwrap();
+ let event = value.get::<BoxedSyncTimelineEvent>().unwrap();
obj.set_pure_event(event.0);
}
"room" => {
@@ -171,7 +171,7 @@ impl Event {
/// Create an `Event` with the given pure SDK event and room.
///
/// Constructs the proper subtype according to the event.
- pub fn new(pure_event: SyncRoomEvent, room: &Room) -> Self {
+ pub fn new(pure_event: SyncTimelineEvent, room: &Room) -> Self {
SupportedEvent::try_from_event(pure_event.clone(), room)
.map(|event| event.upcast())
.unwrap_or_else(|error| {
@@ -191,10 +191,10 @@ pub trait EventExt: 'static {
fn room(&self) -> Room;
/// The pure SDK event of this `Event`.
- fn pure_event(&self) -> SyncRoomEvent;
+ fn pure_event(&self) -> SyncTimelineEvent;
/// Set the pure SDK event of this `Event`.
- fn set_pure_event(&self, pure_event: SyncRoomEvent);
+ fn set_pure_event(&self, pure_event: SyncTimelineEvent);
/// The source JSON of this `Event`.
fn original_source(&self) -> String;
@@ -257,11 +257,11 @@ impl<O: IsA<Event>> EventExt for O {
.unwrap()
}
- fn pure_event(&self) -> SyncRoomEvent {
+ fn pure_event(&self) -> SyncTimelineEvent {
self.upcast_ref().imp().pure_event.borrow().clone().unwrap()
}
- fn set_pure_event(&self, pure_event: SyncRoomEvent) {
+ fn set_pure_event(&self, pure_event: SyncTimelineEvent) {
let priv_ = self.upcast_ref().imp();
priv_.pure_event.replace(Some(pure_event));
diff --git a/src/session/room/event/supported_event.rs b/src/session/room/event/supported_event.rs
index 160061fef..b3549b4ff 100644
--- a/src/session/room/event/supported_event.rs
+++ b/src/session/room/event/supported_event.rs
@@ -1,7 +1,7 @@
use gtk::{glib, glib::clone, prelude::*, subclass::prelude::*};
use log::debug;
use matrix_sdk::{
- deserialized_responses::SyncRoomEvent,
+ deserialized_responses::SyncTimelineEvent,
media::MediaEventContent,
ruma::{
events::{
@@ -10,8 +10,8 @@ use matrix_sdk::{
message::{MessageType, Relation},
redaction::SyncRoomRedactionEvent,
},
- AnyMessageLikeEventContent, AnySyncMessageLikeEvent, AnySyncRoomEvent,
- AnySyncStateEvent, SyncMessageLikeEvent, SyncStateEvent,
+ AnyMessageLikeEventContent, AnySyncMessageLikeEvent, AnySyncStateEvent,
+ AnySyncTimelineEvent, SyncMessageLikeEvent, SyncStateEvent,
},
serde::Raw,
MilliSecondsSinceUnixEpoch, OwnedEventId, OwnedTransactionId, OwnedUserId,
@@ -20,7 +20,7 @@ use matrix_sdk::{
};
use serde_json::Error as JsonError;
-use super::{BoxedSyncRoomEvent, Event, EventImpl};
+use super::{BoxedSyncTimelineEvent, Event, EventImpl};
use crate::{
prelude::*,
session::room::{
@@ -32,8 +32,8 @@ use crate::{
};
#[derive(Clone, Debug, glib::Boxed)]
-#[boxed_type(name = "BoxedAnySyncRoomEvent")]
-pub struct BoxedAnySyncRoomEvent(AnySyncRoomEvent);
+#[boxed_type(name = "BoxedAnySyncTimelineEvent")]
+pub struct BoxedAnySyncTimelineEvent(AnySyncTimelineEvent);
mod imp {
use std::cell::RefCell;
@@ -46,7 +46,7 @@ mod imp {
#[derive(Debug, Default)]
pub struct SupportedEvent {
/// The deserialized Matrix event.
- pub matrix_event: RefCell<Option<AnySyncRoomEvent>>,
+ pub matrix_event: RefCell<Option<AnySyncTimelineEvent>>,
/// Events that replace this one, in the order they arrive.
pub replacing_events: RefCell<Vec<super::SupportedEvent>>,
pub reactions: ReactionList,
@@ -69,7 +69,7 @@ mod imp {
"matrix-event",
"Matrix Event",
"The deserialized Matrix event of this Event",
- BoxedAnySyncRoomEvent::static_type(),
+ BoxedAnySyncTimelineEvent::static_type(),
glib::ParamFlags::WRITABLE,
),
glib::ParamSpecObject::new(
@@ -94,7 +94,7 @@ mod imp {
) {
match pspec.name() {
"matrix-event" => {
- let matrix_event = value.get::<BoxedAnySyncRoomEvent>().unwrap();
+ let matrix_event = value.get::<BoxedAnySyncTimelineEvent>().unwrap();
obj.set_matrix_event(matrix_event.0);
}
_ => unimplemented!(),
@@ -179,9 +179,9 @@ impl SupportedEvent {
/// room.
///
/// Returns an error if the pure event fails to deserialize.
- pub fn try_from_event(pure_event: SyncRoomEvent, room: &Room) -> Result<Self, JsonError> {
- let matrix_event = BoxedAnySyncRoomEvent(pure_event.event.deserialize()?);
- let pure_event = BoxedSyncRoomEvent(pure_event);
+ pub fn try_from_event(pure_event: SyncTimelineEvent, room: &Room) -> Result<Self, JsonError> {
+ let matrix_event = BoxedAnySyncTimelineEvent(pure_event.event.deserialize()?);
+ let pure_event = BoxedSyncTimelineEvent(pure_event);
Ok(glib::Object::new(&[
("pure-event", &pure_event),
("matrix-event", &matrix_event),
@@ -191,8 +191,8 @@ impl SupportedEvent {
}
/// Set the deserialized Matrix event of this `SupportedEvent`.
- fn set_matrix_event(&self, matrix_event: AnySyncRoomEvent) {
- if let AnySyncRoomEvent::MessageLike(AnySyncMessageLikeEvent::RoomEncrypted(
+ fn set_matrix_event(&self, matrix_event: AnySyncTimelineEvent) {
+ if let AnySyncTimelineEvent::MessageLike(AnySyncMessageLikeEvent::RoomEncrypted(
SyncMessageLikeEvent::Original(_),
)) = matrix_event
{
@@ -206,7 +206,7 @@ impl SupportedEvent {
}
/// The deserialized Matrix event of this `SupportedEvent`.
- pub fn matrix_event(&self) -> AnySyncRoomEvent {
+ pub fn matrix_event(&self) -> AnySyncTimelineEvent {
self.imp().matrix_event.borrow().clone().unwrap()
}
@@ -226,7 +226,7 @@ impl SupportedEvent {
if let Some(keys_handle) = priv_.keys_handle.take() {
self.room().disconnect(keys_handle);
}
- let pure_event = SyncRoomEvent::from(decrypted);
+ let pure_event = SyncTimelineEvent::from(decrypted);
let matrix_event = pure_event.event.deserialize().unwrap();
self.set_pure_event(pure_event);
self.set_matrix_event(matrix_event);
@@ -295,7 +295,7 @@ impl SupportedEvent {
/// The ID of the event this `SupportedEvent` relates to, if any.
pub fn related_event_id(&self) -> Option<OwnedEventId> {
match self.imp().matrix_event.borrow().as_ref()? {
- AnySyncRoomEvent::MessageLike(ref message) => match message {
+ AnySyncTimelineEvent::MessageLike(ref message) => match message {
AnySyncMessageLikeEvent::RoomRedaction(SyncRoomRedactionEvent::Original(event)) => {
Some(event.redacts.clone())
}
@@ -329,12 +329,12 @@ impl SupportedEvent {
/// - `RoomMessage` with `Relation::Replacement`
pub fn is_replacing_event(&self) -> bool {
match self.imp().matrix_event.borrow().as_ref().unwrap() {
- AnySyncRoomEvent::MessageLike(AnySyncMessageLikeEvent::RoomMessage(
+ AnySyncTimelineEvent::MessageLike(AnySyncMessageLikeEvent::RoomMessage(
SyncMessageLikeEvent::Original(message),
)) => {
matches!(message.content.relates_to, Some(Relation::Replacement(_)))
}
- AnySyncRoomEvent::MessageLike(AnySyncMessageLikeEvent::RoomRedaction(_)) => true,
+ AnySyncTimelineEvent::MessageLike(AnySyncMessageLikeEvent::RoomRedaction(_)) => true,
_ => false,
}
}
@@ -404,7 +404,7 @@ impl SupportedEvent {
.filter(|event| {
matches!(
event.matrix_event(),
- AnySyncRoomEvent::MessageLike(AnySyncMessageLikeEvent::RoomRedaction(_))
+ AnySyncTimelineEvent::MessageLike(AnySyncMessageLikeEvent::RoomRedaction(_))
)
})
.is_some()
@@ -433,7 +433,7 @@ impl SupportedEvent {
/// The content of this `SupportedEvent`, if this is a message-like event.
pub fn original_content(&self) -> Option<AnyMessageLikeEventContent> {
match self.matrix_event() {
- AnySyncRoomEvent::MessageLike(message) => message.original_content(),
+ AnySyncTimelineEvent::MessageLike(message) => message.original_content(),
_ => None,
}
}
@@ -465,7 +465,7 @@ impl SupportedEvent {
/// an incompatible event.
pub async fn get_media_content(&self) -> Result<(String, String, Vec<u8>), matrix_sdk::Error> {
if let AnyMessageLikeEventContent::RoomMessage(content) = self.original_content().unwrap() {
- let client = self.room().session().client();
+ let media = self.room().session().client().media();
match content.msgtype {
MessageType::File(content) => {
let uid = media_type_uid(content.source());
@@ -485,7 +485,7 @@ impl SupportedEvent {
None,
)
});
- let handle = spawn_tokio!(async move { client.get_file(content, true).await });
+ let handle = spawn_tokio!(async move { media.get_file(content, true).await });
let data = handle.await.unwrap()?.unwrap();
return Ok((uid, filename, data));
}
@@ -502,7 +502,7 @@ impl SupportedEvent {
} else {
content.body.clone()
};
- let handle = spawn_tokio!(async move { client.get_file(content, true).await });
+ let handle = spawn_tokio!(async move { media.get_file(content, true).await });
let data = handle.await.unwrap()?.unwrap();
return Ok((uid, filename, data));
}
@@ -519,7 +519,7 @@ impl SupportedEvent {
} else {
content.body.clone()
};
- let handle = spawn_tokio!(async move { client.get_file(content, true).await });
+ let handle = spawn_tokio!(async move { media.get_file(content, true).await });
let data = handle.await.unwrap()?.unwrap();
return Ok((uid, filename, data));
}
@@ -536,7 +536,7 @@ impl SupportedEvent {
} else {
content.body.clone()
};
- let handle = spawn_tokio!(async move { client.get_file(content, true).await });
+ let handle = spawn_tokio!(async move { media.get_file(content, true).await });
let data = handle.await.unwrap()?.unwrap();
return Ok((uid, filename, data));
}
@@ -590,7 +590,7 @@ impl SupportedEvent {
let priv_ = self.imp();
if self.related_event_id().is_some() {
- if let Some(AnySyncRoomEvent::MessageLike(AnySyncMessageLikeEvent::RoomMessage(
+ if let Some(AnySyncTimelineEvent::MessageLike(AnySyncMessageLikeEvent::RoomMessage(
SyncMessageLikeEvent::Original(message),
))) = priv_.matrix_event.borrow().as_ref()
{
@@ -603,13 +603,13 @@ impl SupportedEvent {
// List of all events to be shown.
match priv_.matrix_event.borrow().as_ref() {
- Some(AnySyncRoomEvent::MessageLike(message)) => !matches!(
+ Some(AnySyncTimelineEvent::MessageLike(message)) => !matches!(
message,
AnySyncMessageLikeEvent::RoomMessage(SyncMessageLikeEvent::Original(_))
| AnySyncMessageLikeEvent::RoomEncrypted(SyncMessageLikeEvent::Original(_))
| AnySyncMessageLikeEvent::Sticker(SyncMessageLikeEvent::Original(_))
),
- Some(AnySyncRoomEvent::State(state)) => !matches!(
+ Some(AnySyncTimelineEvent::State(state)) => !matches!(
state,
AnySyncStateEvent::RoomCreate(SyncStateEvent::Original(_))
| AnySyncStateEvent::RoomMember(SyncStateEvent::Original(_))
diff --git a/src/session/room/event/unsupported_event.rs b/src/session/room/event/unsupported_event.rs
index 1a6a616e3..90a12596b 100644
--- a/src/session/room/event/unsupported_event.rs
+++ b/src/session/room/event/unsupported_event.rs
@@ -1,7 +1,7 @@
use gtk::{glib, prelude::*, subclass::prelude::*};
-use matrix_sdk::{deserialized_responses::SyncRoomEvent, ruma::events::RoomEventType};
+use matrix_sdk::{deserialized_responses::SyncTimelineEvent, ruma::events::RoomEventType};
-use super::{BoxedSyncRoomEvent, Event, EventImpl};
+use super::{BoxedSyncTimelineEvent, Event, EventImpl};
use crate::session::room::{
timeline::{TimelineItem, TimelineItemImpl},
Room,
@@ -34,8 +34,8 @@ glib::wrapper! {
impl UnsupportedEvent {
/// Construct an `UnsupportedEvent` from the given pure event and room.
- pub fn new(pure_event: SyncRoomEvent, room: &Room) -> Self {
- let pure_event = BoxedSyncRoomEvent(pure_event);
+ pub fn new(pure_event: SyncTimelineEvent, room: &Room) -> Self {
+ let pure_event = BoxedSyncTimelineEvent(pure_event);
glib::Object::new(&[("pure-event", &pure_event), ("room", room)])
.expect("Failed to create UnsupportedEvent")
}
diff --git a/src/session/room/member.rs b/src/session/room/member.rs
index cfabd09d8..8040ae54c 100644
--- a/src/session/room/member.rs
+++ b/src/session/room/member.rs
@@ -1,5 +1,6 @@
use gtk::{glib, prelude::*, subclass::prelude::*};
use matrix_sdk::{
+ room::RoomMember,
ruma::{
events::{
room::member::{MembershipState, RoomMemberEventContent},
@@ -7,7 +8,6 @@ use matrix_sdk::{
},
OwnedMxcUri, UserId,
},
- RoomMember,
};
use crate::{
diff --git a/src/session/room/member_list.rs b/src/session/room/member_list.rs
index 52d2b20f2..060e72011 100644
--- a/src/session/room/member_list.rs
+++ b/src/session/room/member_list.rs
@@ -105,7 +105,7 @@ impl MemberList {
///
/// If some of the values do not correspond to existing members, new members
/// are created.
- pub fn update_from_room_members(&self, new_members: &[matrix_sdk::RoomMember]) {
+ pub fn update_from_room_members(&self, new_members: &[matrix_sdk::room::RoomMember]) {
let mut members = self.imp().members.borrow_mut();
let prev_len = members.len();
for member in new_members {
diff --git a/src/session/room/mod.rs b/src/session/room/mod.rs
index 1bd7e9e51..eb424c679 100644
--- a/src/session/room/mod.rs
+++ b/src/session/room/mod.rs
@@ -17,7 +17,7 @@ use gtk::{glib, glib::clone, prelude::*, subclass::prelude::*};
use log::{debug, error, info, warn};
use matrix_sdk::{
attachment::AttachmentConfig,
- deserialized_responses::{JoinedRoom, LeftRoom, SyncRoomEvent},
+ deserialized_responses::{JoinedRoom, LeftRoom, SyncTimelineEvent},
room::Room as MatrixRoom,
ruma::{
api::client::sync::sync_events::v3::InvitedRoom,
@@ -34,14 +34,14 @@ use matrix_sdk::{
room_key::ToDeviceRoomKeyEventContent,
tag::{TagInfo, TagName},
AnyRoomAccountDataEvent, AnyStrippedStateEvent, AnySyncMessageLikeEvent,
- AnySyncRoomEvent, AnySyncStateEvent, EventContent, MessageLikeEventType,
+ AnySyncStateEvent, AnySyncTimelineEvent, EventContent, MessageLikeEventType,
MessageLikeUnsigned, OriginalSyncMessageLikeEvent, StateEventType,
SyncMessageLikeEvent, SyncStateEvent, ToDeviceEvent,
},
serde::Raw,
EventId, MilliSecondsSinceUnixEpoch, OwnedEventId, OwnedRoomId, OwnedUserId, RoomId,
},
- DisplayName, Result as MatrixResult, RoomMember,
+ DisplayName, Result as MatrixResult,
};
use ruma::events::SyncEphemeralRoomEvent;
@@ -559,7 +559,9 @@ impl Room {
}
room.accept_invitation().await?;
}
- RoomType::Left => room.reject_invitation().await?,
+ RoomType::Left => {
+ room.reject_invitation().await?;
+ }
RoomType::Outdated => unimplemented!(),
RoomType::Space => unimplemented!(),
RoomType::Direct => {
@@ -607,7 +609,9 @@ impl Room {
room.remove_tag(TagName::Favorite).await?;
}
}
- RoomType::Left => room.leave().await?,
+ RoomType::Left => {
+ room.leave().await?;
+ }
RoomType::Outdated => unimplemented!(),
RoomType::Space => unimplemented!(),
RoomType::Direct => {
@@ -782,8 +786,7 @@ impl Room {
// Listen to changes in the read receipts.
let room_weak = glib::SendWeakRef::from(obj.downgrade());
- obj.session().client().add_room_event_handler(
- obj.room_id(),
+ obj.matrix_room().add_event_handler(
move |event: SyncEphemeralRoomEvent<ReceiptEventContent>| {
let room_weak = room_weak.clone();
async move {
@@ -797,8 +800,7 @@ impl Room {
});
}
},
- )
- .await;
+ );
})
);
}
@@ -1057,8 +1059,7 @@ impl Room {
let name_content = RoomNameEventContent::new(Some(room_name));
- let handle =
- spawn_tokio!(async move { joined_room.send_state_event(name_content, "").await });
+ let handle = spawn_tokio!(async move { joined_room.send_state_event(name_content).await });
spawn!(
glib::PRIORITY_DEFAULT_IDLE,
@@ -1097,7 +1098,7 @@ impl Room {
let handle = spawn_tokio!(async move {
joined_room
- .send_state_event(RoomTopicEventContent::new(topic), "")
+ .send_state_event(RoomTopicEventContent::new(topic))
.await
});
@@ -1157,7 +1158,7 @@ impl Room {
/// Update the room state based on the new sync response
/// FIXME: We should use the sdk's event handler to get updates
- pub fn update_for_events(&self, batch: Vec<SyncRoomEvent>) {
+ pub fn update_for_events(&self, batch: Vec<SyncTimelineEvent>) {
// FIXME: notify only when the count has changed
self.notify_notification_count();
@@ -1167,7 +1168,7 @@ impl Room {
.collect();
for event in events.iter() {
- if let AnySyncRoomEvent::State(state_event) = event {
+ if let AnySyncTimelineEvent::State(state_event) = event {
match state_event {
AnySyncStateEvent::RoomMember(SyncStateEvent::Original(event)) => {
self.members().update_member_for_member_event(event)
@@ -1237,7 +1238,7 @@ impl Room {
match handle.await.unwrap() {
Ok(members) => {
// Add all members needed to display room events.
- let members: Vec<RoomMember> = members.into_iter().filter(|member| {
+ let members: Vec<_> = members.into_iter().filter(|member| {
&MembershipState::Leave != member.membership()
}).collect();
obj.members().update_from_room_members(&members);
@@ -1301,7 +1302,7 @@ impl Room {
unsigned: MessageLikeUnsigned::default(),
};
- let raw_event: Raw<AnySyncRoomEvent> = Raw::new(&matrix_event).unwrap().cast();
+ let raw_event: Raw<AnySyncTimelineEvent> = Raw::new(&matrix_event).unwrap().cast();
let event = SupportedEvent::try_from_event(raw_event.into(), self).unwrap();
self.imp()
.timeline
@@ -1352,7 +1353,7 @@ impl Room {
};
if let MatrixRoom::Joined(matrix_room) = self.matrix_room() {
- let raw_event: Raw<AnySyncRoomEvent> = Raw::new(&event).unwrap().cast();
+ let raw_event: Raw<AnySyncTimelineEvent> = Raw::new(&event).unwrap().cast();
let event = SupportedEvent::try_from_event(raw_event.into(), self).unwrap();
self.imp()
.timeline
@@ -1416,7 +1417,7 @@ impl Room {
if let MatrixRoom::Invited(matrix_room) = matrix_room {
let handle = spawn_tokio!(async move { matrix_room.accept_invitation().await });
match handle.await.unwrap() {
- Ok(result) => Ok(result),
+ Ok(_) => Ok(()),
Err(error) => {
error!("Accepting invitation failed: {}", error);
@@ -1445,7 +1446,7 @@ impl Room {
if let MatrixRoom::Invited(matrix_room) = matrix_room {
let handle = spawn_tokio!(async move { matrix_room.reject_invitation().await });
match handle.await.unwrap() {
- Ok(result) => Ok(result),
+ Ok(_) => Ok(()),
Err(error) => {
error!("Rejecting invitation failed: {}", error);
@@ -1571,11 +1572,10 @@ impl Room {
let body = body.to_string();
spawn_tokio!(async move {
let config = AttachmentConfig::default();
- let mut cursor = std::io::Cursor::new(&bytes);
matrix_room
// TODO This should be added to pending messages instead of
// sending it directly.
- .send_attachment(&body, &mime, &mut cursor, config)
+ .send_attachment(&body, &mime, &bytes, config)
.await
.unwrap();
});
@@ -1660,7 +1660,7 @@ impl Room {
/// events.
///
/// The events must be in reverse chronological order.
- pub fn update_latest_unread<'a>(&self, events: impl Iterator<Item = &'a AnySyncRoomEvent>) {
+ pub fn update_latest_unread<'a>(&self, events: impl Iterator<Item = &'a AnySyncTimelineEvent>) {
let mut latest_unread = self.latest_unread();
for event in events {
@@ -1709,21 +1709,19 @@ impl Room {
glib::PRIORITY_DEFAULT_IDLE,
clone!(@weak self as obj => async move {
let obj_weak = glib::SendWeakRef::from(obj.downgrade());
- obj.session().client().add_room_event_handler(
- obj.room_id(),
- move |_: ToDeviceEvent<ToDeviceRoomKeyEventContent>| {
- let obj_weak = obj_weak.clone();
- async move {
- let ctx = glib::MainContext::default();
- ctx.spawn(async move {
- if let Some(room) = obj_weak.upgrade() {
- room.emit_by_name::<()>("new-encryption-keys", &[]);
- }
- });
- }
- },
- )
- .await;
+ obj.matrix_room().add_event_handler(
+ move |_: ToDeviceEvent<ToDeviceRoomKeyEventContent>| {
+ let obj_weak = obj_weak.clone();
+ async move {
+ let ctx = glib::MainContext::default();
+ ctx.spawn(async move {
+ if let Some(room) = obj_weak.upgrade() {
+ room.emit_by_name::<()>("new-encryption-keys", &[]);
+ }
+ });
+ }
+ },
+ );
})
);
}
@@ -1753,9 +1751,9 @@ impl Room {
/// show in the timeline.
///
/// [MSC2654]: https://github.com/matrix-org/matrix-spec-proposals/pull/2654
-fn count_as_unread(event: &AnySyncRoomEvent) -> bool {
+fn count_as_unread(event: &AnySyncTimelineEvent) -> bool {
match event {
- AnySyncRoomEvent::MessageLike(message_event) => match message_event {
+ AnySyncTimelineEvent::MessageLike(message_event) => match message_event {
AnySyncMessageLikeEvent::RoomMessage(SyncMessageLikeEvent::Original(message)) => {
if matches!(message.content.msgtype, MessageType::Notice(_)) {
return false;
@@ -1770,9 +1768,9 @@ fn count_as_unread(event: &AnySyncRoomEvent) -> bool {
AnySyncMessageLikeEvent::Sticker(SyncMessageLikeEvent::Original(_)) => true,
_ => false,
},
- AnySyncRoomEvent::State(AnySyncStateEvent::RoomTombstone(SyncStateEvent::Original(_))) => {
- true
- }
+ AnySyncTimelineEvent::State(AnySyncStateEvent::RoomTombstone(
+ SyncStateEvent::Original(_),
+ )) => true,
_ => false,
}
}
diff --git a/src/session/room/timeline/mod.rs b/src/session/room/timeline/mod.rs
index 32018a1f0..ee3e69412 100644
--- a/src/session/room/timeline/mod.rs
+++ b/src/session/room/timeline/mod.rs
@@ -13,7 +13,7 @@ use futures::{lock::Mutex, pin_mut, Stream, StreamExt};
use gtk::{gio, glib, prelude::*, subclass::prelude::*};
use log::{error, warn};
use matrix_sdk::{
- deserialized_responses::SyncRoomEvent,
+ deserialized_responses::SyncTimelineEvent,
ruma::{EventId, OwnedEventId, OwnedTransactionId, TransactionId},
Error as MatrixError,
};
@@ -45,7 +45,7 @@ impl Default for TimelineState {
const MAX_BATCH_SIZE: usize = 20;
type BackwardStream =
- Pin<Box<dyn Stream<Item = Vec<matrix_sdk::Result<SyncRoomEvent>>> + 'static + Send>>;
+ Pin<Box<dyn Stream<Item = Vec<matrix_sdk::Result<SyncTimelineEvent>>> + 'static + Send>>;
mod imp {
use std::cell::{Cell, RefCell};
@@ -851,7 +851,7 @@ impl Timeline {
async fn handle_forward_stream(
timeline: glib::SendWeakRef<Timeline>,
- stream: impl Stream<Item = SyncRoomEvent>,
+ stream: impl Stream<Item = SyncTimelineEvent>,
) {
let stream = stream.ready_chunks(MAX_BATCH_SIZE);
pin_mut!(stream);
diff --git a/src/session/room_creation/mod.rs b/src/session/room_creation/mod.rs
index e7fb83d73..dc6e768a1 100644
--- a/src/session/room_creation/mod.rs
+++ b/src/session/room_creation/mod.rs
@@ -13,7 +13,7 @@ use matrix_sdk::{
},
assign,
},
- HttpError, RumaApiError,
+ Error, HttpError, RumaApiError,
};
use crate::{
@@ -230,7 +230,7 @@ impl RoomCreation {
match handle.await.unwrap() {
Ok(response) => {
if let Some(session) = obj.session() {
- let room = session.room_list().get_wait(response.room_id).await;
+ let room = session.room_list().get_wait(response.room_id()).await;
session.select_room(room);
}
obj.close();
@@ -247,7 +247,7 @@ impl RoomCreation {
}
/// Display the error that occurred during creation
- fn handle_error(&self, error: HttpError) {
+ fn handle_error(&self, error: Error) {
let priv_ = self.imp();
priv_.create_button.set_loading(false);
@@ -255,9 +255,9 @@ impl RoomCreation {
priv_.cancel_button.set_sensitive(true);
// Treat the room address already taken error special
- if let HttpError::Api(FromHttpResponseError::Server(ServerError::Known(
+ if let Error::Http(HttpError::Api(FromHttpResponseError::Server(ServerError::Known(
RumaApiError::ClientApi(ref client_error),
- ))) = error
+ )))) = error
{
if client_error.kind == RumaClientErrorKind::RoomInUse {
priv_.room_address.add_css_class("error");
diff --git a/src/session/room_list.rs b/src/session/room_list.rs
index 8bb3341b1..b6cc065c2 100644
--- a/src/session/room_list.rs
+++ b/src/session/room_list.rs
@@ -155,12 +155,13 @@ impl RoomList {
}
/// Waits till the Room becomes available
- pub async fn get_wait(&self, room_id: OwnedRoomId) -> Option<Room> {
- if let Some(room) = self.get(&room_id) {
+ pub async fn get_wait(&self, room_id: &RoomId) -> Option<Room> {
+ if let Some(room) = self.get(room_id) {
Some(room)
} else {
let (sender, receiver) = futures::channel::oneshot::channel();
+ let room_id = room_id.to_owned();
let sender = Cell::new(Some(sender));
// FIXME: add a timeout
let handler_id = self.connect_items_changed(move |obj, _, _, _| {
@@ -316,7 +317,7 @@ impl RoomList {
glib::PRIORITY_DEFAULT_IDLE,
clone!(@weak self as obj => async move {
match handle.await.unwrap() {
- Ok(response) => obj.pending_rooms_replace_or_remove(&identifier,
response.room_id.as_ref()),
+ Ok(response) => obj.pending_rooms_replace_or_remove(&identifier, response.room_id()),
Err(error) => {
obj.pending_rooms_remove(&identifier);
error!("Joining room {} failed: {}", identifier, error);
diff --git a/src/session/user.rs b/src/session/user.rs
index b6b419067..5c6db51f8 100644
--- a/src/session/user.rs
+++ b/src/session/user.rs
@@ -199,7 +199,7 @@ impl User {
fn init_is_verified(&self) {
spawn!(clone!(@weak self as obj => async move {
- let is_verified = obj.crypto_identity().await.map_or(false, |i| i.verified());
+ let is_verified = obj.crypto_identity().await.map_or(false, |i| i.is_verified());
if is_verified == obj.is_verified() {
return;
diff --git a/src/session/verification/verification_list.rs b/src/session/verification/verification_list.rs
index 542856abb..4d6018801 100644
--- a/src/session/verification/verification_list.rs
+++ b/src/session/verification/verification_list.rs
@@ -3,8 +3,8 @@ use log::{debug, warn};
use matrix_sdk::ruma::{
api::client::sync::sync_events::v3::ToDevice,
events::{
- room::message::MessageType, AnySyncMessageLikeEvent, AnySyncRoomEvent, AnyToDeviceEvent,
- SyncMessageLikeEvent,
+ room::message::MessageType, AnySyncMessageLikeEvent, AnySyncTimelineEvent,
+ AnyToDeviceEvent, SyncMessageLikeEvent,
},
MilliSecondsSinceUnixEpoch, OwnedUserId, UserId,
};
@@ -204,10 +204,10 @@ impl VerificationList {
pub fn handle_response_room<'a>(
&self,
room: &Room,
- events: impl Iterator<Item = &'a AnySyncRoomEvent>,
+ events: impl Iterator<Item = &'a AnySyncTimelineEvent>,
) {
for message_event in events.filter_map(|event| {
- if let AnySyncRoomEvent::MessageLike(message_event) = event {
+ if let AnySyncTimelineEvent::MessageLike(message_event) = event {
Some(message_event)
} else {
None
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]