fixed #123 fixed122

This commit is contained in:
Daniel Gultsch 2014-05-18 13:23:26 +02:00
parent 7fc7201abb
commit e857cf979d
3 changed files with 11 additions and 31 deletions

View file

@ -726,11 +726,10 @@ public class XmppConnectionService extends Service {
@Override @Override
public void onBind(Account account) { public void onBind(Account account) {
databaseBackend.clearPresences(account); databaseBackend.clearPresences(account); //contact presences
account.clearPresences(); // self presences account.clearPresences(); // self presences
if (account.getXmppConnection().hasFeatureRosterManagment()) { updateRoster(account, null);
updateRoster(account, null); sendPresence(account);
}
connectMultiModeConversations(account); connectMultiModeConversations(account);
if (convChangedListener != null) { if (convChangedListener != null) {
convChangedListener.onConversationListChanged(); convChangedListener.onConversationListChanged();
@ -1389,16 +1388,15 @@ public class XmppConnectionService extends Service {
contact.getAccount().getXmppConnection().sendPresencePacket(packet); contact.getAccount().getXmppConnection().sendPresencePacket(packet);
} }
public void sendPgpPresence(Account account, String signature) { public void sendPresence(Account account) {
PresencePacket packet = new PresencePacket(); PresencePacket packet = new PresencePacket();
packet.setAttribute("from", account.getFullJid()); packet.setAttribute("from", account.getFullJid());
Element status = new Element("status"); String sig = account.getPgpSignature();
status.setContent("online"); if (sig!=null) {
packet.addChild(status); packet.addChild("status").setContent("online");
Element x = new Element("x"); packet.addChild("x","jabber:x:signed").setContent(sig);
x.setAttribute("xmlns", "jabber:x:signed"); }
x.setContent(signature); Log.d(LOGTAG,packet.toString());
packet.addChild(x);
account.getXmppConnection().sendPresencePacket(packet); account.getXmppConnection().sendPresencePacket(packet);
} }
@ -1422,7 +1420,6 @@ public class XmppConnectionService extends Service {
this.tlsException = null; this.tlsException = null;
} }
// TODO dont let thread sleep but schedule wake up
public void reconnectAccount(final Account account, final boolean force) { public void reconnectAccount(final Account account, final boolean force) {
new Thread(new Runnable() { new Thread(new Runnable() {

View file

@ -175,7 +175,7 @@ public abstract class XmppActivity extends Activity {
@Override @Override
public void success() { public void success() {
xmppConnectionService.databaseBackend.updateAccount(account); xmppConnectionService.databaseBackend.updateAccount(account);
xmppConnectionService.sendPgpPresence(account, account.getPgpSignature()); xmppConnectionService.sendPresence(account);
if (conversation!=null) { if (conversation!=null) {
conversation.setNextEncryption(Message.ENCRYPTION_PGP); conversation.setNextEncryption(Message.ENCRYPTION_PGP);
} }

View file

@ -30,7 +30,6 @@ import javax.net.ssl.TrustManager;
import javax.net.ssl.TrustManagerFactory; import javax.net.ssl.TrustManagerFactory;
import javax.net.ssl.X509TrustManager; import javax.net.ssl.X509TrustManager;
import org.json.JSONException;
import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserException;
import android.os.Bundle; import android.os.Bundle;
@ -615,21 +614,6 @@ public class XmppConnection implements Runnable {
}); });
} }
private void sendInitialPresence() {
PresencePacket packet = new PresencePacket();
packet.setAttribute("from", account.getFullJid());
if (account.getKeys().has("pgp_signature")) {
try {
String signature = account.getKeys().getString("pgp_signature");
packet.addChild("status").setContent("online");
packet.addChild("x","jabber:x:signed").setContent(signature);
} catch (JSONException e) {
//
}
}
this.sendPresencePacket(packet);
}
private void sendBindRequest() throws IOException { private void sendBindRequest() throws IOException {
IqPacket iq = new IqPacket(IqPacket.TYPE_SET); IqPacket iq = new IqPacket(IqPacket.TYPE_SET);
iq.addChild("bind", "urn:ietf:params:xml:ns:xmpp-bind").addChild("resource").setContent(account.getResource()); iq.addChild("bind", "urn:ietf:params:xml:ns:xmpp-bind").addChild("resource").setContent(account.getResource());
@ -648,7 +632,6 @@ public class XmppConnection implements Runnable {
EnablePacket enable = new EnablePacket(smVersion); EnablePacket enable = new EnablePacket(smVersion);
tagWriter.writeStanzaAsync(enable); tagWriter.writeStanzaAsync(enable);
} }
sendInitialPresence();
sendServiceDiscoveryInfo(account.getServer()); sendServiceDiscoveryInfo(account.getServer());
sendServiceDiscoveryItems(account.getServer()); sendServiceDiscoveryItems(account.getServer());
if (bindListener !=null) { if (bindListener !=null) {