Fix message stanza default type
This commit is contained in:
parent
d3005bcaca
commit
1eca8c6f67
|
@ -282,15 +282,19 @@ public class Database : Qlite.Database {
|
||||||
|
|
||||||
public bool contains_message(Message query_message, Account account) {
|
public bool contains_message(Message query_message, Account account) {
|
||||||
int jid_id = get_jid_id(query_message.counterpart);
|
int jid_id = get_jid_id(query_message.counterpart);
|
||||||
return message.select()
|
QueryBuilder builder = message.select()
|
||||||
.with(message.account_id, "=", account.id)
|
.with(message.account_id, "=", account.id)
|
||||||
.with(message.stanza_id, "=", query_message.stanza_id)
|
|
||||||
.with(message.counterpart_id, "=", jid_id)
|
.with(message.counterpart_id, "=", jid_id)
|
||||||
.with(message.counterpart_resource, "=", query_message.counterpart.resourcepart)
|
.with(message.counterpart_resource, "=", query_message.counterpart.resourcepart)
|
||||||
.with(message.body, "=", query_message.body)
|
.with(message.body, "=", query_message.body)
|
||||||
.with(message.time, "<", (long) query_message.time.add_minutes(1).to_unix())
|
.with(message.time, "<", (long) query_message.time.add_minutes(1).to_unix())
|
||||||
.with(message.time, ">", (long) query_message.time.add_minutes(-1).to_unix())
|
.with(message.time, ">", (long) query_message.time.add_minutes(-1).to_unix());
|
||||||
.count() > 0;
|
if (query_message.stanza_id != null) {
|
||||||
|
builder.with(message.stanza_id, "=", query_message.stanza_id);
|
||||||
|
} else {
|
||||||
|
builder.with_null(message.stanza_id);
|
||||||
|
}
|
||||||
|
return builder.count() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool contains_message_by_stanza_id(string stanza_id, Account account) {
|
public bool contains_message_by_stanza_id(string stanza_id, Account account) {
|
||||||
|
@ -347,8 +351,6 @@ public class Database : Qlite.Database {
|
||||||
.value(conversation.active, new_conversation.active);
|
.value(conversation.active, new_conversation.active);
|
||||||
if (new_conversation.last_active != null) {
|
if (new_conversation.last_active != null) {
|
||||||
insert.value(conversation.last_active, (long) new_conversation.last_active.to_unix());
|
insert.value(conversation.last_active, (long) new_conversation.last_active.to_unix());
|
||||||
} else {
|
|
||||||
insert.value_null(conversation.last_active);
|
|
||||||
}
|
}
|
||||||
new_conversation.id = (int) insert.perform();
|
new_conversation.id = (int) insert.perform();
|
||||||
new_conversation.notify.connect(on_conversation_update);
|
new_conversation.notify.connect(on_conversation_update);
|
||||||
|
|
|
@ -10,6 +10,8 @@
|
||||||
<object class="GtkScrolledWindow" id="scrolled">
|
<object class="GtkScrolledWindow" id="scrolled">
|
||||||
<property name="max_content_height">300</property>
|
<property name="max_content_height">300</property>
|
||||||
<property name="propagate_natural_height">True</property>
|
<property name="propagate_natural_height">True</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame">
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkTextView" id="text_input">
|
<object class="GtkTextView" id="text_input">
|
||||||
<property name="wrap-mode">GTK_WRAP_WORD_CHAR</property>
|
<property name="wrap-mode">GTK_WRAP_WORD_CHAR</property>
|
||||||
|
@ -21,5 +23,7 @@
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
</template>
|
</template>
|
||||||
</interface>
|
</interface>
|
||||||
|
|
|
@ -33,6 +33,13 @@ public class Stanza : Xmpp.Stanza {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override string? type_ {
|
||||||
|
get {
|
||||||
|
return base.type_ ?? TYPE_NORMAL;
|
||||||
|
}
|
||||||
|
set { base.type_ = value; }
|
||||||
|
}
|
||||||
|
|
||||||
public Stanza(string? id = null) {
|
public Stanza(string? id = null) {
|
||||||
base.outgoing(new StanzaNode.build("message"));
|
base.outgoing(new StanzaNode.build("message"));
|
||||||
stanza.set_attribute(ATTRIBUTE_ID, id ?? random_uuid());
|
stanza.set_attribute(ATTRIBUTE_ID, id ?? random_uuid());
|
||||||
|
|
|
@ -73,9 +73,9 @@ public class Stanza : Xmpp.Stanza {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string type_ {
|
public override string? type_ {
|
||||||
get {
|
get {
|
||||||
return base.type_ != null ? base.type_ : TYPE_AVAILABLE;
|
return base.type_ ?? TYPE_AVAILABLE;
|
||||||
}
|
}
|
||||||
set { base.type_ = value; }
|
set { base.type_ = value; }
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@ namespace Xmpp {
|
||||||
set { stanza.set_attribute(ATTRIBUTE_TO, value); }
|
set { stanza.set_attribute(ATTRIBUTE_TO, value); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual string type_ {
|
public virtual string? type_ {
|
||||||
get { return stanza.get_attribute(ATTRIBUTE_TYPE); }
|
get { return stanza.get_attribute(ATTRIBUTE_TYPE); }
|
||||||
set { stanza.set_attribute(ATTRIBUTE_TYPE, value); }
|
set { stanza.set_attribute(ATTRIBUTE_TYPE, value); }
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue