From 22616c74587d60c1fe2eb360d87efa640b7b5908 Mon Sep 17 00:00:00 2001 From: fabrixxm Date: Wed, 21 May 2025 11:46:13 +0200 Subject: FileTransfer fix store source Store source in db and add sources to `sfs_sources` is divided in two functions. `persists()` now calls `store_source`, because the sources it want to persist are already added to `sfs_sources`. --- libdino/src/entity/file_transfer.vala | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libdino/src/entity/file_transfer.vala b/libdino/src/entity/file_transfer.vala index 49ff2aa3..52347028 100644 --- a/libdino/src/entity/file_transfer.vala +++ b/libdino/src/entity/file_transfer.vala @@ -224,7 +224,7 @@ public class FileTransfer : Object { } foreach (Xep.StatelessFileSharing.Source source in sfs_sources) { - add_sfs_source(source); + persist_source(source); } notify.connect(on_update); @@ -234,7 +234,13 @@ public class FileTransfer : Object { if (sfs_sources.contains(source)) return; // Don't add the same source twice. Might happen due to MAM and lacking deduplication. sfs_sources.add(source); + if (id != -1) { + persist_source(source); + } + sources_changed(); + } + private void persist_source(Xep.StatelessFileSharing.Source source) { Xep.StatelessFileSharing.HttpSource? http_source = source as Xep.StatelessFileSharing.HttpSource; if (http_source != null) { db.sfs_sources.insert() @@ -243,8 +249,6 @@ public class FileTransfer : Object { .value(db.sfs_sources.data, http_source.url) .perform(); } - - sources_changed(); } public File? get_file() { -- cgit v1.3