From a99c3ff16d3b10209b19a43fc4e810351aeccd61 Mon Sep 17 00:00:00 2001 From: fiaxh Date: Fri, 23 Aug 2019 21:19:26 +0200 Subject: Add and enable newly created (first) account fixes #584 --- main/src/ui/manage_accounts/add_account_dialog.vala | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'main/src/ui/manage_accounts/add_account_dialog.vala') diff --git a/main/src/ui/manage_accounts/add_account_dialog.vala b/main/src/ui/manage_accounts/add_account_dialog.vala index 558738aa..cefc3261 100644 --- a/main/src/ui/manage_accounts/add_account_dialog.vala +++ b/main/src/ui/manage_accounts/add_account_dialog.vala @@ -70,12 +70,14 @@ public class AddAccountDialog : Gtk.Dialog { }; private StreamInteractor stream_interactor; + private Database db; private HashMap list_box_jids = new HashMap(); private Jid? server_jid = null; private Xep.InBandRegistration.Form? form = null; - public AddAccountDialog(StreamInteractor stream_interactor) { + public AddAccountDialog(StreamInteractor stream_interactor, Database db) { this.stream_interactor = stream_interactor; + this.db = db; this.title = _("Add Account"); // Sign in - Jid @@ -258,8 +260,8 @@ public class AddAccountDialog : Gtk.Dialog { break; } } else { + add_activate_account(account); show_success(); - added(account); } } @@ -343,9 +345,9 @@ public class AddAccountDialog : Gtk.Dialog { case "password": password = field.get_value_string(); break; } } - Account account = new Account(new Jid(username + "@" + server_jid.domainpart), null, password, null); + Account account = new Account(new Jid.components(username, server_jid.domainpart, null), null, password, null); + add_activate_account(account); show_success(); - added(account); } else { display_notification(error); } @@ -360,6 +362,13 @@ public class AddAccountDialog : Gtk.Dialog { }); } + private void add_activate_account(Account account) { + account.enabled = true; + account.persist(db); + stream_interactor.connect_account(account); + added(account); + } + private void animate_window_resize(Widget widget) { // TODO code duplication int def_height, curr_width, curr_height; get_size(out curr_width, out curr_height); -- cgit v1.2.3-54-g00ecf