aboutsummaryrefslogtreecommitdiff
path: root/libdino/src
diff options
context:
space:
mode:
Diffstat (limited to 'libdino/src')
-rw-r--r--libdino/src/service/message_correction.vala17
1 files changed, 11 insertions, 6 deletions
diff --git a/libdino/src/service/message_correction.vala b/libdino/src/service/message_correction.vala
index 2d710f1c..d1f1dc3d 100644
--- a/libdino/src/service/message_correction.vala
+++ b/libdino/src/service/message_correction.vala
@@ -195,7 +195,9 @@ public class MessageCorrection : StreamInteractionModule, MessageListener {
.perform();
int current_correction_message_id = get_latest_correction_message_id(conversation, original_message);
- if (content_item != null) {
+ if (current_correction_message_id == -1) warning("Stored correction but got no latest correction %i -> %i", correction_message.id, original_message.id);
+
+ if (content_item != null && current_correction_message_id != -1) {
db.content_item.update()
.with(db.content_item.id, "=", content_item.id)
.with(db.content_item.content_type, "=", 1)
@@ -227,12 +229,15 @@ public class MessageCorrection : StreamInteractionModule, MessageListener {
.with(db.message_correction.to_stanza_id, "=", message.edit_to ?? message.stanza_id)
.order_by(db.message.time, "DESC");
- if (message.occupant_db_id != -1) {
- qry.outer_join_with(db.message_occupant_id, db.message_occupant_id.message_id, db.message.id)
- .with(db.message_occupant_id.occupant_id, "=", message.occupant_db_id);
- } else if (message.counterpart.resourcepart != null) {
- qry.with(db.message.counterpart_resource, "=", message.counterpart.resourcepart);
+ if (message.type_.is_muc_semantic()) {
+ if (message.occupant_db_id != -1) {
+ qry.outer_join_with(db.message_occupant_id, db.message_occupant_id.message_id, db.message.id)
+ .with(db.message_occupant_id.occupant_id, "=", message.occupant_db_id);
+ } else if (message.counterpart.resourcepart != null) {
+ qry.with(db.message.counterpart_resource, "=", message.counterpart.resourcepart);
+ }
}
+
RowOption row = qry.single().row();
if (row.is_present()) {
return row[db.message.id];