Directly start chat from xmpp uri if only one account is active

fixes #160
This commit is contained in:
fiaxh 2017-10-22 03:39:13 +02:00
parent 555187deb9
commit 128a015d45
1 changed files with 16 additions and 9 deletions

View File

@ -58,17 +58,24 @@ public class Dino.Ui.Application : Gtk.Application, Dino.Application {
dialog.present();
break;
case "message":
AddConversation.Chat.Dialog dialog = new AddConversation.Chat.Dialog(stream_interactor, stream_interactor.get_accounts());
dialog.set_filter(jid);
dialog.set_transient_for(window);
dialog.title = _("Start Chat");
dialog.ok_button.label = _("Start");
dialog.selected.connect((account, jid) => {
Conversation conversation = stream_interactor.get_module(ConversationManager.IDENTITY).create_conversation(jid, account, Conversation.Type.CHAT);
Gee.List<Account> accounts = stream_interactor.get_accounts();
if (accounts.size == 1) {
Conversation conversation = stream_interactor.get_module(ConversationManager.IDENTITY).create_conversation(new Jid(jid), accounts[0], Conversation.Type.CHAT);
stream_interactor.get_module(ConversationManager.IDENTITY).start_conversation(conversation, true);
window.on_conversation_selected(conversation);
});
dialog.present();
} else {
AddConversation.Chat.Dialog dialog = new AddConversation.Chat.Dialog(stream_interactor, stream_interactor.get_accounts());
dialog.set_filter(jid);
dialog.set_transient_for(window);
dialog.title = _("Start Chat");
dialog.ok_button.label = _("Start");
dialog.selected.connect((account, jid) => {
Conversation conversation = stream_interactor.get_module(ConversationManager.IDENTITY).create_conversation(jid, account, Conversation.Type.CHAT);
stream_interactor.get_module(ConversationManager.IDENTITY).start_conversation(conversation, true);
window.on_conversation_selected(conversation);
});
dialog.present();
}
break;
}
}