summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/isode/stroke/elements/DiscoInfo.java3
-rw-r--r--src/com/isode/stroke/network/Connector.java4
-rw-r--r--src/com/isode/stroke/presence/PresenceOracle.java10
-rw-r--r--src/com/isode/stroke/queries/requests/EnableCarbonsRequest.java22
-rw-r--r--src/com/isode/stroke/serializer/payloadserializers/CarbonsEnableSerializer.java4
5 files changed, 34 insertions, 9 deletions
diff --git a/src/com/isode/stroke/elements/DiscoInfo.java b/src/com/isode/stroke/elements/DiscoInfo.java
index 78e43ff..83a36b4 100644
--- a/src/com/isode/stroke/elements/DiscoInfo.java
+++ b/src/com/isode/stroke/elements/DiscoInfo.java
@@ -3,7 +3,7 @@
* All rights reserved.
*/
/*
- * Copyright (c) 2010-2016, Isode Limited, London, England.
+ * Copyright (c) 2010-2017, Isode Limited, London, England.
* All rights reserved.
*/
package com.isode.stroke.elements;
@@ -34,6 +34,7 @@ public class DiscoInfo extends Payload {
public static final String Bytestream = "http://jabber.org/protocol/bytestreams";
public static final String MessageDeliveryReceiptsFeature = "urn:xmpp:receipts";
public static final String WhiteboardFeature = "http://swift.im/whiteboard";
+ public static final String MessageCarbonsFeature = "urn:xmpp:carbons:2";
public static class Identity implements Comparable<Identity> {
private final String name_;
diff --git a/src/com/isode/stroke/network/Connector.java b/src/com/isode/stroke/network/Connector.java
index 2823679..73a478b 100644
--- a/src/com/isode/stroke/network/Connector.java
+++ b/src/com/isode/stroke/network/Connector.java
@@ -218,9 +218,9 @@ public class Connector {
addressQuery.onResult.disconnectAll();
addressQuery = null;
}
- if (currentConnection != null) {
+ if (currentConnectionConnectFinishedConnection != null) {
currentConnectionConnectFinishedConnection.disconnect();
- currentConnection = null;
+ currentConnectionConnectFinishedConnection = null;
}
onConnectFinished.emit(connection, (connection != null || foundSomeDNS) ? null : new DomainNameResolveError());
diff --git a/src/com/isode/stroke/presence/PresenceOracle.java b/src/com/isode/stroke/presence/PresenceOracle.java
index e983d51..f1710a6 100644
--- a/src/com/isode/stroke/presence/PresenceOracle.java
+++ b/src/com/isode/stroke/presence/PresenceOracle.java
@@ -199,10 +199,14 @@ public class PresenceOracle {
* @return The relevant presence.
*/
public static Presence getActivePresence(Collection<? extends Presence> presences) {
+
+ PresenceAccountCmp comparator = new PresenceAccountCmp();
+ int size = presences.size();
+ if (size < 1) size = 1;
- PriorityQueue<Presence> online = new PriorityQueue<Presence>(presences.size(),new PresenceAccountCmp());
- PriorityQueue<Presence> away = new PriorityQueue<Presence>(presences.size(),new PresenceAccountCmp());
- PriorityQueue<Presence> offline = new PriorityQueue<Presence>(presences.size(),new PresenceAccountCmp());
+ PriorityQueue<Presence> online = new PriorityQueue<Presence>(size, comparator);
+ PriorityQueue<Presence> away = new PriorityQueue<Presence>(size, comparator);
+ PriorityQueue<Presence> offline = new PriorityQueue<Presence>(size, comparator);
for (Presence presence : presences) {
switch (presence.getShow()) {
diff --git a/src/com/isode/stroke/queries/requests/EnableCarbonsRequest.java b/src/com/isode/stroke/queries/requests/EnableCarbonsRequest.java
new file mode 100644
index 0000000..cbc8109
--- /dev/null
+++ b/src/com/isode/stroke/queries/requests/EnableCarbonsRequest.java
@@ -0,0 +1,22 @@
+/*
+ * Copyright (c) 2016-2017, Isode Limited, London, England.
+ * All rights reserved.
+ */
+package com.isode.stroke.queries.requests;
+
+import com.isode.stroke.elements.CarbonsEnable;
+import com.isode.stroke.elements.IQ;
+import com.isode.stroke.jid.JID;
+import com.isode.stroke.queries.GenericRequest;
+import com.isode.stroke.queries.IQRouter;
+
+public class EnableCarbonsRequest extends GenericRequest<CarbonsEnable> {
+
+ public EnableCarbonsRequest(IQRouter router) {
+ super(IQ.Type.Set, new JID(), new CarbonsEnable(), router);
+ }
+
+ public static EnableCarbonsRequest create(IQRouter router) {
+ return new EnableCarbonsRequest(router);
+ }
+} \ No newline at end of file
diff --git a/src/com/isode/stroke/serializer/payloadserializers/CarbonsEnableSerializer.java b/src/com/isode/stroke/serializer/payloadserializers/CarbonsEnableSerializer.java
index f88e461..10c483a 100644
--- a/src/com/isode/stroke/serializer/payloadserializers/CarbonsEnableSerializer.java
+++ b/src/com/isode/stroke/serializer/payloadserializers/CarbonsEnableSerializer.java
@@ -11,11 +11,9 @@
package com.isode.stroke.serializer.payloadserializers;
+import com.isode.stroke.elements.CarbonsEnable;
import com.isode.stroke.serializer.GenericPayloadSerializer;
-import com.isode.stroke.serializer.xml.XMLTextNode;
import com.isode.stroke.serializer.xml.XMLElement;
-import com.isode.stroke.elements.CarbonsEnable;
-import com.isode.stroke.base.NotNull;
public class CarbonsEnableSerializer extends GenericPayloadSerializer<CarbonsEnable> {