diff options
-rw-r--r-- | res/values/strings.xml | 1 | ||||
-rw-r--r-- | src/eu/siacs/conversations/ui/ContactsActivity.java | 22 |
2 files changed, 20 insertions, 3 deletions
diff --git a/res/values/strings.xml b/res/values/strings.xml index dc875349..4f8ff473 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -249,4 +249,5 @@ <string name="openpgp_messages_found">OpenPGP encrypted messages found</string> <string name="openpgp_click_to_decrypt">Click here to enter passphrase and decrypt messages</string> <string name="reception_failed">Reception failed</string> + <string name="no_muc_server_found">No suitable Conference Server found</string> </resources>
\ No newline at end of file diff --git a/src/eu/siacs/conversations/ui/ContactsActivity.java b/src/eu/siacs/conversations/ui/ContactsActivity.java index 4e9c8af6..811ae876 100644 --- a/src/eu/siacs/conversations/ui/ContactsActivity.java +++ b/src/eu/siacs/conversations/ui/ContactsActivity.java @@ -240,6 +240,15 @@ public class ContactsActivity extends XmppActivity { String mucName = CryptoHelper.randomMucName(xmppConnectionService.getRNG()); String serverName = account.getXmppConnection() .getMucServer(); + if (serverName==null) { + List<String> servers = getMucServers(); + if (servers.size() >= 1) { + serverName = servers.get(0); + } else { + displayErrorDialog(R.string.no_muc_server_found); + return; + } + } String jid = mucName + "@" + serverName; Conversation conversation = xmppConnectionService .findOrCreateConversation(account, jid, true); @@ -462,15 +471,22 @@ public class ContactsActivity extends XmppActivity { } } - private boolean isMuc(Contact contact) { + private List<String> getMucServers() { ArrayList<String> mucServers = new ArrayList<String>(); for(Account account : accounts) { if (account.getXmppConnection()!=null) { - mucServers.add(account.getXmppConnection().getMucServer()); + String server = account.getXmppConnection().getMucServer(); + if (server!=null) { + mucServers.add(server); + } } } + return mucServers; + } + + private boolean isMuc(Contact contact) { String server = contact.getJid().split("@")[1]; - return mucServers.contains(server); + return getMucServers().contains(server); } public void startConversation(Contact contact, Account account, boolean muc) { |