From 28b1aa6e87b31a0c3f7175c0a54a6a5c96b3f3a1 Mon Sep 17 00:00:00 2001 From: Hocuri Date: Thu, 17 Sep 2026 18:57:47 +0200 Subject: [PATCH] fix: Update device chats only once, and send progress 1000 --- src/autorelay.rs | 10 ++++++---- src/configure.rs | 10 +++++++--- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/autorelay.rs b/src/autorelay.rs index 6b4f6a87d..40aeb45d6 100644 --- a/src/autorelay.rs +++ b/src/autorelay.rs @@ -61,10 +61,9 @@ pub(crate) async fn init_transports_inner( context: &Context, addrs_from_qr: Vec, skip_network: bool, -) -> Result<(), anyhow::Error> { - let mut default_relays: Vec<&str> = DEFAULT_RELAY_CANDIDATES.into(); - default_relays.shuffle(&mut rng()); - +) -> Result<()> { + // If relays were provided via the addresses in the QR code, + // then these relays are tried first. let (relays_sender, relays_receiver) = async_channel::unbounded::(); let relays_from_qr: BTreeSet = addrs_from_qr .into_iter() @@ -74,6 +73,9 @@ pub(crate) async fn init_transports_inner( for relay in &relays_from_qr { relays_sender.try_send(relay.to_string())?; } + + let mut default_relays: Vec<&str> = DEFAULT_RELAY_CANDIDATES.into(); + default_relays.shuffle(&mut rng()); for relay in default_relays { if !relays_from_qr.contains(relay) { relays_sender.try_send(relay.to_string())?; diff --git a/src/configure.rs b/src/configure.rs index c54574177..3a3dbc135 100644 --- a/src/configure.rs +++ b/src/configure.rs @@ -219,6 +219,10 @@ impl Context { let skip_network = false; autorelay::init_transports_inner(self, addrs_from_qr, skip_network).await?; + self.update_device_chats() + .await + .context("Failed to update device chats")?; + progress!(self, 1000); self.start_io().await; @@ -315,6 +319,9 @@ impl Context { ); return Err(error); }; + self.update_device_chats() + .await + .context("Failed to update device chats")?; if provider::legacy_settings_for_addr(¶m.addr)?.worse_media_quality && !self.config_exists(Config::MediaQuality).await? { @@ -558,9 +565,6 @@ pub(crate) async fn configure( ctx.scheduler.interrupt_inbox().await; progress!(ctx, 940); - ctx.update_device_chats() - .await - .context("Failed to update device chats")?; ctx.sql.set_raw_config_bool("configured", true).await?; ctx.emit_event(EventType::AccountsItemChanged);