Fetch cached caps result on new presence
This commit is contained in:
parent
bf5b2f73f5
commit
000f59d614
|
@ -22,8 +22,11 @@ public class Presence implements Comparable {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected final Status status;
|
protected final Status status;
|
||||||
|
protected final ServiceDiscoveryResult disco;
|
||||||
|
|
||||||
|
public Presence(Element show, ServiceDiscoveryResult disco) {
|
||||||
|
this.disco = disco;
|
||||||
|
|
||||||
public Presence(Element show) {
|
|
||||||
if ((show == null) || (show.getContent() == null)) {
|
if ((show == null) || (show.getContent() == null)) {
|
||||||
this.status = Status.ONLINE;
|
this.status = Status.ONLINE;
|
||||||
} else if (show.getContent().equals("away")) {
|
} else if (show.getContent().equals("away")) {
|
||||||
|
|
|
@ -9,8 +9,8 @@ import eu.siacs.conversations.entities.Contact;
|
||||||
import eu.siacs.conversations.entities.Conversation;
|
import eu.siacs.conversations.entities.Conversation;
|
||||||
import eu.siacs.conversations.entities.Message;
|
import eu.siacs.conversations.entities.Message;
|
||||||
import eu.siacs.conversations.entities.MucOptions;
|
import eu.siacs.conversations.entities.MucOptions;
|
||||||
import eu.siacs.conversations.entities.Presences;
|
|
||||||
import eu.siacs.conversations.entities.Presence;
|
import eu.siacs.conversations.entities.Presence;
|
||||||
|
import eu.siacs.conversations.entities.ServiceDiscoveryResult;
|
||||||
import eu.siacs.conversations.generator.PresenceGenerator;
|
import eu.siacs.conversations.generator.PresenceGenerator;
|
||||||
import eu.siacs.conversations.services.XmppConnectionService;
|
import eu.siacs.conversations.services.XmppConnectionService;
|
||||||
import eu.siacs.conversations.xml.Element;
|
import eu.siacs.conversations.xml.Element;
|
||||||
|
@ -177,7 +177,15 @@ public class PresenceParser extends AbstractParser implements
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
int sizeBefore = contact.getPresences().size();
|
int sizeBefore = contact.getPresences().size();
|
||||||
contact.updatePresence(presence, new Presence(packet.findChild("show")));
|
|
||||||
|
ServiceDiscoveryResult disco = null;
|
||||||
|
Element caps = packet.findChild("c", "http://jabber.org/protocol/caps");
|
||||||
|
if (caps != null) {
|
||||||
|
disco = mXmppConnectionService.databaseBackend.
|
||||||
|
findDiscoveryResult(caps.getAttribute("hash"), caps.getAttribute("ver"));
|
||||||
|
}
|
||||||
|
contact.updatePresence(presence, new Presence(packet.findChild("show"), disco));
|
||||||
|
|
||||||
PgpEngine pgp = mXmppConnectionService.getPgpEngine();
|
PgpEngine pgp = mXmppConnectionService.getPgpEngine();
|
||||||
Element x = packet.findChild("x", "jabber:x:signed");
|
Element x = packet.findChild("x", "jabber:x:signed");
|
||||||
if (pgp != null && x != null) {
|
if (pgp != null && x != null) {
|
||||||
|
|
Loading…
Reference in a new issue