fix: Update device chats only once, and send progress 1000

This commit is contained in:
Hocuri
2026-09-17 19:01:27 +02:00
parent 7ff3227b95
commit 28b1aa6e87
2 changed files with 13 additions and 7 deletions
+6 -4
View File
@@ -61,10 +61,9 @@ pub(crate) async fn init_transports_inner(
context: &Context, context: &Context,
addrs_from_qr: Vec<String>, addrs_from_qr: Vec<String>,
skip_network: bool, skip_network: bool,
) -> Result<(), anyhow::Error> { ) -> Result<()> {
let mut default_relays: Vec<&str> = DEFAULT_RELAY_CANDIDATES.into(); // If relays were provided via the addresses in the QR code,
default_relays.shuffle(&mut rng()); // then these relays are tried first.
let (relays_sender, relays_receiver) = async_channel::unbounded::<String>(); let (relays_sender, relays_receiver) = async_channel::unbounded::<String>();
let relays_from_qr: BTreeSet<String> = addrs_from_qr let relays_from_qr: BTreeSet<String> = addrs_from_qr
.into_iter() .into_iter()
@@ -74,6 +73,9 @@ pub(crate) async fn init_transports_inner(
for relay in &relays_from_qr { for relay in &relays_from_qr {
relays_sender.try_send(relay.to_string())?; 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 { for relay in default_relays {
if !relays_from_qr.contains(relay) { if !relays_from_qr.contains(relay) {
relays_sender.try_send(relay.to_string())?; relays_sender.try_send(relay.to_string())?;
+7 -3
View File
@@ -219,6 +219,10 @@ impl Context {
let skip_network = false; let skip_network = false;
autorelay::init_transports_inner(self, addrs_from_qr, skip_network).await?; 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; self.start_io().await;
@@ -315,6 +319,9 @@ impl Context {
); );
return Err(error); return Err(error);
}; };
self.update_device_chats()
.await
.context("Failed to update device chats")?;
if provider::legacy_settings_for_addr(&param.addr)?.worse_media_quality if provider::legacy_settings_for_addr(&param.addr)?.worse_media_quality
&& !self.config_exists(Config::MediaQuality).await? && !self.config_exists(Config::MediaQuality).await?
{ {
@@ -558,9 +565,6 @@ pub(crate) async fn configure(
ctx.scheduler.interrupt_inbox().await; ctx.scheduler.interrupt_inbox().await;
progress!(ctx, 940); progress!(ctx, 940);
ctx.update_device_chats()
.await
.context("Failed to update device chats")?;
ctx.sql.set_raw_config_bool("configured", true).await?; ctx.sql.set_raw_config_bool("configured", true).await?;
ctx.emit_event(EventType::AccountsItemChanged); ctx.emit_event(EventType::AccountsItemChanged);