aboutsummaryrefslogtreecommitdiff
path: root/libdino/src/service/content_item_store.vala
diff options
context:
space:
mode:
authorfiaxh <git@lightrise.org>2020-04-03 22:49:59 +0200
committerfiaxh <git@lightrise.org>2020-04-03 22:49:59 +0200
commit871ff33ac79f3d17b0260b8bfcd27780038edd6d (patch)
treef8079e29db5d0f9294fbfbfb47b93b0403249cc9 /libdino/src/service/content_item_store.vala
parent1c8e15c408f57d93461e6adb33c4c4415ac49267 (diff)
downloaddino-871ff33ac79f3d17b0260b8bfcd27780038edd6d.tar.gz
dino-871ff33ac79f3d17b0260b8bfcd27780038edd6d.zip
Add support for last message correction
Diffstat (limited to 'libdino/src/service/content_item_store.vala')
-rw-r--r--libdino/src/service/content_item_store.vala12
1 files changed, 10 insertions, 2 deletions
diff --git a/libdino/src/service/content_item_store.vala b/libdino/src/service/content_item_store.vala
index 1e2ee85a..1ea0275e 100644
--- a/libdino/src/service/content_item_store.vala
+++ b/libdino/src/service/content_item_store.vala
@@ -45,9 +45,13 @@ public class ContentItemStore : StreamInteractionModule, Object {
foreach (var row in select) {
int provider = row[db.content_item.content_type];
int foreign_id = row[db.content_item.foreign_id];
+ DateTime time = new DateTime.from_unix_utc(row[db.content_item.time]);
+ DateTime local_time = new DateTime.from_unix_utc(row[db.content_item.local_time]);
switch (provider) {
case 1:
- RowOption row_option = db.message.select().with(db.message.id, "=", foreign_id).row();
+ RowOption row_option = db.message.select().with(db.message.id, "=", foreign_id)
+ .outer_join_with(db.message_correction, db.message_correction.message_id, db.message.id)
+ .row();
if (row_option.is_present()) {
Message? message = stream_interactor.get_module(MessageStorage.IDENTITY).get_message_by_id(foreign_id, conversation);
if (message == null) {
@@ -58,7 +62,10 @@ public class ContentItemStore : StreamInteractionModule, Object {
}
}
if (message != null) {
- items.add(new MessageItem(message, conversation, row[db.content_item.id]));
+ var message_item = new MessageItem(message, conversation, row[db.content_item.id]);
+ message_item.display_time = time;
+ message_item.sort_time = local_time;
+ items.add(message_item);
}
}
break;
@@ -259,6 +266,7 @@ public class MessageItem : ContentItem {
public MessageItem(Message message, Conversation conversation, int id) {
base(id, TYPE, message.from, message.local_time, message.time, message.encryption, message.marked);
+
this.message = message;
this.conversation = conversation;