Private
Public Access
1
0

Mark conversation as read on movement

This commit is contained in:
2025-06-18 15:32:37 -07:00
parent a70adbb7f1
commit 3b6666cfc2
5 changed files with 113 additions and 37 deletions

View File

@@ -15,16 +15,16 @@ public class MessageListModel : Object, ListModel
}
}
public string conversation_guid { get; private set; }
public Conversation conversation { get; private set; }
private ArrayList<Message> _messages;
private HashSet<string> participants = new HashSet<string>();
private ulong update_handler_id = 0;
private ulong reconnected_handler_id = 0;
public MessageListModel(string conversation_guid) {
public MessageListModel(Conversation conversation) {
_messages = new ArrayList<Message>();
this.conversation_guid = conversation_guid;
this.conversation = conversation;
}
~MessageListModel() {
@@ -69,7 +69,7 @@ public class MessageListModel : Object, ListModel
try {
bool first_load = _messages.size == 0;
Message[] messages = Repository.get_instance().get_messages(conversation_guid);
Message[] messages = Repository.get_instance().get_messages(conversation.guid);
// Clear existing set
uint old_count = _messages.size;
@@ -108,8 +108,16 @@ public class MessageListModel : Object, ListModel
messages_changed();
}
public void mark_as_read() {
try {
Repository.get_instance().mark_conversation_as_read(conversation.guid);
} catch (Error e) {
warning("Failed to mark conversation as read: %s", e.message);
}
}
private void got_messages_updated(string conversation_guid) {
if (conversation_guid == this.conversation_guid) {
if (conversation_guid == this.conversation.guid) {
load_messages();
}
}