Detailed changes
@@ -1,50 +0,0 @@
-package eu.siacs.conversations.generator;
-
-import eu.siacs.conversations.entities.Account;
-import eu.siacs.conversations.entities.MucOptions;
-import eu.siacs.conversations.services.XmppConnectionService;
-import eu.siacs.conversations.xmpp.manager.PresenceManager;
-import im.conversations.android.xmpp.model.stanza.Presence;
-
-public class PresenceGenerator extends AbstractGenerator {
-
- public PresenceGenerator(XmppConnectionService service) {
- super(service);
- }
-
- public im.conversations.android.xmpp.model.stanza.Presence selfPresence(Account account, Presence.Availability status) {
- return selfPresence(account, status, true, null);
- }
-
- public im.conversations.android.xmpp.model.stanza.Presence selfPresence(
- final Account account, final Presence.Availability status, final boolean personal, final String nickname) {
- final var connection = account.getXmppConnection();
- if (connection == null) {
- return new Presence();
- }
- final var packet = connection.getManager(PresenceManager.class).getPresence(status, personal);
- if (nickname != null) {
- final var nick = packet.addChild("nick", "http://jabber.org/protocol/nick");
- nick.setContent(nickname);
- }
- return packet;
- }
-
- public im.conversations.android.xmpp.model.stanza.Presence leave(final MucOptions mucOptions) {
- im.conversations.android.xmpp.model.stanza.Presence presence =
- new im.conversations.android.xmpp.model.stanza.Presence();
- presence.setTo(mucOptions.getSelf().getFullJid());
- presence.setFrom(mucOptions.getAccount().getJid());
- presence.setAttribute("type", "unavailable");
- return presence;
- }
-
- public im.conversations.android.xmpp.model.stanza.Presence sendOfflinePresence(
- Account account) {
- im.conversations.android.xmpp.model.stanza.Presence packet =
- new im.conversations.android.xmpp.model.stanza.Presence();
- packet.setFrom(account.getJid());
- packet.setAttribute("type", "unavailable");
- return packet;
- }
-}
@@ -15,7 +15,6 @@ import eu.siacs.conversations.entities.Contact;
import eu.siacs.conversations.entities.Conversation;
import eu.siacs.conversations.entities.Message;
import eu.siacs.conversations.entities.MucOptions;
-import eu.siacs.conversations.generator.PresenceGenerator;
import eu.siacs.conversations.services.XmppConnectionService;
import eu.siacs.conversations.utils.XmppUri;
import eu.siacs.conversations.xml.Element;
@@ -321,7 +320,6 @@ public class PresenceParser extends AbstractParser
private void parseContactPresence(
final im.conversations.android.xmpp.model.stanza.Presence packet) {
final var account = getAccount();
- final PresenceGenerator mPresenceGenerator = mXmppConnectionService.getPresenceGenerator();
final Jid from = packet.getFrom();
if (from == null || from.equals(account.getJid())) {
return;
@@ -139,7 +139,6 @@ import eu.siacs.conversations.entities.Reaction;
import eu.siacs.conversations.generator.AbstractGenerator;
import eu.siacs.conversations.generator.IqGenerator;
import eu.siacs.conversations.generator.MessageGenerator;
-import eu.siacs.conversations.generator.PresenceGenerator;
import eu.siacs.conversations.http.HttpConnectionManager;
import eu.siacs.conversations.http.ServiceOutageStatus;
import eu.siacs.conversations.parser.IqParser;
@@ -333,7 +332,6 @@ public class XmppConnectionService extends Service {
}
}
};
- private final PresenceGenerator mPresenceGenerator = new PresenceGenerator(this);
private List<Account> accounts;
private final JingleConnectionManager mJingleConnectionManager =
new JingleConnectionManager(this);
@@ -4833,10 +4831,6 @@ public class XmppConnectionService extends Service {
return this.mMessageGenerator;
}
- public PresenceGenerator getPresenceGenerator() {
- return this.mPresenceGenerator;
- }
-
public IqGenerator getIqGenerator() {
return this.mIqGenerator;
}
@@ -44,8 +44,7 @@ public class PresenceManager extends AbstractManager {
}
public void subscribe(final Jid address, final String preAuth) {
-
- var presence = new Presence(Presence.Type.SUBSCRIBE);
+ final var presence = new Presence(Presence.Type.SUBSCRIBE);
presence.setTo(address);
final var displayName = getAccount().getDisplayName();
@@ -59,13 +58,13 @@ public class PresenceManager extends AbstractManager {
}
public void unsubscribe(final Jid address) {
- var presence = new Presence(Presence.Type.UNSUBSCRIBE);
+ final var presence = new Presence(Presence.Type.UNSUBSCRIBE);
presence.setTo(address);
this.connection.sendPresencePacket(presence);
}
public void unsubscribed(final Jid address) {
- var presence = new Presence(Presence.Type.UNSUBSCRIBED);
+ final var presence = new Presence(Presence.Type.UNSUBSCRIBED);
presence.setTo(address);
this.connection.sendPresencePacket(presence);
}
@@ -158,37 +157,6 @@ public class PresenceManager extends AbstractManager {
}
}
- public Presence getPresence(final Presence.Availability availability, final boolean personal) {
- final var account = connection.getAccount();
- final var serviceDiscoveryFeatures = getManager(DiscoManager.class).getServiceDescription();
- final var infoQuery = serviceDiscoveryFeatures.asInfoQuery();
- final var capsHash = EntityCapabilities.hash(infoQuery);
- final var caps2Hash = EntityCapabilities2.hash(infoQuery);
- serviceDescriptions.put(capsHash, serviceDiscoveryFeatures);
- serviceDescriptions.put(caps2Hash, serviceDiscoveryFeatures);
- final var capabilities = new Capabilities();
- capabilities.setHash(caps2Hash);
- final var legacyCapabilities = new LegacyCapabilities();
- legacyCapabilities.setNode(DiscoManager.CAPABILITY_NODE);
- legacyCapabilities.setHash(capsHash);
- final var presence = new Presence();
- presence.addExtension(capabilities);
- presence.addExtension(legacyCapabilities);
-
- if (personal) {
- final String pgpSignature = account.getPgpSignature();
- final String message = account.getPresenceStatusMessage();
- presence.setAvailability(availability);
- presence.setStatus(message);
- if (pgpSignature != null) {
- final var signed = new Signed();
- signed.setContent(pgpSignature);
- presence.addExtension(new Signed());
- }
- }
- return presence;
- }
-
public ServiceDescription getCachedServiceDescription(final EntityCapabilities.Hash hash) {
return this.serviceDescriptions.get(hash);
}
@@ -206,6 +206,7 @@ public class RegistrationManager extends AbstractManager {
preAuthentication,
IqErrorException.class,
ex -> {
+ Log.d(Config.LOGTAG, "could not pre authenticate registration", ex);
final var error = ex.getError();
final var condition = error == null ? null : error.getCondition();
if (condition instanceof Condition.ItemNotFound) {
@@ -222,7 +223,7 @@ public class RegistrationManager extends AbstractManager {
public ListenableFuture<Void> sendPreAuthentication(final String token) {
final var account = getAccount();
- final var iq = new Iq(Iq.Type.GET);
+ final var iq = new Iq(Iq.Type.SET);
iq.setTo(account.getJid().getDomain());
final var preAuthentication = iq.addExtension(new PreAuth());
preAuthentication.setToken(token);
@@ -1,10 +1,10 @@
package im.conversations.android.xmpp.model.pars;
-import im.conversations.android.annotation.XmlElement;
import eu.siacs.conversations.xml.Namespace;
+import im.conversations.android.annotation.XmlElement;
import im.conversations.android.xmpp.model.Extension;
-@XmlElement(namespace = Namespace.PARS)
+@XmlElement(namespace = Namespace.PARS, name = "preauth")
public class PreAuth extends Extension {
public PreAuth() {