Private
Public Access
1
0

Implements marking conversations as read when clicked on

This commit is contained in:
2025-06-18 15:00:54 -07:00
parent 4170f13092
commit a70adbb7f1
4 changed files with 18 additions and 0 deletions

View File

@@ -45,6 +45,7 @@ public class MainWindow : Adw.ApplicationWindow
transcript_view.title = conversation.display_name;
try {
Repository.get_instance().mark_conversation_as_read(conversation.guid);
Repository.get_instance().sync_conversation(conversation.guid);
} catch (Error e) {
GLib.warning("Failed to sync conversation: %s", e.message);

View File

@@ -38,6 +38,9 @@ namespace DBusService {
[DBus (name = "SyncConversation")]
public abstract void sync_conversation(string conversation_id) throws DBusError, IOError;
[DBus (name = "MarkConversationAsRead")]
public abstract void mark_conversation_as_read(string conversation_id) throws DBusError, IOError;
[DBus (name = "ConversationsUpdated")]
public signal void conversations_updated();

View File

@@ -43,6 +43,12 @@
value="Initiates a background sync of a single conversation with the server."/>
</method>
<method name="MarkConversationAsRead">
<arg type="s" name="conversation_id" direction="in"/>
<annotation name="org.freedesktop.DBus.DocString"
value="Marks a conversation as read."/>
</method>
<signal name="ConversationsUpdated">
<annotation name="org.freedesktop.DBus.DocString"
value="Emitted when the list of conversations is updated."/>

View File

@@ -112,6 +112,14 @@ public class Repository : DBusServiceProxy {
dbus_repository.sync_conversation(conversation_guid);
}
public void mark_conversation_as_read(string conversation_guid) throws DBusServiceProxyError, GLib.Error {
if (dbus_repository == null) {
throw new DBusServiceProxyError.NOT_CONNECTED("Repository not connected");
}
dbus_repository.mark_conversation_as_read(conversation_guid);
}
public void download_attachment(string attachment_guid, bool preview) throws DBusServiceProxyError, GLib.Error {
if (dbus_repository == null) {
throw new DBusServiceProxyError.NOT_CONNECTED("Repository not connected");