Private
Public Access
1
0

Notify when attachment download succeeds, fix deadlock in attachment store

This commit is contained in:
2025-06-06 20:02:09 -07:00
parent 1d3b2f25ba
commit 4ddc0dca39
11 changed files with 126 additions and 35 deletions

View File

@@ -12,5 +12,6 @@ pub mod interface {
pub mod signals {
pub use crate::interface::NetBuzzertKordophoneRepositoryConversationsUpdated as ConversationsUpdated;
pub use crate::interface::NetBuzzertKordophoneRepositoryMessagesUpdated as MessagesUpdated;
pub use crate::interface::NetBuzzertKordophoneRepositoryAttachmentDownloadCompleted as AttachmentDownloadCompleted;
}
}

View File

@@ -125,7 +125,6 @@ impl DbusRepository for ServerImpl {
messages
.into_iter()
.map(|msg| {
let msg_id = msg.id.clone(); // Store ID for potential error logging
let mut map = arg::PropMap::new();
map.insert("id".into(), arg::Variant(Box::new(msg.id)));
map.insert("text".into(), arg::Variant(Box::new(msg.text)));
@@ -150,8 +149,8 @@ impl DbusRepository for ServerImpl {
);
// Get attachment paths and download status
let path = attachment.get_path(false);
let preview_path = attachment.get_path(true);
let path = attachment.get_path_for_preview(false);
let preview_path = attachment.get_path_for_preview(true);
let downloaded = attachment.is_downloaded(false);
let preview_downloaded = attachment.is_downloaded(true);
@@ -238,10 +237,10 @@ impl DbusRepository for ServerImpl {
) -> Result<(String, String, bool, bool), dbus::MethodErr> {
self.send_event_sync(|r| Event::GetAttachment(attachment_id, r))
.map(|attachment| {
let path = attachment.get_path(false);
let path = attachment.get_path_for_preview(false);
let downloaded = attachment.is_downloaded(false);
let preview_path = attachment.get_path(true);
let preview_path = attachment.get_path_for_preview(true);
let preview_downloaded = attachment.is_downloaded(true);
(