aboutsummaryrefslogtreecommitdiff
path: root/libdino/src/service/message_storage.vala
diff options
context:
space:
mode:
authorbobufa <bobufa@users.noreply.github.com>2018-06-23 11:59:21 +0200
committerbobufa <bobufa@users.noreply.github.com>2018-08-13 22:05:04 +0200
commit760fd4cb26340165fb85c2e3aee8390e46dc8b63 (patch)
treee68f93a234680b4d84fd79b02cd27c6f1b058077 /libdino/src/service/message_storage.vala
parent443e7ee49da305a9ae8052c5b7a73412d03ce75f (diff)
downloaddino-760fd4cb26340165fb85c2e3aee8390e46dc8b63.tar.gz
dino-760fd4cb26340165fb85c2e3aee8390e46dc8b63.zip
load+display later messages when scrolling down
Diffstat (limited to 'libdino/src/service/message_storage.vala')
-rw-r--r--libdino/src/service/message_storage.vala11
1 files changed, 8 insertions, 3 deletions
diff --git a/libdino/src/service/message_storage.vala b/libdino/src/service/message_storage.vala
index 906693a3..e3869e41 100644
--- a/libdino/src/service/message_storage.vala
+++ b/libdino/src/service/message_storage.vala
@@ -51,7 +51,7 @@ public class MessageStorage : StreamInteractionModule, Object {
return null;
}
- public Gee.List<Message>? get_messages_before_message(Conversation? conversation, DateTime before, int count = 20) {
+ public Gee.List<Message>? get_messages_before_message(Conversation? conversation, DateTime before, int id, int count = 20) {
// SortedSet<Message>? before = messages[conversation].head_set(message);
// if (before != null && before.size >= count) {
// Gee.List<Message> ret = new ArrayList<Message>(Message.equals_func);
@@ -65,11 +65,16 @@ public class MessageStorage : StreamInteractionModule, Object {
// }
// return ret;
// } else {
- Gee.List<Message> db_messages = db.get_messages(conversation.counterpart, conversation.account, Util.get_message_type_for_conversation(conversation), count, before);
+ Gee.List<Message> db_messages = db.get_messages(conversation.counterpart, conversation.account, Util.get_message_type_for_conversation(conversation), count, before, null, id);
return db_messages;
// }
}
+ public Gee.List<Message>? get_messages_after_message(Conversation? conversation, DateTime after, int id, int count = 20) {
+ Gee.List<Message> db_messages = db.get_messages(conversation.counterpart, conversation.account, Util.get_message_type_for_conversation(conversation), count, null, after, id);
+ return db_messages;
+ }
+
public Message? get_message_by_id(string stanza_id, Conversation conversation) {
init_conversation(conversation);
foreach (Message message in messages[conversation]) {
@@ -100,7 +105,7 @@ public class MessageStorage : StreamInteractionModule, Object {
}
return res;
});
- Gee.List<Message> db_messages = db.get_messages(conversation.counterpart, conversation.account, Util.get_message_type_for_conversation(conversation), 50, null);
+ Gee.List<Message> db_messages = db.get_messages(conversation.counterpart, conversation.account, Util.get_message_type_for_conversation(conversation), 50, null, null, -1);
messages[conversation].add_all(db_messages);
}
}