diff options
author | Daniel Gultsch <daniel@gultsch.de> | 2014-05-20 10:48:07 +0200 |
---|---|---|
committer | Daniel Gultsch <daniel@gultsch.de> | 2014-05-20 10:48:07 +0200 |
commit | 8f92d8d109e2d62816c5d3fe1b9d21ab4802ccc8 (patch) | |
tree | d270443ab0241c2d36dc1cf520ce442b899b5518 /src | |
parent | a582d44dbac87e546254de9daa6810663ca7f10a (diff) |
ported pending subscription support to new roster mgmt
Diffstat (limited to 'src')
-rw-r--r-- | src/eu/siacs/conversations/entities/Contact.java | 1 | ||||
-rw-r--r-- | src/eu/siacs/conversations/services/XmppConnectionService.java | 19 | ||||
-rw-r--r-- | src/eu/siacs/conversations/xmpp/XmppConnection.java | 13 |
3 files changed, 5 insertions, 28 deletions
diff --git a/src/eu/siacs/conversations/entities/Contact.java b/src/eu/siacs/conversations/entities/Contact.java index ff1459a5..22e2661b 100644 --- a/src/eu/siacs/conversations/entities/Contact.java +++ b/src/eu/siacs/conversations/entities/Contact.java @@ -286,5 +286,6 @@ public class Contact { public static final int ASKING = 2; public static final int PREEMPTIVE_GRANT = 4; public static final int IN_ROSTER = 8; + public static final int PENDING_SUBSCRIPTION_REQUEST = 16; } } diff --git a/src/eu/siacs/conversations/services/XmppConnectionService.java b/src/eu/siacs/conversations/services/XmppConnectionService.java index 35e5fb51..9ea7f2b1 100644 --- a/src/eu/siacs/conversations/services/XmppConnectionService.java +++ b/src/eu/siacs/conversations/services/XmppConnectionService.java @@ -303,12 +303,6 @@ public class XmppConnectionService extends Service { } else { Contact contact = account.getRoster().getContact( packet.getFrom()); - /* - * if (contact == null) { if ("subscribe".equals(type)) { - * account.getXmppConnection().addPendingSubscription( - * fromParts[0]); } else { // Log.d(LOGTAG,packet.getFrom()+ - * // " could not be found"); } return; } - */ if (type == null) { if (fromParts.length == 2) { contact.updatePresence(fromParts[1], Presences @@ -327,12 +321,6 @@ public class XmppConnectionService extends Service { } contact.setPgpKeyId(pgp.fetchKeyId(account, msg, x.getContent())); - Log.d("xmppService", - account.getJid() - + ": fetched key id for " - + contact.getJid() - + " was:" - + contact.getPgpKeyId()); } } } else { @@ -357,8 +345,7 @@ public class XmppConnectionService extends Service { requestPresenceUpdatesFrom(contact); } } else { - account.getXmppConnection().addPendingSubscription( - fromParts[0]); + contact.setOption(Contact.Options.PENDING_SUBSCRIPTION_REQUEST); } } else { // Log.d(LOGTAG, packet.toString()); @@ -1198,8 +1185,7 @@ public class XmppConnectionService extends Service { pushContactToServer(contact); if (autoGrant) { requestPresenceUpdatesFrom(contact); - if (contact.getAccount().getXmppConnection().hasPendingSubscription( - contact.getJid())) { + if (contact.getOption(Contact.Options.PENDING_SUBSCRIPTION_REQUEST)) { Log.d("xmppService", "contact had pending subscription"); sendPresenceUpdatesTo(contact); } @@ -1260,6 +1246,7 @@ public class XmppConnectionService extends Service { packet.setAttribute("from", contact.getAccount().getJid()); Log.d(LOGTAG, packet.toString()); contact.getAccount().getXmppConnection().sendPresencePacket(packet); + contact.resetOption(Contact.Options.PENDING_SUBSCRIPTION_REQUEST); } public void sendPresence(Account account) { diff --git a/src/eu/siacs/conversations/xmpp/XmppConnection.java b/src/eu/siacs/conversations/xmpp/XmppConnection.java index 58e110d6..23613cd5 100644 --- a/src/eu/siacs/conversations/xmpp/XmppConnection.java +++ b/src/eu/siacs/conversations/xmpp/XmppConnection.java @@ -74,9 +74,7 @@ public class XmppConnection implements Runnable { private boolean shouldAuthenticate = true; private Element streamFeatures; private HashMap<String, List<String>> disco = new HashMap<String, List<String>>(); - - private HashSet<String> pendingSubscriptions = new HashSet<String>(); - + private String streamId = null; private int smVersion = 3; @@ -904,15 +902,6 @@ public class XmppConnection implements Runnable { return findDiscoItemByFeature("http://jabber.org/protocol/muc"); } - public boolean hasPendingSubscription(String jid) { - return this.pendingSubscriptions.contains(jid); - } - - public void addPendingSubscription(String jid) { - Log.d(LOGTAG,"adding "+jid+" to pending subscriptions"); - this.pendingSubscriptions.add(jid); - } - public int getTimeToNextAttempt() { int interval = (int) (25 * Math.pow(1.5,attempt)); int secondsSinceLast = (int) ((SystemClock.elapsedRealtime() - this.lastConnect) / 1000); |