diff --git a/src/application/main-window.vala b/src/application/main-window.vala index cab37bd..d580c3e 100644 --- a/src/application/main-window.vala +++ b/src/application/main-window.vala @@ -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); diff --git a/src/service/interface/dbusservice.vala b/src/service/interface/dbusservice.vala index 63879cf..b7b89ac 100644 --- a/src/service/interface/dbusservice.vala +++ b/src/service/interface/dbusservice.vala @@ -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(); diff --git a/src/service/interface/xml/net.buzzert.kordophonecd.Server.xml b/src/service/interface/xml/net.buzzert.kordophonecd.Server.xml index a0898e3..cdef983 100644 --- a/src/service/interface/xml/net.buzzert.kordophonecd.Server.xml +++ b/src/service/interface/xml/net.buzzert.kordophonecd.Server.xml @@ -43,6 +43,12 @@ value="Initiates a background sync of a single conversation with the server."/> + + + + + diff --git a/src/service/repository.vala b/src/service/repository.vala index 59aeab1..9c939c4 100644 --- a/src/service/repository.vala +++ b/src/service/repository.vala @@ -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");