diff options
author | Daniel Gultsch <daniel@gultsch.de> | 2014-03-16 14:12:30 +0100 |
---|---|---|
committer | Daniel Gultsch <daniel@gultsch.de> | 2014-03-16 14:12:30 +0100 |
commit | 0116551ca9b99c58e0459d52f66d5d9bfa1c2afa (patch) | |
tree | 7a221e528a12c6a9998e1f3ff6cdda02356f6601 | |
parent | 0b3b0da2e8db96f68ddfe35d6f9294ee58c9323e (diff) |
bug fixes with leaving muc on connection loss.0.1-rc2
-rw-r--r-- | AndroidManifest.xml | 4 | ||||
-rw-r--r-- | src/eu/siacs/conversations/services/XmppConnectionService.java | 18 | ||||
-rw-r--r-- | src/eu/siacs/conversations/xml/Element.java | 13 | ||||
-rw-r--r-- | src/eu/siacs/conversations/xmpp/XmppConnection.java | 2 |
4 files changed, 22 insertions, 15 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 6a13ae92..a5445c7a 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="eu.siacs.conversations" - android:versionCode="1" - android:versionName="0.1-rc1" > + android:versionCode="2" + android:versionName="0.1-rc2" > <uses-sdk android:minSdkVersion="14" diff --git a/src/eu/siacs/conversations/services/XmppConnectionService.java b/src/eu/siacs/conversations/services/XmppConnectionService.java index 815e06af..0e4852af 100644 --- a/src/eu/siacs/conversations/services/XmppConnectionService.java +++ b/src/eu/siacs/conversations/services/XmppConnectionService.java @@ -1082,14 +1082,16 @@ public class XmppConnectionService extends Service { public void disconnect(Account account, boolean force) { if ((account.getStatus() == Account.STATUS_ONLINE)||(account.getStatus() == Account.STATUS_DISABLED)) { - List<Conversation> conversations = getConversations(); - for (int i = 0; i < conversations.size(); i++) { - Conversation conversation = conversations.get(i); - if (conversation.getAccount() == account) { - if (conversation.getMode() == Conversation.MODE_MULTI) { - leaveMuc(conversation); - } else { - conversation.endOtrIfNeeded(); + if (!force) { + List<Conversation> conversations = getConversations(); + for (int i = 0; i < conversations.size(); i++) { + Conversation conversation = conversations.get(i); + if (conversation.getAccount() == account) { + if (conversation.getMode() == Conversation.MODE_MULTI) { + leaveMuc(conversation); + } else { + conversation.endOtrIfNeeded(); + } } } } diff --git a/src/eu/siacs/conversations/xml/Element.java b/src/eu/siacs/conversations/xml/Element.java index ad95ef9c..6cf6d3a5 100644 --- a/src/eu/siacs/conversations/xml/Element.java +++ b/src/eu/siacs/conversations/xml/Element.java @@ -4,8 +4,6 @@ import java.util.ArrayList; import java.util.Hashtable; import java.util.List; -import android.util.Log; - public class Element { protected String name; protected Hashtable<String, String> attributes = new Hashtable<String, String>(); @@ -83,7 +81,7 @@ public class Element { startTag.setAtttributes(this.attributes); elementOutput.append(startTag); if (content!=null) { - elementOutput.append(content); + elementOutput.append(encodeEntities(content)); } else { for(Element child : children) { elementOutput.append(child.toString()); @@ -98,4 +96,13 @@ public class Element { public String getName() { return name; } + + private String encodeEntities(String content) { + content = content.replace("&","&"); + content = content.replace("<","<"); + content = content.replace(">",">"); + content = content.replace("\"","""); + content = content.replace("'","'"); + return content; + } } diff --git a/src/eu/siacs/conversations/xmpp/XmppConnection.java b/src/eu/siacs/conversations/xmpp/XmppConnection.java index 0fbd6f77..fd8242c0 100644 --- a/src/eu/siacs/conversations/xmpp/XmppConnection.java +++ b/src/eu/siacs/conversations/xmpp/XmppConnection.java @@ -676,10 +676,8 @@ public class XmppConnection implements Runnable { public void sendPing() { if (streamFeatures.hasChild("sm")) { - Log.d(LOGTAG,account.getJid()+": sending r as ping"); tagWriter.writeStanzaAsync(new RequestPacket()); } else { - Log.d(LOGTAG,account.getJid()+": sending iq as ping"); IqPacket iq = new IqPacket(IqPacket.TYPE_GET); Element ping = new Element("ping"); iq.setAttribute("from",account.getFullJid()); |