aboutsummaryrefslogtreecommitdiff
path: root/main/src/ui/add_conversation/add_contact_dialog.vala
diff options
context:
space:
mode:
authorMarvin W <git@larma.de>2019-12-22 04:10:53 +0100
committerMarvin W <git@larma.de>2019-12-23 16:58:53 +0100
commita0a956ee0878d24bd06be7f5d75dc4ccd4e7901d (patch)
treecbb079649066c2001b6d6881137108e70eed9d3f /main/src/ui/add_conversation/add_contact_dialog.vala
parent3218dc0211ac717230fe03fad82681a626d968b5 (diff)
downloaddino-a0a956ee0878d24bd06be7f5d75dc4ccd4e7901d.tar.gz
dino-a0a956ee0878d24bd06be7f5d75dc4ccd4e7901d.zip
Properly check Jids everywhere
Diffstat (limited to 'main/src/ui/add_conversation/add_contact_dialog.vala')
-rw-r--r--main/src/ui/add_conversation/add_contact_dialog.vala23
1 files changed, 15 insertions, 8 deletions
diff --git a/main/src/ui/add_conversation/add_contact_dialog.vala b/main/src/ui/add_conversation/add_contact_dialog.vala
index 33f6fa72..7e9b5185 100644
--- a/main/src/ui/add_conversation/add_contact_dialog.vala
+++ b/main/src/ui/add_conversation/add_contact_dialog.vala
@@ -39,17 +39,24 @@ protected class AddContactDialog : Gtk.Dialog {
private void on_ok_button_clicked() {
string? alias = alias_entry.text == "" ? null : alias_entry.text;
- Jid jid = new Jid(jid_entry.text);
- stream_interactor.get_module(RosterManager.IDENTITY).add_jid(account, jid, alias);
- stream_interactor.get_module(PresenceManager.IDENTITY).request_subscription(account, jid);
- close();
+ try {
+ Jid jid = new Jid(jid_entry.text);
+ stream_interactor.get_module(RosterManager.IDENTITY).add_jid(account, jid, alias);
+ stream_interactor.get_module(PresenceManager.IDENTITY).request_subscription(account, jid);
+ close();
+ } catch (InvalidJidError e) {
+ warning("Tried to add contact with invalid Jid: %s", e.message);
+ }
}
private void on_jid_entry_changed() {
- Jid parsed_jid = Jid.parse(jid_entry.text);
- bool sensitive = parsed_jid != null && parsed_jid.resourcepart == null &&
- stream_interactor.get_module(RosterManager.IDENTITY).get_roster_item(account, parsed_jid) == null;
- ok_button.set_sensitive(sensitive);
+ try {
+ Jid parsed_jid = new Jid(jid_entry.text);
+ ok_button. sensitive = parsed_jid != null && parsed_jid.resourcepart == null &&
+ stream_interactor.get_module(RosterManager.IDENTITY).get_roster_item(account, parsed_jid) == null;
+ } catch (InvalidJidError e) {
+ ok_button.sensitive = false;
+ }
}
}