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");