bug fixes with leaving muc on connection loss.
This commit is contained in:
parent
0b3b0da2e8
commit
0116551ca9
|
@ -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"
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
|
|
Loading…
Reference in a new issue