Mark conversation as read on movement
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user